そこからの復旧をログとして残しておきます。
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 件のコメント:
コメントを投稿