Sudoersファイルのめちゃくちゃ

Sudoersファイルのめちゃくちゃ

誤ってsudoersファイルを間違えてしまったので、ファイルを変更しようとすると、承認拒否メッセージが表示されるため、変更できません。sudoファイルを開くと構文エラーが表示され、有効なソースが見つからず、sudoersコマンドは実行されません。私はDebianのバージョンであるraspbianを使用しています。

このキャッチ22から抜け出す方法を知っている人はいますか?

答え1

  1. パスワードを知ってroot設定した場合は、suBeenを使ってroot編集できます/etc/sudoers
  2. ルートファイルシステムがSDカードにある場合は、それを取り出し、/etc/sudoersPCまたは他のデバイス(カードリーダーがある場合)で編集できます。
  3. U-Boot(ブートローダ)コマンドラインを入力し(通常はキーボードのボタンを押すか、UART経由で)、1Linuxカーネルコマンドラインに追加してシングルユーザーモードに入ります。このモードではroot編集できます/etc/sudoers。また、見ることができますこれ

答え2

シングルユーザーモードで起動する必要があります。

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

ルートとしてsudoersファイルを編集して問題を解決できます。visudovisudoはファイルを保存する前にファイルの構文チェックを実行するため、後でこの操作をやり直す必要がないように、このコマンドを使用してsudoersファイルを編集することをお勧めします。

答え3

クラウドインスタンスを使用すると、さらに問題が発生します。

ディストリビューションによっては、いくつかのテクノロジがありますが、すでにDockerをインストールして実行している場合は、通常Dockerコンテナで問題を解決できます。これは通常、Dockerサービスがルートとして実行され、コンテナ内にマウントされたボリュームで実行されるすべての操作がホストシステムのルートによって影響を受けるためです。

ホストマシンから:

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

「busybox」は、ダウンロードに時間がかかることのない素晴らしい小さなディストリビューションです。動作するシェルを含むDockerイメージがすでに存在する場合は、そのイメージを使用してください。

Dockerコンテナから:

cd /usr/local/etc
vi sudoers

/etc/sudoers.d/ディレクトリに誤ったファイルを追加した可能性があります。このような場合は、単にファイルを削除するだけで十分です。

コンテナをシャットダウンすると、やり直すsudoことができます。

うわー!

関連情報