루트가 아닌 사용자로 화면 세션을 시작하려고 할 때마다 "No more PTY" 메시지가 나타납니다. 답으로. 루트와 동일한 디렉토리에 있는 동일한 명령은 정상적으로 작동합니다.
나는 다음 해결책을 시도했습니다.이것아무것도 변경하지 않고 게시:
$ ls /dev/pts
$ cat /proc/sys/kernel/pty/nr
0
$ cat /proc/sys/kernel/pty/max
4096
제거하고 다시 설치해도 도움이 되지 않습니다.
$ grep /dev/pts /proc/mounts
devpts /dev/pts devpts rw,nosuid,noexec,relatime 0 0
$ umount devpts
$ mount devpts /dev/pts -t devpts -o mode=620
답변1
screen
BSD 의사 터미널은 특정 유형의 의사 터미널(둘 다 사용할 수 없음)을 사용하도록 컴파일되었기 때문에 사용 하지 못할 가능성이 높습니다 . 두 가지 주요 스타일과 그 변형이 있습니다.
- 함수(예:
openpty
)는 마스터 및 슬레이브 장치의 이름을 제공합니다. - 프로그램은 마스터/슬레이브 쌍 목록에서 사용되지 않은 쌍을 검색합니다.
후자의 경우에는 할 수 있습니다
strings /usr/bin/screen
다음과 같은 것을 찾으십시오: 0123456789abcdef (어쩌면 더 길 수도 있음). 찾을 수 없으면 Unix98 의사 터미널용으로 컴파일된 것입니다.
만약 너라면하다문자열을 찾으려면 screen
setuid'd를 실행해야 할 수도 있습니다.root
(이 방법으로 마스터/슬레이브 쌍의 권한과 소유권을 수정할 수 있습니다).
질문은 다음과 같이 실행됨을 의미하므로root
, 다음과 같은 과정을 거친 후 일반 사용자에게 유용할 수 있습니다.
sudo chmod u+s /usr/bin/screen