설치 후 /dev/pts를 어떻게 복구합니까?

설치 후 /dev/pts를 어떻게 복구합니까?

나는 이 질문과 같은 실수를 저질렀습니다.Debian chroot는 호스트에서 PTTY를 차단합니다.

chroot에 "devpts" 파일 시스템을 마운트했는데 이제 urxvt가 ptys를 생성할 수 없습니다. 이상하게도 xterm은 여전히 ​​작동합니다. /dev/pts를 다시 마운트해도 문제가 해결되지 않습니다.

재부팅하지 않고 시스템이 다시 제대로 작동하도록 하려면 어떻게 해야 합니까?

답변1

@mikeserv 님의 댓글 덕분에 복원 방법을 알아냈습니다.

나는 이것을 Linux 4.0.7에서만 테스트했기 때문에 이전 버전이나 이후 버전에서는 작동하지 않을 수 있습니다.

마운트 /dev/pts -o 다시 마운트, gid=5, 모드=620

이 옵션을 사용하지 않고 파일 시스템을 마운트하면 devpts동일한 pty를 포함하는 동일한 "인스턴스"가 마운트됩니다. 매뉴얼 페이지에 따르면 인수를 전달하지 않으면 이를 생성한 프로세스와 동일한 gid를 사용하여 새 pty가 생성됩니다. 분명히 이 (누락된) 마운트 옵션은 전체 인스턴스에 영향을 미치므로 원래 인스턴스는 더 이상 ptys를 그룹에 재할당하지 않습니다. urxvt가 pty가 이 그룹에 있어야 하는 이유를 아직도 모르겠습니다. 하지만 xterm은 그렇지 않습니다.chrootnewinstance/dev/ptsgiddevpts/dev/ptstty

이에 대한 몇 가지 추가 참고 사항:

  • /dev/pts/ptmx모드 000(root:root) 및 /dev/ptmx모드 666(root:tty)은 정상인 것 같습니다. 그러나 동일한 블록 장치를 가리키므로 설정이 ptmxmode불필요해 보이지만 무해해 보입니다.
  • 기본값 mode(600)은 작동하는 것처럼 보이지만 어쨌든 tty는 모드 620으로 생성됩니다. 뭔가 패턴이 바뀌고 있을 수도 있습니다. 내 시스템이 부팅되면 mode=620기본값이 무시 되므로 mode/dev/pts의 기본 기능을 더 잘 복원하기 위해 이를 위의 명령줄에 넣었습니다.
  • 설정하지 마십시오 uid. 보안 문제 또는 터미널에서 생성되지 않는 것과 동일한 문제가 발생할 수 있습니다.
  • 추가는 newinstance선택 사항이지만 보안이 향상됩니다. 이 옵션을 사용하면 컨테이너는 /dev/pts호스트 시스템에서 사용되지 않으므로 "실제"를 마운트할 수 없습니다. 이것을 사용하는 경우 ptmxmode=666이것이 /dev/ptmx에 대한 심볼릭 링크인지 확인해야 합니다 pts/ptmx. 새 devpts인스턴스를 설치하면 /dev/pts기존 터미널이 이상하게 동작(예: gpg작동하지 않음)할 수 있으므로 이 옵션을 사용하는 경우 해당 터미널을 다시 시작해야 합니다.

관련 정보