修改了Ubuntu下的/usr目錄許可權,導致不能使用sudo命令的修復
剛開始執行sudo時,報了下面這個錯誤
sudo: must be setuid root,於是上網找解決方法,搜尋出來的都是這樣解決的
ls -l /usr/bin/sudochown root:root /usr/bin/sudo
chmod 4755 /usr/bin/sudo
reboot
我測試後的結論是,這個方法是可行的,但沒有說清楚,需要有root的執行許可權,如果不能以root身份登陸,
則需要進入到recovery模式,進入方法為:在開機的過程中按shift或ESC鍵,我ubuntu12.04系統是shift鍵。
然後在grub選單中選擇第二個啟動項,進入到下一個選擇列表介面後,再選中有root字樣的一項,按回車,
此時,已經進入到具有root許可權的字元介面。輸入上述命令,如果問題已解決,那大功告成,可以跳過下面內容
我又遇到一個新問題,在此字條介面輸入上面的
chown root:root /usr/bin/sudo
chmod 4755 /usr/bin/sudo時,執行失敗,
提示read-only file system,然後又上網找,找了N久,測了很多方法,最後找到一個重新掛載/目錄以及指定其讀寫許可權的命令。命令如下:
mount -o remount,rw /
網址:http://www.linuxquestions.org/questions/linux-general-1/cannot-edit-fstab-in-recovery-mode-filesystem-is-read-only-540195/
然後再輸入上述命令
chown root:root /usr/bin/sudo
chmod 4755 /usr/bin/sudo
可以了,執行成功。輸入ls -l /usr/bin/sudo驗證修改是否成功,結果顯示已經修改了。
以為問題解決了,高興的輸入reboot命令重啟。
悲吹的一幕出現了,輸入sudo還是有問題,
提示“sudo: /usr/lib/sudo/sudoers.so must be only be writable by owner”,又得開始google了,
找到一個方法是說輸入命令:(當然要進入recovery模式)
pkexec chmod go-w /usr/lib/sudo/sudoers.so
但我輸入該命令時,執行失敗,忘了提示什麼錯誤資訊了。
該問題的原因為自己錯誤的修改了/usr目錄下的所有許可權,那上述命令是不是更改回來的許可權不夠呢
於是想到了修改/usr/lib/sudo/sudoers.so檔案的許可權,輸入命令
chmod 4755 /usr/lib/sudo/sudoers.so
然後reboot,輸入sudo命令可以了。。。。。。。