2014年7月11日金曜日

sudoersをぶっ壊してみた

sudoのPATH追加とかいろいろググってたら/etc/sudoersを間違えてrmしました。
そこからの復旧をログとして残しておきます。

sudoersとは
"sudoers - デフォルトの sudo 用セキュリティ・ポリシー・モジュール
sudoers ポリシー・モジュールは、デフォルトの sudo 用ポリシー・プラグインであり、このモジュールによってユーザがどんな sudo 権限を持っているかの判定が行われる。"
- Man page of SUDOERS http://linuxjm.sourceforge.jp/html/sudo/man5/sudoers.5.html

つまりsudo権限に関するモジュールです。
これをいじってしまうとsudoが使えなくなってしまったりするものですが、間違えてrmしてしまいました。

まず、これがないと

sudo: /etc/sudoers の状態取得 (stat) ができません
:そのようなファイルやディレクトリはありません
sudo:有効な sudoers のソースが見つかりません。終了します
sudo: ポリシープラグインを初期化できません

という表示が出ます。sudoが使えない、また、sudoersはsudoでしか編集できない/etc/以下に存在するので、にっちもさっちもいかなくなります。
こうなってしまうと、リカバリーモードから編集するか、他サーバーなどからリモートでアクセスして編集していくしかありません。
今回はちょうど目の前にubuntu 12.04.2 LTSのリカバリーディスクがあったのでそれを使いました。
リカバリーディスクのtry ubuntuからHDDをマウントし、HDDの/etc/へ移動。
ここでsudoersを編集する

$ sudo visudo

を使うと、リカバリーディスクのsudoの編集をしてしまいます。
故に今回は

$ sudo vi sudoers

とし直接編集しました。(実際は間違う可能性が多いのでやらないほうがいい)
作るsudoersのサンプルは
Sudoers - Community Help Wiki 
を利用しました。
これでリカバリーディスクからsudoersを作成し保存してreboot。

しかし、

sudo: /etc/sudoers のアクセス権限のモードは 0662 です。これは 0440 であるべきです
sudo: 有効な sudoers のソースが見つかりません。終了します
sudo: ポリシープラグインを初期化できません

アクセス権も付加します。
アクセス権もsudoがなくては使えないのでリカバリーディスクから

$ chmod 0440 /etc/sudoers

これで使えるように。

教訓
sudoersは触らないほうがいい。


さんこうさいと
http://takuya-1st.hatenablog.jp/entry/20090806/1249554458
http://www.maruko2.com/mw/%E4%B8%80%E8%88%AC%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%92_sudo_%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B

0 件のコメント:

コメントを投稿