今天准备修改Linux系统的root用户密码时,执行passwd root,出现了如下状况,修改密码失败:node
# passwd root Changing password for user root. New password: Retype new password: passwd: Authentication token manipulation error
到网上搜了下,有的说是由于inodes用完,也就是根分区满了引发的,但执行df -i并不是找个缘由:python
# 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选项,查询结果以下:linux
# 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修改密码code
# passwd Changing password for user root. New password: Retype new password: passwd: all authentication tokens updated successfully.
修改完密码后,为了安全起见,能够执行chattr +i为用户密码系统文件增长i权限blog
# chattr +i /etc/passwd # chattr +i /etc/shadow # lsattr /etc/passwd ----i--------e- /etc/passwd # lsattr /etc/shadow ----i--------e- /etc/shadow
福利:豆花同窗为你们精心整理了一份关于linux和python的学习资料大合集!有须要的小伙伴们,关注豆花我的公众号:python头条!回复关键词“资料合集”便可免费领取!token