作為ubuntu等桌面系統,默認登錄的帳號是沒有root權限的,為了提升權限來執行任務,我們一般用到sudo+命令來執行,但是不難發現我們一般都要輸入密碼。那麼有沒有什麼方法可以讓我們執行sudo的時候不輸入密碼呢?當然有咯。那就是對sudoers文件進行修改。
如何修改sudoers?直接修改/etc/sudoers麼?不,那樣子修改很容易造成權限錯亂。奶牛手動修改的時候,由於對於格式並不是那麼了解,所以編輯的時候報錯很多次,因此不建議用直接修改法。我們可以用visudo來進行編輯。
進入終端,執行sudo visudo
在#User privilege specification下面會羅列一些規則,我們現在需要做的是對我們的用戶進行一些操作。假如我們的用戶名為nenew
在文件的最後一行添加:
nenew ALL=(ALL) NOPASSWD: ALL
然後保存退出,執行
sudo usermod -aG admin nenew
重啟下看看nenew帳號執行sudo還需要密碼麼?這裡我們需要了解順序這個問題,在ubuntu的wiki上有比較詳細的介紹。
%admin ALL=(ALL) ALL
這行只是讓admin組的用戶擁有可以像任何帳號一樣執行命令的能力,但是還是需要有密碼的,因此我們需要把我們的nenew用戶加入到admin組中,所以有sudo usermod -aG admin nenew ,然後是對其進行NOPASSWD定義,這行一定要在%admin ALL=(ALL) ALL 這行後面,才會生效。
文章發玩之後很多朋友提出不安全問題來,確實,這樣是存在安全隱患的。奶牛此文的目的也只是想讓各位了解下sudoers的那個生效的順序,當然,我們可以把最後的
nenew ALL=(ALL) NOPASSWD: ALL 更改為對於命令進行限制,例如對於關機命令取消密碼
nenew ALL=(ALL) NOPASSWS: /sbin/shutdown, /sbin/halt, /sbin/reboot