Asus 호출기(다소)는 루트(busybox 구현)에서만 작동합니다.

Asus 호출기(다소)는 루트(busybox 구현)에서만 작동합니다.

저는 asusware를 실행하는 Asus 라우터에서 작업하고 있습니다. 이는 임베디드 Linux 구현이며 다소 비지박스 구현입니다. 텔넷을 사용하여 관리자(루트)로 라우터에 로그인하면 점점 더 적은 양의 페이징이 완벽하게 작동합니다(예: 페이지 끝의 24행에서 스크롤이 중지됨). 그런데 루트권한이 없는 계정으로 로그인을 하면 파일이 아무리 커도 파일 끝까지 스크롤이 멈추지 않습니다. 내 환경 변수(TERM=xterm,LINES=24,COLUMNS=80)가 설정되어 작동하는지 확인했습니다. vi도 파일을 편집할 때 잘 작동하고 커서를 정상적으로 움직일 수 있습니다. 따라서 터미널 제어는 일반적으로 작동하는 것 같습니다. 또한 일반 사용자가 공유 /terminfo 파일에 대한 모든 권한을 갖고 있는지도 확인했습니다.

내 논리에 따르면 이는 일종의 권한 문제인 것 같습니다. 사용자 그룹 할당을 /etc/passwd의 그룹 루트(0)로 이동하면 스크롤이 즉시 예상대로 작동하기 시작하기 때문입니다. 그러나 그룹 500(해당 시스템의 사용자)으로 이동하면 작동이 중지됩니다. 그러나 그것은 나에게 이해가 되지 않습니다.

그래서 문제는 다음에 어디를 볼 것인가입니다. 이러한 것들을 통제하는 데 관련된 다른 문서는 무엇입니까?

답변1

의 소유권과 권한은 무엇입니까 /dev/tty?

일부 도구는 /dev/tty터미널 크기를 확인하기 위해 기존 파일 설명자를 사용하는 대신 다시 열릴 수 있습니다. busybox에서는 코드 크기가 크게 줄어들었기 때문일 수 있습니다.

일부 배포판은 /dev/tty필요한 것보다 더 많은 보호 기능을 제공할 수 있습니다. 나는 이것이 부주의한 설정일지도 모른다고 생각합니다./dev/tty*

이 경우 OP는 다음을 보고합니다.

crw-rw---- 1 admin root 5, 0 Jan 1 1970 tty

그것이 문제라는 것이 밝혀졌습니다.

파일 시스템에 따라 장치를 재부팅할 때마다 재설정이 필요할 수 있다는 점은 주목할 가치가 있습니다. 배포판에 따라 /etc/mdev.conf, /etc/udev/rules.d/, 또는 다른 곳 에서 이 작업을 수행할 수 있습니다 . /etc/rc.local또는 수정 가능한 영구 저장소가 없는 경우 원격으로 수행해야 할 수도 있습니다.

(검사를 위해 답변을 추가했습니다.)

관련 정보