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라는 줄을 주석 처리하는 것만으로도 충분하다고 생각했습니다.