共计 1001 个字符,预计需要花费 3 分钟才能阅读完成。
今天准备修改 Linux 系统的 root 用户密码时,执行 passwd root,出现了以下情况,修改密码失败:
# passwd root
Changing password for user root.
New password:
Retype new password:
passwd: Authentication token manipulation error
到网上搜了下,有的说是因为 inodes 用完,也就是根分区满了引起的,但执行 df - i 并非找个原因:
# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda2 6406144 58534 6347610 1% /
tmpfs 8242797 2 8242795 1% /dev/shm
继续找答案,按照网上的案例检查用户密码相关的系统文件 /etc/passwd 和 /etc/shadow,发现这两个文件权限有 i 选项,查询结果如下:
# lsattr /etc/passwd
—-i——–e- /etc/passwd
# lsattr /etc/shadow
—-i——–e- /etc/shadow
备注:在 Linux 系统里,文件有 i 选项则表示不得对其做任何的修改,这也就导致了修改密码失败。
要解决该问题,则需要执行 chattr - i 命令,将以上两个文件 i 权限撤销掉
# chattr -i /etc/passwd
# chattr -i /etc/shadow
# lsattr /etc/passwd
————-e- /etc/passwd
# lsattr /etc/shadow
————-e- /etc/shadow
然后再执行 passwd 修改密码,
# passwd
Changing password for user root.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
修改完密码后,为了安全起见,可以执行 chattr + i 为用户密码系统文件增加 i 权限
# chattr +i /etc/passwd
# chattr +i /etc/shadow
# lsattr /etc/passwd
—-i——–e- /etc/passwd
# lsattr /etc/shadow
—-i——–e- /etc/shadow
正文完
星哥玩云-微信公众号