我只是有个奇怪的经历。我在服务器上创建了一个新用户(Ubuntu10.04,安装了Plesk ),然后想设置密码。看看这个输出:
# useradd dev
# passwd dev
Enter new password:
Retype new password:
Geben Sie ein neues UNIX-Passwort ein:
Geben Sie das neue UNIX-Passwort erneut ein:我不得不给出4次密码。后两个提示符是德文。后两个请求的密码需要与第一个请求不同。这里发生了什么事?
更新:# cat /etc/pan.d/passwd##影子“passwd”服务的PAM配置文件#
@include common-password
# cat /etc/pam.d/system-auth
cat: /etc/pam.d/system-auth: Datei oder Verzeichnis nicht gefunden(/etc/pam.d/system-auth不存在)我是否可以将所有这样的输出设置为英语,而不改变系统区域设置(这可能会影响其他事情)?
update2:
# cat /etc/pam.d/common-password
# here are the per-package modules (the "Primary" block)
password optional pam_plesk.so try_first_pass
password [success=1 default=ignore] pam_unix.so obscure sha512
# here's the fallback if no module succeeds
password requisite pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
password required pam_permit.so
# and here are more per-package modules (the "Additional" block)
# end of pam-auth-update config看来普列斯克是罪魁祸首。对,是这样?
发布于 2012-03-18 18:22:29
passwd命令使用PAM (可插入身份验证模块),它要求用户提供密码并更新/etc/shadow和/或您配置的任何其他auth后端中的密码散列。passwd命令的PAM是在/etc/pam.d/passwd中配置的,在您的示例中,仅包括/etc/pam.d/common-password。
您可以阅读有关使用man 7 pam的PAM的简要介绍。
现在,我对Plesk并不熟悉,在PAM方面,我仍然有点业余,但我倾向于交换前两行非空白的、非评论的行,以便pam_unix在pam_plesk之前:
...
# here are the per-package modules (the "Primary" block)
password [success=1 default=ignore] pam_unix.so obscure sha512
password optional pam_plesk.so try_first_pass
# here's the fallback if no module succeeds
password requisite pam_deny.so
...我来告诉你为什么。你看到try_first_pass在pam_plesk之后的选项了吗?这意味着,如果这个特定模块是在另一个模块之后运行的,该模块已经询问了用户的密码,那么它应该尝试重用该密码,而不是再次询问。但是,由于pam_plesk首先运行,没有输入的密码可以尝试,因此您将得到前两个提示。然后pam_unix运行,并且它也没有try_first_pass,所以您得到了另外两个提示。
或者,您可以尝试将try_first_pass添加到pam_unix行。
对common-passwd文件进行备份,以防万一,这样,如果更改不起作用,您就可以重新编译它们。我无法访问Plesk,所以我无法亲自测试所建议的更改。
https://serverfault.com/questions/370829
复制相似问题