出于安全考虑,我只想让 root 更改所有其他用户的密码。如果我将 /usr/bin/passwd 设置为 700,就可以实现这一点。现在,如果启用了密码时效或启用了首次登录,当用户使用成功或过期的密码登录时,系统会要求他们选择一个新密码,而我想要禁用该功能。
输出:
login as: test
Using keyboard-interactive authentication.
Password:
Using keyboard-interactive authentication.
Password change requested. Choose a new password.
Enter current password:
预期结果:
login as: test
Using keyboard-interactive authentication.
Password:
Using keyboard-interactive authentication.
Your password has expired. Please contact root to change your password.
我希望采取任何措施来实现这一目标。
答案1
有一个选项可以实现这一点:
passwd -n MIN <login-name>
将禁止在 MIN 天内更改密码。
来自 man passwd
-n, --mindays MIN_DAYS
Set the minimum number of days between password changes to MIN_DAYS. A
value of zero for this field indicates that the user may change his/her
password at any time.
将其设置为 9999 则可以使用 27 年。
虽然没有记录,但它似乎-1
也可以用作值。由于这通常是一种永久禁用某些东西的方法,所以我假设它在这里也会做同样的事情。使用示例-1
:
~$ sudo passwd -n -1 rinzwind
passwd: password expiry information changed.
~$ passwd rinzwind
Changing password for rinzwind.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
Password unchanged
Enter new UNIX password:
Retype new UNIX password:
Password unchanged
Enter new UNIX password:
询问密码但从未更改。
出于安全目的,我只希望根用户更改所有其他用户的密码。
您决定密码将带来安全风险。假设您随机选择一个密码,其中包含数字、字母、至少一个特殊字符,也许是大写字母。例如 Gsi^771H。这些密码非常非常难记住,您的用户会将它们写下来。写在纸上、文本文件中,甚至更糟,并将它们作为概念保存在 gmail 中。
最好的密码是用户能记住的句子,而且可以很长。像“lastyeariwenttolondonformyholiday”这样的密码比任何你能强制执行的密码都要好得多,即使它没有数字、大写字母或特殊字符。该用户会记住它,因为它与他所做的事情有关,而且很难被暴力破解。他唯一要做的就是从现在起每年都去伦敦度假 ;)
教育您的用户并让他们自己选择密码。如果您需要确保他们的密码是安全的,请向他们解释您希望与他们一起设置密码。但是,您可以创建密码规则:如果您设置密码需要 15 个字符的规则并告诉他们这是这种情况,那么他们会选择句子而不是随机字母,他们会理解并希望同意。
或者 ...
答案2
你可以使用聚丙烯酰胺.在文件中/etc/pam.d/common-password
:
password optional pam_echo.so Only root can change passwords...
password sufficient pam_rootok
password required pam_deny.so
运行以下passwd
命令:
user@ubuntu1510:~$ passwd
Only root can change passwords...
Changing password for user.
(current) UNIX password:
passwd: Authentication token manipulation error
passwd: password unchanged