我只是有一个奇怪的经历。 我在服务器上创build了一个新用户(Ubuntu 10.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/pam.d/passwd##Shadow`passwd'服务的PAMconfiguration文件#
@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
看起来Plesk是罪魁祸首。 正确?
passwd
命令使用PAM(可插入authentication模块),它向用户询问密码并更新/etc/shadow
密码散列和/或您configuration的任何其他auth后端。 PAM的passwd
命令是在/etc/pam.d/passwd
configuration的,在你的情况下,它只包含/etc/pam.d/common-password
。
你可以阅读有关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
首先运行,没有已经input的密码尝试,所以你得到前两个提示。 然后pam_unix
运行,它也没有try_first_pass
,所以你得到另外两个提示。
或者,您可以尝试将try_first_pass
添加到pam_unix
行。
做一个common-passwd
文件的备份,以防万一,所以你可以改变这些改变,如果他们不工作。 我无法访问Plesk,因此我无法亲自testingbuild议的更改。