pam을 사용하여 "chpasswd" Linux 명령을 시간 또는 날짜별로 차단하는 방법은 무엇입니까?

pam을 사용하여 "chpasswd" Linux 명령을 시간 또는 날짜별로 차단하는 방법은 무엇입니까?

저는 Ubuntu 18 OS를 사용하고 있으며 17시 이후에는 모든 사용자가 "chpasswd" 명령을 실행하지 못하도록 막으려고 합니다. 이를 위해서는 pam을 사용해야 합니다.

내 거/etc/pam.d/chpasswd문서:

# The PAM configuration file for the Shadow 'chpasswd' service
#

@include common-password

password required       pam_pwquality.so retry=3
account required pam_time.so

내 거/etc/security/time.conf문서:

chpasswd;*;myUser;!Al1700-2400

왜 작동하지 않는지 모르겠습니다. 하루 종일 이 명령을 실행할 수 있습니다.

답변1

사용자가 chpasswdRun 을 사용 하는 것을 막을 수는 없습니다 pam_time.so. 이렇게 하면 사용자가 실제로 비밀번호를 변경하려고 할 때 PAM 권한 확인이 실패하게 됩니다.

chpasswd목표가 지정된 기간 내에 사용자가 비밀번호를 변경하지 못하도록 하는 것이라면 /etc/security/time.conf이 방법으로 충분합니다.

사용자가 실행하는 것을 방지하려면 chpasswdcronjob(예: /etc/cron.d/disable_chpasswd)과 같은 것을 추가하여 지정된 시간에 이 프로그램을 실행하는 다른 사용자의 권한을 비활성화해야 합니다.

# disable chpasswd daily at 5pm
0 17 * * * root /usr/bin/chmod 4750 /usr/bin/chpasswd
# enable  chpasswd daily at 5am
0  5 * * * root /usr/bin/chmod 4755 /usr/bin/chpasswd

그러나 사용자가 자신의 비밀번호를 완전히 변경하는 것을 방지하려면 pam_time.so사용자가 계속 비밀번호를 사용할 수 있으므로 해당 기능(또는 이와 같은 cronjob) 에 의존할 수 없습니다.passwd 에 의존할 수 없습니다 .계정관리 그룹) 또는 다른 방법(예: 일부 그래픽 도구는 AccountsService에서 제공하는 D-Bus 인터페이스를 사용함). 이를 방지하려면 PAM 구성에서 비밀번호 변경을 비활성화 및 활성화하도록 cron 작업을 설정할 수 있습니다(그러나 이것이 가능한 솔루션인지는 모르겠습니다).

관련 정보