저는 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
사용자가 chpasswd
Run 을 사용 하는 것을 막을 수는 없습니다 pam_time.so
. 이렇게 하면 사용자가 실제로 비밀번호를 변경하려고 할 때 PAM 권한 확인이 실패하게 됩니다.
chpasswd
목표가 지정된 기간 내에 사용자가 비밀번호를 변경하지 못하도록 하는 것이라면 /etc/security/time.conf
이 방법으로 충분합니다.
사용자가 실행하는 것을 방지하려면 chpasswd
cronjob(예: /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 작업을 설정할 수 있습니다(그러나 이것이 가능한 솔루션인지는 모르겠습니다).