chsh:PAM 身份验证失败

chsh:PAM 身份验证失败

我想更改默认的 shell 环境

chsh -s /bin/zsh以 root 用户身份运行,

但出现了错误信息:chsh: PAM authentication failed

我发现这个帖子http://ubuntuforums.org/showthread.php?t=1702833

但答案并没有解决我的问题

任何帮助,将不胜感激


这是 /etc/pam.d/chsh 的内容

#
# The PAM configuration file for the Shadow `chsh' service
#

# This will not allow a user to change their shell unless
# their current one is listed in /etc/shells. This keeps
# accounts with special shells from changing them.
auth       required   pam_shells.so

# This allows root to change user shell without being
# prompted for a password
auth            sufficient      pam_rootok.so

# The standard Unix authentication modules, used with
# NIS (man nsswitch) as well as normal /etc/passwd and
# /etc/shadow entries.
@include common-auth
@include common-account
@include common-session

这是 /etc/shells 的内容

# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/tmux
/usr/bin/screen
/bin/zsh
/usr/bin/zsh

我发现我曾经运行过chsh -s zsh 这个会改变第一/etc/passwd

root:x:0:0:root:/root:zsh

并且chsh无论你尝试什么都会要求输入密码

我只是/etc/passwd手动编辑文件,一切正常。

愚蠢的错误,谢谢你的回复

答案1

检查您的 /etc/shells 文件,如果此行不存在,则将 /bin/zsh 添加到文件中。

答案2

检查你的/etc/passwd。就我而言,我chsh之前指定了一个无效的 shell,这就是导致问题的原因。

我将其从zshshell 更改为/bin/zsh,这样问题就消失了。

答案3

您必须以 sudo 身份运行您的代码:

sudo chsh -s /bin/zsh

我也遇到了同样的问题,并且它起作用了!

答案4

看起来你的路径可能有错。检查方法如下:

[nick ~]$ which zsh
/usr/bin/zsh

如果结果是 /usr/bin/zch,那么这应该可以解决问题:

[nick ~]$ chsh -s /usr/bin/zsh

*编辑错别字。

相关内容