前面一篇文章說到,sudo 操作免密碼驗證等,最好先切換到 root 使用者,再進行編輯,最後強制儲存。如果不這麼做,而使用 chmod 來更改許可權,就會導致之後的 sudo 操作全部被拒絕。
問題是這樣的,我需要編輯 /etc/sudoers 檔案,想讓當前使用者使用 sudo 操作可以免密碼驗證,但是儲存不了,一直提示檔案是唯讀的,:wq! 強制儲存也不行,提示檔案不屬於當前使用者所擁有。
於是敲了一句 chmod:
$ sudo chmod a+w /etc/sudoers
修改了 /etc/sudoers 的許可權,再用 sudo 命令的時候,必定會出現報錯:
sudo: /etc/sudoers is owned by uid 501, should be 0
sudo: no valid sudoers sources found, quitting
501 是我當前登入的使用者 bingo,而 0 應該是 root 使用者。
網上的解決方案是進入 recovery mode,將 sudoers 的許可權修改回來。但我不相信必須要這麼做,想先嘗試看能不能改得回來。
於是將 /etc/sudoers 的 owner 和組,修改為 admin:
$ chown root:admin /etc/sudoers
執行這一句命令時出現乙個報錯:
$ chown: /etc/sudoers: operation not permitted
那這就很尷尬了,sudo 本來就已經不能用了,怎麼辦?
以管理員身份開啟cmd或powershell:
ps c:\> ubuntu config --default-user root
ps c:\> wsl
此時擁有最高許可權,任何操作都要慎重。
再次執行原來那句命令:
$ chown root:admin /etc/sudoers
就不會有 operation not permitted 的報錯了,然後 exit 退出 root 使用者後,隨便執行一句 sudo 操作命令,又出現另外乙個報錯:
sudo: /etc/sudoers is world writable
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
這個好解決,應該還是 /etc/sudoers 的許可權問題,繼續 su 切換到 root 使用者,然後改許可權:
$ su
$ chmod 555 /etc/sudoers
$ exit
然後再隨便敲一句 sudo,沒有報錯,問題已解決。
當wsl裡的root密碼忘了時,以管理員身份開啟cmd或powershell:
ps c:\> ubuntu config --default-user root
ps c:\> wsl
root@universe:/mnt/c# passwd
enter new unix password:
解決 使用者不在 sudoers 檔案中 的問題
使用sudo提權時出現 xx使用者不在 sudoers 檔案中。此事將被報告。出現這個問題是sudo的配置檔案出錯,修改sudo的配置檔案即可解決。使用su 切換到root,然後終端執行 sudo gedit etc sudoers 在檔案中新增紅色的那一行 members of the admin...
用springAOP解決許可權問題
1.service層 public inte ce personservice public class personserviceimpl implements personservice privilegeinfo name updateperson public void updatepers...
誤改sudoers的訪問許可權後的修復
sudo etc sudoers is mode 0777,should be 0440 問題的解決方法 ubuntu 進入單使用者模式,修改 sudoers 許可權,修改 root密碼1 重啟ubuntu 隨即長按 shift 進入grub 選單 2 選擇recovery mode 恢復模式 按 ...