1 | $ sudo chmod -R 777 /* |
とか、どう見てもやったらいけないコマンドを平気で打つような大馬鹿者がいるみたいですよ。
1 2 3 | sudo: /etc/sudoers の状態取得 (stat) ができません sudo:有効な sudoers のソースが見つかりません。終了します sudo: ポリシープラグインを初期化できません |
なんてこった
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | drwxrwxrwx root root bin drwxrwxrwx root root boot drwxrwxrwx root root dev drwxrwxrwx root root etc drwxrwxrwx root root home drwxr-xr-x root root lib drwxr-xr-x root root lib64 drwx------ root root lost+found drwxr-xr-x root root media drwxr-xr-x root root mnt dr-xr-xr-x root root proc drwx------ root root root drwxr-xr-x root root run drwxr-xr-x root root sbin drwxr-xr-x root root srv dr-xr-xr-x root root sys drwxrwxrwt root root tmp drwxr-xr-x root root usr drwxr-xr-x root root var #(一部変更加えてます) |
大惨事だった。ひどい。ひどすぎる
/etc が777になってしまうのがもう最悪。sudoが使えなくなってしまう。どうしたものか
Live CD を使おう
sudo が使えないのは /etc/sudoers や、/bin/suなどのパーミッションが変更されてしまったから。Live CDで別のLinuxシステムをブートし、その環境下でパーミッションを変更することで対処可能。rootでLiveブートできるLinuxイメージならなんでもいいけど、今回は環境に合わせてUbuntu 15.10
Ubuntu Server | http://www.ubuntu.com/download/server
CDや、USB、DriveDroidなどに入れてサーバーでLive CDをブートする。言語の指定後、ブート画面になるが、
『Rescue broken system』を選択。
適当に進んでいけばレスキューモードになる
パーミッションの修復
まず、どのディレクトリがやられてしまっているのか確認しましょう。HDDをマウントして、マウントしたディレクトリに入ります
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | mount /dev/sda1 /mnt cd /mnt ls -l drwxrwxrwx root root bin drwxrwxrwx root root boot drwxrwxrwx root root dev drwxrwxrwx root root etc drwxrwxrwx root root home drwxr-xr-x root root lib drwxr-xr-x root root lib64 drwx------ root root lost+found drwxr-xr-x root root media drwxr-xr-x root root mnt dr-xr-xr-x root root proc drwx------ root root root drwxr-xr-x root root run ...略 |
どうやら 『bin』『boot』『dev』『etc』が最優先で直さなくてはいけなさそうな感じ。
所有者以外の書き込み禁止
大多数のシステムはこれでOK
1 2 3 4 | chmod -R go-w /bin chmod -R go-w /etc chmod -R go-w /boot chmod -R go-w /dev |
sudo やsshなどのパーミッション修復
sudo やssh周りはやや特殊なパーミッションなので、個別に設定
1 2 3 4 5 6 7 8 9 10 11 | chmod 440 /etc/sudoers chmod 440 /etc/sudoers.d/README chmod 755 /etc/sudoers.d chmod 640 /etc/shadow /etc/gshadow chmod 600 /etc/ssh/*_key chmod 600 /etc/ssh*key chmod 710 /etc/ssl/private chmod 710 /etc/cups/ssl chmod 1777 /tmp /var/tmp /var/lock chmod 4755 /bin/su /usr/bin/passwd /usr/bin/sudo /usr/bin/sudoedit chmod 2755 /var/mail /var/spool/mail |
そんなファイル/ディレクトリねーよ と言われたらスルー
で、
1 | reboot |
Live CDは取り出す。
あとは自分で設定したパーミッションを修復して終わり。
マジで焦ったけどすぐになんとかなった。でも正直再インストールのほうがいいと思います。はい