/etc/nologin이 존재할 때 루트가 아닌 사용자가 로그인하도록 허용할 수 있습니까?

/etc/nologin이 존재할 때 루트가 아닌 사용자가 로그인하도록 허용할 수 있습니까?

sudo 권한이 있는 루트가 아닌 사용자가 지연된 종료( shutdown +10또는 다른 방법)를 수행하고 로그아웃한다고 가정합니다. 그런 다음 종료가 발생하기 전에 다시 로그인하여 종료를 취소하려고 합니다. 문제는 을 shutdown생성 /etc/nologin하고 login파일이 존재하는 동안에만 루트 로그인을 허용한다는 것입니다. 이에 대해 사용자에 대한 예외를 생성할 수 있습니까?

그렇지 않은 경우 사용자가 지연된 종료를 시작한 다음 로그인하고 나중에 취소하도록 하는 가장 좋은 방법은 무엇입니까?

답변1

시스템에서 다음을 사용하는 경우폴리아크릴아미드, 다음 /etc/nologin에 의해 로그인이 거부되었습니다.pam_nologin기준 치수.

pam_nologin특정 기준에 맞는 사용자에 대한 통화를 건너뛸 수 있습니다.pam_succeed_if. 예를 들어, adm그룹의 사용자가 텍스트 콘솔이 있더라도 텍스트 콘솔에 로그인할 수 있도록 하려면 다음 줄 앞에 /etc/nologin다음 줄을 추가합니다 ./etc/pam.d/loginauth requisite pam_nologin.so

auth [default=ignore success=1] pam_succeed_if.so quiet user ingroup adm

답변2

Ryan Novosielski의 답변의 Vesa K 버전이 저에게 효과적이었지만 여기에는 다음과 같은 내용이 있습니다.

/etc/pam.d/sshd

아니요:

/etc/pam.d/login

제 경우에는 Ubuntu 14.04 LTS에서 UID 1000으로 SSH를 통해 로그인할 수 있도록 허용하고 싶습니다.

# Disallow non-root logins when /etc/nologin exists.
account [success=1 default=ignore] pam_succeed_if.so quiet uid eq 1000
account    required     pam_nologin.so

답변3

위의 Gilles의 답변은 매우 훌륭하지만 "유형"을 pam_nologin.so 유형과 일치시켜야 한다는 점에 유의하세요. 예를 들어, 내 RHEL5 시스템에서는 다음과 같습니다.

account [default=1 success=ignore] pam_succeed_if.so quiet user ingroup nx
account required     pam_nologin.so

...다른 답변에서 요구하는 대로 인증을 사용하면 작동하지 않습니다.

답변4

오늘 Ryan의 규칙을 시도한 결과 Gils와 Ryan의 응답 봇의 성공/기본 규칙이 "반대"라는 것을 발견했습니다. nologin은 nx-group만 차단합니다. 이것이 제가 이 규칙을 구현한 방법입니다(nx 그룹은 nologin으로 차단되지 않습니다).

account [success=1 default=ignore] pam_succeed_if.so quiet user ingroup nx
account required     pam_nologin.so

관련 정보