某次遇到需要進入系統的單用戶模式進行破密操作,結果卻顯示如下: 根據提示:Permission denied(缺少許可權) 此時查看/usr/bin/passwd 許可權: 正常情況下的許可權應該是如下: [root@web ~]# ls -l /usr/bin/passwd -rwsr-xr-x 1 r ...
某次遇到需要進入系統的單用戶模式進行破密操作,結果卻顯示如下:
根據提示:Permission denied(缺少許可權)
此時查看/usr/bin/passwd 許可權:
正常情況下的許可權應該是如下:
[root@web ~]# ls -l /usr/bin/passwd -rwsr-xr-x 1 root root 27856 Aug 9 09:39 /usr/bin/passwd [root@web ~]#
發現許可權異常,需要修複命令的許可權:
chown root:root /usr/bin/passwd chmod u=rwx,go=rx,u+s /usr/bin/passwd
再次出現錯誤提示:
原因&解決方法:
上面我們執行的chmod命令,其底層實現是chattr命令,用此命的功能更為強大,甚至可以鎖定文件,即使root用戶也操作不了此文件。
chattr是用來更改文件屬性,lsattr可用來查看文件的屬性,執行命令lsattr /webapps/.usr.ini便可以看到當前文件的屬性;
可以發現當前文件有個i屬性,查閱命令幫助文檔可以看到有i屬性的文件是不能修改的,更不可被刪除,即使是root用戶也不可。
既然知道了文件不能刪除的原因是加了i屬性,所以相應的解決方案就是把文件的i屬性去除,然後再刪除。
lsattr查看相關命令和文件的文件屬性:
chattr -i 去除鎖定的文件屬性
嘗試再次修改許可權,無報錯說明執行成功,如有錯誤需要檢查之前的操作是否有遺漏:
chown root:root /usr/bin/passwd
chmod u=rwx,go=rx,u+s /usr/bin/passwd
再次嘗試破解密碼,執行成功,如有錯誤需要檢查之前的操作是否有遺漏:
echo “123456” | passwd --stdin root //修改密碼
touch /.autorelabel //讓SELINUX生效,這一步一定不能少,不然不能重啟
重啟,輸入破解後的密碼可以正常進入系統:
exit
reboot