Sudoers 文件混亂

Sudoers 文件混亂

我不小心在sudoers文件中犯了一個錯誤,現在我無法修復它,因為如果我嘗試更改文件,它會給出權限被拒絕的訊息。如果我用來sudo開啟該文件,則會顯示語法錯誤並且找不到有效的sudoers來源,並且不會執行該命令。我使用的是 raspbian,一種 Debian 風格。

有誰知道如何擺脫這個第22條軍規?

答案1

  1. 如果您知道root密碼(並且已設定),您可以使用suBeenroot和 edit /etc/sudoers
  2. 如果您的根檔案系統位於 SD 卡上,您可以將其推出並/etc/sudoers在 PC 或任何其他裝置上進行編輯(只要它有讀卡機)。
  3. 您可以進入U-Boot(引導程式)命令列(通常透過按下鍵盤上的按鈕或透過UART)並新增1至Linux核心命令列以進入單一使用者模式。在這種模式下,您將root並且可以編輯/etc/sudoers。也可以看看

答案2

您將必須啟動到單一使用者模式。

https://serverfault.com/questions/482079/debian-boot-to-single-user-mode

作為 root 用戶,您將能夠編輯 sudoers 檔案來修復它。我強烈建議您visudo將來使用該命令編輯 sudoers 文件,以避免再次執行此操作,因為 visudo 在保存文件之前會對文件進行語法檢查。

答案3

如果您在雲端實例上,那麼您會遇到更多麻煩。

有一些技術取決於發行版,但如果您已經安裝並運行了 Docker,那麼您通常可以透過 Docker 容器來解決問題。這是因為,通常,Docker 服務以 root 身分運行,對容器內已安裝磁碟區所做的任何操作都會受到主機上 root 的影響。

在主機上:

docker run --rm -ti -v /etc:/usr/local/etc busybox sh

「busybox」只是一個不錯的小型發行版,下載起來並不需要很長時間。如果您已經有一個包含可用 shell 的 Docker 映像,則只需使用它即可。

在 Docker 容器上:

cd /usr/local/etc
vi sudoers

您可能已將錯誤檔案新增至/etc/sudoers.d/目錄。在這種情況下,可能只需刪除該檔案即可。

當您退出容器時,您可以sudo再次進行。

哇!

相關內容