루트가 아닌 사용자로 화면을 부팅할 때 "더 이상 PTY가 없습니다"

루트가 아닌 사용자로 화면을 부팅할 때 "더 이상 PTY가 없습니다"

루트가 아닌 사용자로 화면 세션을 시작하려고 할 때마다 "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

내 관련 질문:화면을 사용하여 Minecraft 서버를 시작하면 제대로 작동하지 않습니다.

답변1

screenBSD 의사 터미널은 특정 유형의 의사 터미널(둘 다 사용할 수 없음)을 사용하도록 컴파일되었기 때문에 사용 하지 못할 가능성이 높습니다 . 두 가지 주요 스타일과 그 변형이 있습니다.

  • 함수(예:openpty)는 마스터 및 슬레이브 장치의 이름을 제공합니다.
  • 프로그램은 마스터/슬레이브 쌍 목록에서 사용되지 않은 쌍을 검색합니다.

후자의 경우에는 할 수 있습니다

strings /usr/bin/screen

다음과 같은 것을 찾으십시오: 0123456789abcdef (어쩌면 더 길 수도 있음). 찾을 수 없으면 Unix98 의사 터미널용으로 컴파일된 것입니다.

만약 너라면하다문자열을 찾으려면 screensetuid'd를 실행해야 할 수도 있습니다.root(이 방법으로 마스터/슬레이브 쌍의 권한과 소유권을 수정할 수 있습니다).

질문은 다음과 같이 실행됨을 의미하므로root, 다음과 같은 과정을 거친 후 일반 사용자에게 유용할 수 있습니다.

sudo chmod u+s /usr/bin/screen

관련 정보