ubuntu手賤改了sudoers權限之后的恢復


sudo 這個命令是ubuntu系統是用的最多的(和其他大眾版linux系統比起來),而一個普通用戶是否有sudo權限來臨時切換到root用戶來執行“一行”命令取決於 /etc/sudoers的配置,而sudoers這個詭異的文件又不能用常規的方式來修改。

所謂常規方式是什么呢,就是用chmod讓可以操縱的用戶獲得寫權限,修改完文件再將權限復原。可是sudoers這個文件默認權限是root的440:

-r--r----- 1 root root 4002 Mar  2  2012 /etc/sudoers

一旦把它的權限改成非440,就會出現sudo命令無法使用的情況。其他linux還好說,可ubuntu的root用戶默認是禁用的啊,root用戶用不了,sudo命令也用不了,糾結死了。若是別的文件還好說,偏偏這個文件權限一改就幾乎稍微大點的事都干不了了。

這個時候只能進入單用戶模式進行修復,ubuntu進入單用戶模式的方式是重啟選擇恢復模式的選項進入(如果有多個系統,grub菜單會顯示,這時選擇恢復模式的選項進入即可;如果只有唯一的一個ubuntu系統,需要開機按shift讓grub菜單顯示出來),在短暫的加載之后就可以選擇修復的選項了,這時選擇root選項,這個就是以root單用戶模式進入的方式。

用chmod將sudoers文件的權限改回440,之前可以sudo的用戶就可以正常使用了:

 chmod 440 /etc/sudoers

如果出現Read-only file system的提示不讓修改,可以重新掛載以解決:

mount -o remount rw / 

這時也可以用passwd給root用戶設置密碼,以后再出現這樣的烏龍就不需要重啟進單用戶模式了。但還是不推薦大家打開root用戶,我覺得吧,存在的就是合理的,通過禁用root的方式來限制命令的影響范圍是有一定必要的。

進入系統,正確的修改sudoers文件的方式其實已經卸載sudoers里了,就是使用visudo命令來修改這個特殊的文件。

## This file must be edited with the 'visudo' command.

應該使用有sudo權限的用戶,執行:

sudo visudo

在root ALL=(ALL) ALL這行下面在寫一行學着這行的格式,把需要使用sudo命令的用戶加在里面,保存時覆蓋掉源文件就可以了。

root ALL=(ALL:ALL) ALL
user ALL=(ALL:ALL) ALL

好啦,問題解決。

希望大家引以為戒,下次遇到問題時要是找到這篇東拼西湊的文章也能快速解決問題。同時也給自己提個醒。


免責聲明!

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



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