本記事はtg研に監視されています。
この記事は、12日分の記事です。
研究室のVMがいう事を聞かない
そもそも何があったのか
きっかけは、Cygwinでsshをしたときのことでした。
$ 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を弄らなければ取り返しがついたかもしれないらしい。
問題が出たからそれを直せばいいや的な発想は、非常に危険だったみたいですね。