無意之間,使用sudo chmod -R 777 /usr命令修改了usr文件的所有者,導致sudo:must be setuid root問題的出現,即sudo命令無法使用。網上介紹的方法差不多都相同,就是通過下面兩條命令:
chown root:root /usr/bin/sudo
chmod 4755 /usr/bin/sudo
但是實際上在出現問題的當前用戶系統中上述兩條命令是無法起到想要的目的的,應用上述兩條命令必需在root用戶下執行才有效。那麼,怎樣進入root用戶呢,網上介紹的使用sudo passwd root 的方法肯定是行不通的,因為此時sudo命令已經發生錯誤了,只能使用另外的方法登錄root客戶端,這裡使用Ubuntu 的recovery模式。
首先,進入recovery模式。有的說是啟動時按ESC鍵,有的是啟動時按shift鍵,說法不一,都可以試試,我是使用shift鍵進入recovery模式的。注意,可以一次不能成功進入recovery模式,可以多嘗試幾次;
按照上圖按enter鍵後,在出現的界面中選擇root有關的那一列(記住:是root,不是newroot),enter後進入root用戶系統;
此時,已經成功的進入root用戶系統,在該系統中執行
chown root:root /usr/bin/sudo
chmod 4755 usr/bin/sudo
關機重啟,此時問題解決。