昨天不小心在 /etc/sudoers.d 目錄下加了個檔案,格式有問題,導致之後下 sudo 指令都會出現這樣的錯誤:
sudo: unable to initialize policy plugin
本想說要來重開機,進 single 模式來修改了,還好,找到這篇:https://unix.stackexchange.com/questions/677591/how-to-restore-a-broken-sudoers-file-without-being-able-to-use-sudo
照這篇的方法來處理,就免於重開機的命運。
方法是這樣的,先開兩個終端機視窗,都登入需要處理 sudoers 的主機,在第一個終端機視窗輸入下面指令取得當前 bash 的 pid
echo $$
在第二個終端機視窗輸入
pkttyagent --process <pid>
這個 <pid> 就是前面取得的 bash 的 pid。
再回到第一個終端機視窗,因為我是在 /etc/sudoers.d 目錄下加了一個格式錯誤的檔案,所以就刪掉就可以。
pkexec rm -f /etc/sudoers.d/user1
文章裡,是提問者把檔案擁有者改錯了,導致有問題,所以他用的是 chown 來改擁有者。
文章裡有說明為什麼可以用 pkexec 來處理,這指令其實跟 sudo 差不多,主要是用 polkit 在處理,解答的人說的很仔細。
可喜可賀,學到一個有趣的指令,也解決了一個手殘改錯的問題。
沒有留言:
張貼留言