坐标系统:newstartV4.05 对标centos6

故障现象:root用户下执行passwd,返回passwd:permission denied

排查步骤:

一、首先lsattr /etc/passwd /etc/shadow,检查是否有i属性,如果有i属性,则文件无法修改删除。详细关于隐藏属性,可自行百度。

二、然后ll /usr/bin/passwd,看看此文件权限是否正常,正常情况是-rwsr-xr-x root root,如果不是,请修改至正确权限。

三、然后检查 /var/log/messages /var/log/secure看看有无异常信息提醒,有时日志也是很重要的信息来源。

四、检查/etc/pam.d/passwd

cat /etc/pam.d/passwd #%PAM-1.0 auth include system-auth account include system-auth password substack system-auth -password optional pam_gnome_keyring.so auth

验证使用者身份,提示输入账号和密码 account 基于用户表、时间或者密码有效期来决定是否允许访问 password 禁止用户反复尝试登录,在变更密码时进行密码复杂性控制 optional 无论验证结果如何,均不会影响(通常用于session类型) 可以看到前三项都指向system-auth,所以我们要去查看system-auth有没有什么异常。 在我这里发现system-auth为空,而正常的系统应当是一个软连接,指向system-auth-ac。终于找到了问题所在,所以我们只需创建一个软连接指向system-auth-ac即可。

后记:刚开始排查并不顺利,也科学上网去google搜索,但是都未解决,还是需要对系统的底层逻辑多熟悉,多查看手册,知道大概是哪一部分出了问题,然后对应的去检查。