Я работал над некоторыми процедурами усиления безопасности для бокса RedHat, и я хотел знать, можно ли запретить пользователю изменить свой пароль, когда срок его действия истек.
Для одного из наших клиентов требование состоит в том, что они должны иметь доступ к серверу только через временные учетные записи, что означает, что после создания учетных данных пользователя пароль должен истечь в течение 4 часов, а после истечения срока действия пароля только root должен иметь возможность изменить его. .
Для первого требования (срок действия паролей истекает через 4 часа), я думаю, этого можно добиться, установив passwordMaxAge = 144000. Но я все еще не мог найти способ запретить пользователям менять просроченные пароли, не отключая истечение срока действия пароля.
Кто-нибудь может помочь?
Если вы удалите бит setuid из команды passwd, только root сможет использовать его. Это также запретит пользователям изменять пароль. перед срок его действия истекает - в противном случае пользователи могли бы продлить учетную запись еще на четыре часа.
[jenny@finch ~] sudo chmod -s /usr/bin/passwd
[jenny@finch ~]$ passwd
Changing password for user jenny.
Changing password for jenny.
(current) UNIX password:
New password:
Retype new password:
passwd: Authentication token manipulation error
Root по-прежнему может сменить любой пароль:
[jenny@finch ~]$ sudo passwd jenny
Changing password for user jenny.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
Обычно истечение срока действия пароля используется для сила пользователям менять свои пароли. Похоже, вы хотите замок учетная запись, которая запрещает вход в систему.
Вместо этого я бы посоветовал вам сделать это при создании учетной записи, а также настроить на работе, которая заблокирует учетную запись через четыре часа.
Например:
useradd temp8143
echo chage -E 0 temp8143 | at now + 4 hours
(chage -E
ожидает, что срок годности будет указан в днях, поэтому мы работаем над этим с помощью at job.)