/run/nologin이 존재할 때 예약된 종료를 원격으로 취소할 수 있습니까?

/run/nologin이 존재할 때 예약된 종료를 원격으로 취소할 수 있습니까?

다음 상황을 고려해보세요.

  1. 사용자는 ssh시스템에 들어가서 원하는 작업을 수행합니다.
  2. shutdown그런 다음 다음을 사용하도록 준비하십시오 .

    sudo shutdown -h +1
    
  3. 마지막으로 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루트로 로그인하는 데 사용할 수 있습니다.

관련 정보