다음 상황을 고려해보세요.
- 사용자는
ssh
시스템에 들어가서 원하는 작업을 수행합니다. shutdown
그런 다음 다음을 사용하도록 준비하십시오 .sudo shutdown -h +1
- 마지막으로 SSH 세션을 닫습니다.
이제 /run/nologin
생성되었으므로 아무도 로그인할 수 없지만 문제가 발생하여 ssh
충돌이 발생하기 전에 시스템으로 돌아가고 싶습니다.
더 이상 로그인이 허용되지 않는 경우 예약된 종료를 원격으로 취소할 수 있습니까?
답변1
새로운 연결을 설정하기 위해 "루트" 계정을 사용하는 대신 ssh
실제로 PAM을 사용하여 특정 사용자나 그룹이 로그인하도록 허용할 수 있습니다.
sshd
다음의 PAM 구성은 /etc/pam.d/sshd
당신이 찾고 있는 것을 담당합니다.
이 파일을 편집하고 사용하면 파일이 컴퓨터에 있더라도 pam_succeed_if.so
특정 사용자나 그룹이 로그인하도록 허용할 수 있습니다 ./run/nologin
pam_succeed_if.so는 인증 대상 사용자에 속한 계정 특성이나 기타 PAM 항목의 값을 기반으로 인증 성공 또는 실패를 결정하도록 설계되었습니다. 한 가지 용도는 이 테스트를 기반으로 다른 모듈을 로드할지 여부를 선택하는 것입니다.
pam_nologin.so
따라서 우리는 이를 사용하여 사용자 이름이나 사용자 그룹을 기반으로 어떤 모듈을 로드해야 하는지 여부를 감지합니다.
원하는 텍스트 편집기를 사용하여 파일을 엽니다.
$ sudo vi /etc/pam.d/sshd
다음 줄을 찾으세요.
# Disallow non-root logins when /etc/nologin exists.
account required pam_nologin.so
그 사이에 다음 줄을 추가하세요.
account [default=1 success=ignore] pam_succeed_if.so quiet user notingroup sudo
이제 라인은 다음과 같아야 합니다.
# Disallow non-root logins when /etc/nologin exists.
account [default=1 success=ignore] pam_succeed_if.so quiet user notingroup sudo
account required pam_nologin.so
sudo
이제 그룹 내 사용자가 /run/nologin
존재하더라도 로그인이 가능합니다.
특정 사용자를 허용합니다.
account [default=2 success=ignore] pam_succeed_if.so quiet user != username
보다 유연한 결제 조건을 원하시면:
man pam_succeed_if
답변2
root
시스템에 원격으로 로그인할 수 있으면 nologin
무시됩니다 . 그러나 대부분의 정상적인 관리자는 root
직접 원격 로그인을 허용하지 않고 권한이 있는 사용자가 로그인하여 사용하도록 허용합니다 sudo
. 그러나 후자가 아닌 경우 root
로그인하고 종료를 중단하는 것이 가능합니다.
답변3
nologin
루트 사용자의 경우 이는 무시됩니다. 따라서 SSH를 사용하여 루트로 연결할 수 있지만 배포에서는 기본적으로 루트 로그인을 허용하지 않을 수 있습니다. SSH 키를 생성하여 에 입력하면 ~root/.ssh/authorized_keys
루트로 로그인하는 데 사용할 수 있습니다.