在某台 RHEL5 机器上,当 root 执行诸如passwd someuser
或任何其他特权命令之类的命令时,需要输入 root 密码进行验证,没有密码就无法执行该命令。
例子:
# id
uid=0(root) gid=0(root)
groups=0(root),10(wheel)
# passwd someuser
Password:(need to enter root verification password to proceed)
New user password:
Retype new password:
文件中存在 root 用户,
/etc/sudoers
如下所示:root ALL=(ALL) ALL
、 、、、、 、、
/etc/pam.d/
等中的所有基本文件与另一台机器上的文件相同,但行为方式不同。login
passwd
password-auth
password-auth-ac
system-auth-ac
system-auth
sudo
sudo-l
SElinux 被禁用。
/etc/nsswitch.conf
没有变化,与其他机器一致。passwd: files ldap group: files ldap shadow: files ldap hosts: files dns networks: files protocols: files services: files ethers: files rpc: files netgroup: files sudoers: files ldap
执行 passwd 命令时,从日志文件中看不到太多信息,如下所示:
/etc/log/secure
- 空(不幸的是我不允许接触 rsyslog)/etc/log/auth.log
sshd[xxxxx]: Accepted keyboard-interactive/pam for root from 127.0.0.XX port XXXXX ssh2 sshd[xxxxx]: pam_unix(sshd:session): session opened for user root by (uid=0)
当直接(不使用 ssh)连接到控制台时,也会发生同样的情况。
有人经历过类似的行为吗?
或者您能否推荐任何可以帮助查找问题原因的调试标志或方法?
答案1
这很可能与您的 pam 配置有关。我不确定在 RHEL 5 中是否完全相同,但在 RHEL 6 中,默认情况下,对于 UID < 500 的用户,帐户身份验证会成功,因为/etc/pam.d/system-auth
包含以下行:
account sufficient pam_succeed_if.so uid < 500 quiet
与 RHEL 上的其他身份验证相关工具一样,/usr/bin/passwd
使用 pam 和/etc/pam.d
.
/etc/pam.d/system-auth
通过运行yum reinstall pam
或/etc/pam.d/system-auth
从 rpm 中提取来恢复可能是最安全的选择。现有system-auth
文件可能不会被覆盖,而是写入为system-auth.rpmnew
.
答案2
首先,感谢大家的帮助。
生成新的 ssh 密钥后问题得到解决:
# ssh-keygen -t rsa
我发现authorized_keys2和id_rsa.pub文件之间存在差异,从而生成了新的密钥。老实说,我不知道它可以解决问题,因为我不再怀疑 ssh,因为我注意到控制台连接上也发生了问题。