我正在尝试升级到 Jaunty,在升级过程中,系统要求我输入 fetchmail 的密码。我输入了密码,但没有成功,因此安装失败。我不记得设置过密码。我进入命令行并运行“dpkg --configure -a”,我尝试了我的密码、root 密码以及我认为我会使用的任何其他密码,但都没有用。我还尝试通过 passwd 删除密码,并更改密码。
输出如下:
~$ sudo dpkg --configure -a
Setting up fetchmail (6.3.9~rc2-4ubuntu1) ...
Password:
chsh: PAM authentication failed
dpkg: error processing fetchmail (--configure):
subprocess post-installation script returned error exit status 1
Errors were encountered while processing:
fetchmail
不确定它是否有帮助,但在查阅 /var/log/auth.log 后我得到了以下条目:
Jun 19 14:19:41 dev1 sudo: steve : TTY=pts/4 ; PWD=/home/steve ; USER=root ; COMMAND=/usr/bin/dpkg --configure -a
Jun 19 14:19:48 dev1 chsh[7386]: pam_unix(chsh:auth): authentication failure; logname=steve uid=0 euid=0 tty= ruser= rhost= user=root
因此它试图验证我的用户帐户,而不是 fetchmail。我不明白为什么当我使用 sudo 运行 dpkg 时会发生这种情况,因为我已经以 root 身份进行了身份验证。日志看起来好像是在要求我输入密码才能成为 root,但显然不起作用。
由于升级到现在这个程度,我害怕重启,而且我不希望系统完全崩溃。有人知道我需要做什么吗?
答案1
以下是安装后(配置)脚本中值得关注的部分:
# if the login shell is not /bin/false, change this, see #481727
LOGINSH=$(getent passwd fetchmail | cut -d ':' -f 7)
if [ "x$LOGINSH" != "x/bin/false" ]; then
chsh -s /bin/false fetchmail
fi
为了解决这个问题,看看“getent passwd fetchmail”的输出结果会很有趣,但在此期间,您有几个解决方法可供选择:
运行“dpkg -l|grep '^.[fuhwt]'”显示所有等待配置的软件包。如果那里没有特别重要的软件包,那么重新启动可能没问题。
编辑 /var/lib/dpkg/info/fetchmail.postinst 并注释掉 chsh 行。然后运行 dpkg --configure -a,现在应该可以成功运行安装后配置。然后您可以手动执行 chsh。