Ubuntu 誤修改sudoers 導致 無法使用sudo的解決辦法

我們在使用ubuntu時,經常會使用sudo命令,但是使用ubuntu用戶登錄,使用sudo命令時,經常會要求輸入密碼,爲了方便,我們可能會修改root用戶下 /etc/sudoers 文件,使sudo命令不需要輸入密碼,這個時候就不可避免的會輸入錯誤,導致sudo命令無法使用,出現類似如下錯誤

>>> /etc/sudoers: syntax error near line 22 <<<
sudo: parse error in /etc/sudoers near line 22
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

捉急,怎麼辦,sudo運行不了,ubuntu下一般都不設置root密碼,根本進入不了root用戶。

這個時候常規的做法就是重啓系統,進入grub界面,再進入recovery模式,修改sudoers文件,重啓系統。

但是有時候,主機並不是自己控制的,自己只有ssh登錄系統的使用權限。

這個時候下面這種方法就是救世主了:

使用下面的命令來編輯sudoers文件

pkexec visudo

但是卻報如下錯誤:

==== AUTHENTICATING FOR org.freedesktop.policykit.exec ===
Authentication is needed to run `/usr/sbin/visudo' as the super user
Authenticating as: ubuntu,,, (ubuntu)
Password:
polkit-agent-helper-1: error response to PolicyKit daemon: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: No session for cookie
==== AUTHENTICATION FAILED ===
Error executing command as another user: Not authorized

This incident has been reported.

怎麼辦?這是什麼問題?其實我也不知道。正確的打開方式如下:

1、打開兩個ssh終端,都是用ubuntu用戶登錄

2、在第一個終端輸入以下命令,獲取pid

echo $$

3、在第二個終端,輸入:

pkttyagent --process {pid}

這裏的{pid}就是第二部獲取的pid值(PS:記得去掉{})

4、這個時候,第二個終端會卡住,在第一個終端輸入:

pkexec visudo

5、然後,第二個終端也卡主,回到第一個終端,會提示輸入當前用戶密碼,輸入

6、好吧,輸入完密碼,第一個終端卡主了,回到第二個終端,會發現,出現了sudoers的內容,編輯出錯的地方,保存即可。

7、完成任務,修改完成,發現就可以繼續使用sudo命令了,over

 

PS:這裏用的編輯器是nano,以下是nano簡單的保存方式:

linux下在編輯狀態下退出請按Ctrl+X,會有兩種情形:
①、如果文件未修改,直接退出;
②、如果修改了文件,下面會詢問是否需要保存修改。輸入Y確認保存,輸入N不保存,按Ctrl+C取消返回。如果輸入了Y,下一步會提示輸入想要保存的文件名。如果不需要修改文件名直接回車就行;若想要保存成別的名字(也就是另存爲)則輸入新名稱然後確定,這個時候也可用Ctrl+C來取消返回。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章