出現這個情況,從四個方面來分析:
1./usr/bin/passwd 的權限中沒有添加s即SUID特殊權限
即:-rwxr-xr-x. 1 root root 27000 8月 22 2010 /usr/bin/passwd
解決辦法: chmod u+s /usr/bin/passwd
SUID的功能簡單的說就是讓組用戶或其他用戶在執行該文件是擁有文件所有者(own)權限,這里就是需要獲取w(寫)權限,這樣才能將新密碼寫到/etc/shadow文件中 切記:SUID只對二進制的文件有效(系統中的一些命令),不能用在腳本上(script),因為腳本還是把很多的程序集合到一起來執行,而不是腳本自身在執行。同樣,SUID也不能放到目錄上,放上也是無效的。
2. lsattr /etc/shadow
—-i——–e- /etc/shadow(文件的隱藏屬性,具體不擴展),這里需要將i去掉
用chattr -i /etc/shadow
同樣/etc/group /etc/passwd也可能出現該情況。本次是用戶/etc/shadow不能擴展,把i屬性去掉就可以了。
3.雖然出現passwd: 鑒定令牌操作錯誤,但是密碼已經修改了,可以通過cat /etc/shadow去查看,只是該用戶被鎖定了,這里需要解鎖。
解決方案:
usermod +U somebody將該用戶解鎖(/etc/shadow文件中該用戶所屬第二欄有幾個!(驚嘆號)就執行幾次該指令)
4.主機磁盤已滿,修改密碼是提示:鑒定令牌操作錯誤
解決方法:清理磁盤后重新修改密碼