無法修改linux/ubuntu密碼(Authentication token manipulation error )問題解決過程【轉】


轉自:https://blog.csdn.net/caizi001/article/details/38659189

Vmware虛擬機里的ubunut系統長期不用,密碼忘記了,無奈只能通過slax liveCD啟動,使用root權限將/etc/passwd ,/etc/shadow中root賬戶和本地賬戶的密碼去掉。重啟進入原來的系統,選擇修復模式,企圖通過root模式命令為本地賬戶重設密碼。但是當輸入passwd MYHOST ,然后輸入兩次密碼之后,卻提示passwd: Authentication token manipulation error.密碼修改失敗。

下面是網上比較完整的解決方案,但是在我這並未奏效。后面我會說我的解決過程。

==============================================================================================

修改linux密碼時出現錯誤passwd: Authentication token manipulation error

發生該錯誤原因是:
1、分區沒有空間導致。
2、/etc/passwd 和/etc/shadow不同步
但是這次上面兩條卻行不通,通過df查看根分區還有40%剩余。
 
1、嘗試修改密碼,出現錯誤
# passwd
Changing password for user root.
New UNIX password: 
BAD PASSWORD: it is WAY too short
Retype new UNIX password: 
passwd: Authentication token manipulation error
2、同步/etc/passwd 和/etc/shadow出錯
 #pwconv
pwconv: can't lock passwd file
3、看權限沒有異常,也沒有進程鎖定該文件
# ll /etc/passwd
-rwxr--r--  1 root root 2752 Dec 31 17:29 /etc/passwd
# fuser -u /etc/passwd
# lsof |grep passwd
4、cp lock文件出錯,提示空間不足
# cp /tmp/.pwd.lock /etc/
cp: cannot create regular file `/etc/.pwd.lock': No space left on device
5、上面的錯誤驚醒了我,查看確實是inode滿了,刪除無用的文件
#df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda5            2562240 2562240       0  100% /
/dev/sda1              50200      47   50153    1% /boot
/dev/sda2            51300000      12 51299988    1% /data/cache1
/dev/sdb1            51300000 7080311 44219689   14% /data/cache2
/dev/sdb2            9863168      11 9863157    1% /data/proclog
none                  215907       1  215906    1% /dev/shm
/dev/sda3            3842720  305795 3536925    8% /usr
/dev/sda7            3162112    7893 3154219    1% /var
6、再次修改密碼仍然出錯,於是嘗試修改/etc/passwd也出現錯誤
# chmod 777 /etc/passwd
chmod: changing permissions of `/etc/passwd': Operation not permitted
7、執行chattr 
#chattr -i  /etc/passwd
# lsattr -v /etc/passwd 
2095582053 ------------- /etc/passwd
# chattr -i  /etc/shadow
8、同步文件
pwconv
9、成功修改密碼
passwd 
Changing password for user root.
New UNIX password: 
BAD PASSWORD: it is WAY too short
Retype new UNIX password: 
passwd: all authentication tokens updated successfully.
=======================================================================================

經過以上解決步驟之后,可以確定,我的passwd,shadow未被任何進程占用,分區空間足夠。在執行pwconv命令時,依然提示:cannot lock "/etc/passwd" .......

轉而搜索“cannot lock file”問題。以下是網上的解決方法:

第一種情況 這個 passwd文件正在被 其他程序訪問,所以此時 是 鎖定狀態,知道那個使用它的程序 釋放 這個文件的 使用權。
第二種情況 就是 確實有 .lock文件存在 樓主在 etc下試下 rm -rf *.lock 看執行完這個 行不(root權限執行) 這個文件是 處理異常情況的 歸檔,和VIM的 那個緩存有些類似,在一致性沒有回復之前 這個文件一直存在的(維護系統的一致性)
為了在/etc下的茫茫文件中尋找那些lock文件,我企圖ls >> zzz.txt  (因為find命令不太熟悉,囧~~),這里竟然創建文件失敗,提示Read-only file system.......
轉而搜索“Read-only file system”問題,以下是網上的說法:

這種情況通常都是由於系統發現磁盤硬件故障或文件系統中文件被損壞之后而采取的保護機制導致的。為了保護數據不破壞分區中已有內容,Linux在掛載文件系統時就只用read-only只讀方式加載了。至於掛載的文件系統為什么會莫名地變成以只讀方式掛載的具體原因,這就不知道了。可能的原因有:
系統文件損壞;  磁盤有壞道;  fstab文件配置錯誤,如分區格式錯誤錯誤(將ntfs寫成了fat)、配置指令拼寫錯誤等。
如果能夠確認數據和系統的文件沒有被損壞,修復fstab文件配置后只要重新R/W加載或reboot就能夠恢復正常。

 

因此懷疑可能是我在liveCD中修改文件導致系統重啟之后發現數據被破壞,所以給Read-Only了。於是使用mount命令重新掛載成讀寫模式,命令如下:

#mount -o remount rw /

再次執行同步命令:#pwconv,沒有提示錯誤。然后順利使用#passwd MYHOST命令為賬戶MYHOST 設置密碼,#init 6 命令重啟,登陸成功!
---------------------
作者:wxmxl
來源:CSDN
原文:https://blog.csdn.net/caizi001/article/details/38659189
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM