시스템 종료가 계획된 경우 SSH를 통해 사용자에게 내 우분투 서버에 로그인할 수 있는 권한을 어떻게 부여합니까?

시스템 종료가 계획된 경우 SSH를 통해 사용자에게 내 우분투 서버에 로그인할 수 있는 권한을 어떻게 부여합니까?

crontab에서 다음 줄을 사용하여 야간 시스템 재부팅을 예약했습니다.

0 4 * * * /sbin/shutdown -r +5

shutdown -c이 시점에서 시스템을 계속 실행해야 하는 경우 로그인하여 재부팅을 취소할 수 있기를 원하지만 4시 이후에 ssh를 시도하면 4시 이후에 실행하려면 4시 이전에 로그인해야 합니다. :00 :00이라고 표시됩니다. 예약된 종료 중에 권한이 있는 사용자만 로그인이 허용된다는 메시지를 표시합니다.

4시 5분 재시작을 취소하기 위해 4시 이후에 SSH에 접속할 수 있는 사용자 권한을 어떻게 부여합니까?

이를 수행하는 몇 가지 간단한 방법이 있을 것 같지만 저는 Linux를 처음 접했고 현재 모든 것을 배우고 있는데 인터넷에서 해결책을 찾을 수 없습니다.

답변1

매뉴얼 shutdown페이지에서 발췌:

   If the time argument is used, 5 minutes before the system goes down the /run/nologin file is created to ensure that
   further logins shall not be allowed.

Linux 시스템에서 PAM은 사용자 인증 프로세스를 담당합니다. PAM 구성에는 /etc/pam.conf및 가 있습니다 /etc/pam.d/*.

파일(/run/nologin)은 PAM 모듈에 의해 검사됩니다 pam_nologin.so.

예를 들어 Debian 12에서는 다음과 같습니다.

$ cat /etc/pam.d/login 
#
# The PAM configuration file for the Shadow `login' service
#

# Enforce a minimal delay in case of failure (in microseconds).
# (Replaces the `FAIL_DELAY' setting from login.defs)
# Note that other modules may require another minimal delay. (for example,
# to disable any delay, you should add the nodelay option to pam_unix)
auth       optional   pam_faildelay.so  delay=3000000

# Outputs an issue file prior to each login prompt (Replaces the
# ISSUE_FILE option from login.defs). Uncomment for use
# auth       required   pam_issue.so issue=/etc/issue

# Disallows other than root logins when /etc/nologin exists
# (Replaces the `NOLOGINS_FILE' option from login.defs)
auth       requisite  pam_nologin.so

그래서 인증에 필요한 pam_nologin.so라는 줄을 주석 처리하는 것만으로도 충분하다고 생각했습니다.

관련 정보