VMでsudo ができなくなった件

本記事はtg研に監視されています。

この記事は、12日分の記事です。

研究室のVMがいう事を聞かない

 そもそも何があったのか

 きっかけは、Cygwinsshをしたときのことでした。

$ ssh MiyaFubu
ssh_exchange_identification: Connection closed by remote host

 というわけで、sshを弾かれました。

 よく考えればローカル側に問題がある可能性もあったのですが、私はとりあえずVMを疑ってVMを起動してみました。

 

localhost login:■■■■■
password:
Last login: ■■■■■■■■■■■■■■■■■
-bash: /dev/null:Permission denied
-bash: /dev/null:Permission denied
-bash: /dev/null:Permission denied
-bash: /dev/null:Permission denied
-bash: /dev/null:Permission denied
-bash: /dev/null:Permission denied
-bash: /dev/null:Permission denied
-bash: /dev/null:Permission denied
-bash: /dev/null:Permission denied
/home/■■■■/.rbenv/bin/rbenv: line 23: /dev/null: Permission denied
/home/■■■■/.rbenv/libexec/rbenv-init: line 36: /dev/null: Permission denied
-bash: /dev/null:Permission denied
[■■■■■@■■■■■ ~]$

 ……ん?

 こんな表示あったっけ?

 

 とりあえず、パーミッションだからchmodを使うのかな?

 chmodを使うごとにsudoするのは面倒なので、suを打つ。

[■■■■■@■■■■■ ~]$ su
Password:
su : cannot set groups: Operation not permitted
[■■■■■@■■■■■ ~]$

  あれ……suできない?

 rootのパスじゃなくて、ユーザーのパスだったっけ。

[■■■■■@■■■■■ ~]$ su
Password:
su : Authentication failure
[■■■■■@■■■■■ ~]$

 うん、やっぱりrootのパスだ。

 そうなると、どっかポカってるな。

 というわけで、管理者権限が使えなくなりました。

試行錯誤してみる

 /dev/null:Permission deniedとあったので、/dev/nullのパーミッションを確認してみる。

[■■■■■@■■■■■ ~]$ ls -l /dev/null
crwxrwxr-x 1 root root 1, 3 Dec 7 15:11 /dev/null 

 別のと比較。

[■■■■■@■■■■■ ~]$ ls -l /dev/null
crw-rw-rw- 1 root root 1, 3 11月 7 12:11 2017 /dev/null 

  比較した感じ、違うのはやっぱりパーミッションかな。chmod 666してみる。

[■■■■■@■■■■■ ~]$ chmod 666 /dev/null
chmod: changing permission of '/dev/null': Operation not permitted

  あー、権限ないか。よしsudoを……あれ、何か忘れている様な

[■■■■■@■■■■■ ~]$ sudo chmod 666 /dev/null
sudo: /etc/sudo.conf is group writable
sudo: /bin/sudo most be owned by uid 0 and have the setuid bit set

 そりゃ、suができないならsudoもできないよね。

 ちなみに、nullは名前通り空っぽでした。記述内容に何か問題があるわけではなかったという事です。

 悩むこと1時間。ふと、rootでログインしてみたらできてしまいました。

 というわけで、rootで実行

[root@■■■■■ ~]$ chmod 666 /dev/null
[root@■■■■■ ~]$ ls -l
crw-rw-rw- 1 root root 1, 3 Dec 7 15:11 /dev/null 

  何とかできた。さあ、sudoできるかな……

[■■■■■@■■■■■ ~]$ sudo
sudo: /etc/sudo.conf is group writable
sudo: /bin/sudo most be owned by uid 0 and have the setuid bit set

  全然できない。

 ただ、ログイン時に出ていた変な表示は出なくなったので一歩前進。

最終的に…… 

 そろそろ手詰まりになって来たので、"sudo: /bin/sudo most be owned by uid 0 and have the setuid bit set"でググってみる。

 すると、再インストールしろとの話がずらっと。

 なんでも、レスキューモードからsudoコマンドそのものを復旧させることはできるみたいなのですが、それ以外の部分に色々と致命的な問題が発生しているようで、それらをすべて直すくらいなら、再インストールした方が安全で楽だそうです。

 さ、再インストールかー、またrubyとrails入れるのかー。

 明日の記事は、rubyとrailsを入れる話になりそうです。まあ、herokuを入れなくていい分楽かな。

 

追記

tg研の先輩曰く、dev/nullを弄らなければ取り返しがついたかもしれないらしい。

問題が出たからそれを直せばいいや的な発想は、非常に危険だったみたいですね。