作为 root 用户,我可以更改密码:
hussie:/home/claudiu# passwd
Enter new password:
Retype new password:
passwd: password updated successfully
作为非 root 用户,我无法:
claudiu@hussie:~$ passwd
Current Kerberos password:
passwd: User not known to the underlying authentication module
passwd: password unchanged
我也无法从 root 更改其他用户的密码:
hussie:/home/claudiu# passwd claudiu
Current Kerberos password:
passwd: User not known to the underlying authentication module
passwd: password unchanged
谷歌搜索该问题建议使用pwconv
和pwunconv
,但我没有这些并且不知道在哪里找到它们:
claudiu@hussie:~$ pwconv
-bash: pwconv: command not found
claudiu@hussie:~$ pwunconv
-bash: pwunconv: command not found
claudiu@hussie:~$ sudo apt-get install pwconv
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package pwconv
claudiu@hussie:~$ sudo apt-get install pwunconv
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package pwunconv
我该怎么办?
答案1
您使用的是另一种身份验证方法 (kerberos),而不是标准 Linux 帐户 - 很可能 pam 模块无法写入/更新密码。从 root 执行此操作会使模块混乱,因为 root 实际上是本地帐户,不在其他服务的用户列表中。
寻找一些关于正在使用的 pam 模块的提示,查看/etc/pam.conf
目录中的内容:/etc/pam.d
-/etc/nsswitch.conf
也可能提供提示,但 debian 的使用compat
显然并不能真正帮助指定正在使用的内容。
如果确实正在使用 Kerberos,则无法使用以下方法更新密码passwd
答案2
运行“pam-auth-update”
它会提示。
Debian 确实很烦人,在 apt-get upgrade(s) 期间默认添加了 kerberos。