데비안 불안정 컨테이너를 생성 debootstrap
하고 systemd-nspawn.service
.
root 로 로그인할 수 있지만 machinectl login
동시에 여러 번 로그인할 수는 없습니다. 두 번째 로그인을 실행하면 비밀번호를 입력하자마자 거부됩니다 root
.
예상한 대로 시스템 로그를 보면 pam_securetty
tty가 /dev/pts/2
"안전하지 않기 때문에" 액세스가 거부되었다는 메시지가 표시됩니다. 이것은 몇 가지 질문을 제기합니다.
- 최초 로그인은 어떻게
/dev/pts/0
안전한 것으로 간주됩니까? /dev/pts/1
두 번째 로그인 시 왜 사용되지 않나요?- 기본 /etc/securetty에는 모뎀에 연결할 수 있는 직렬 회선을 포함하여 모든 유형의 tty가 나열되는 것 같습니다. 의사 터미널을 제외하는 이유를 상상할 수 있습니다. 하지만 허락한다면모두물리적 단말기의 종류, 이번 실습의 포인트는 무엇인가요? ! 루트로 로그인을 허용하지 않는 일련의 (짧은) tty 유형에서는 이것이 작동하지 않는 이유는 무엇입니까? 기본적으로 차단해야 하는 의사 터미널 외에 의도적으로 목록에서 생략된 항목이 있나요? 고의로 누락했다면 댓글을 달지 않으시겠습니까?
질문 1에 답할 수 있습니다. 말할 수 없이 끔찍한 대답은 Debianstretch(9-testing, login-4.4-4
)에서 /etc/securetty에 /dev/pts/0 및 /dev/pts/1이 포함되어 있지만 /dev/pts/2는 포함되어 있지 않다는 것입니다. 이는 지원을 위해 특별히 추가된 것이라고 추측할 수 있습니다 systemd-nspawn
. 그 중 하나는옳은. 하지만 이로 인해 이러한 설정이 무엇을 달성해야 하는지에 대해 더 혼란스러워졌습니다!
답변1
이는 설정이 의미가 없음을 의미합니다.
분명히 직렬 설치를 지원하는 배포판에서는 첫 번째 직렬 콘솔을 허용할 수 있기를 원할 것입니다. 귀하의 질문은 원래 데비안 개발자가 pam_securetty를 활성화하는 것이 유용하다고 생각했지만 모든 유형의 tty를 허용하도록 구성한 이유입니다. 그렇다면 배포판이 더 간단한 설정을 사용하지 못하게 하는 것은 무엇입니까?
포에터링은 답을 제안했다: 유통~해야 한다securetty는 오래된 분류 시스템을 사용하므로 더 간단한 설정을 사용하세요.
https://github.com/systemd/systemd/issues/852#issuecomment-127759667
tty 이름이 정적이었던 시절부터 유래되었습니다. 그러나 요즘 가장 작은 tty는 실제로 오래된 마더보드 직렬 포트입니다. 이들 대부분은 USB를 통해 연결되거나 의사 tty입니다. 어느 쪽이든 해당 이름은 /etc/securetty의 의도만큼 고정되어 있지 않으므로 전체 개념이 더 이상 사용되지 않습니다.
따라서 기본적으로 pam_securetty를 활성화하여 배포판에 배송을 중지하도록 요청하세요. 이는 실제로 과거의 일입니다. 또한 /etc/pam.d/*의 모든 파일에서 이를 수동으로 제거하거나 잠재적인 현재 및 미래의 모든 pty를 /etc/securetty에 추가하십시오.
https://github.com/systemd/systemd/issues/852#issuecomment-128564307
모든 tty에 루트 로그인을 허용하려면 컨테이너에서 /etc/securetty를 간단히 제거하면 됩니다.