suとsudoが使えなくなってOSを再インストール
とあるコマンドを実行したらsudoとsuが使えなくなり、詰んでしまったので二度とこのような悲劇を繰り返さないための覚え書きです。
sudo chown -R コマンド
私を絶望の淵に叩き落としたのがこちらのコマンドです。
上記のようにすることでディレクトリやファイルの所有者を変更することができます。これに-Rというオプションをつけると指定したディレクトリ以下のファイルやディレクトリの所有者を全て変更することができます。一括で変更できるので便利だなーと思っていたのですが、これを実行してはいけないディレクトリがあります。私はそれを知らずにやらかしてしまい、sudoとsuが機能しなくなってしまいました。
usrディレクトリにchownコマンドはNG
このディレクトリに対して上記のコマンドを実行するとどうなるか。
私のように詰みます。
つまり、suとsudoが使えなくなります。
では、なぜそうなってしまうのでしょうか?私はそこをちっともわかっていませんでした。
usrディレクトリ
usrディレクトリはルートディレクトリの直下にあります。そしてこのusrディレクトリ以下にはbinというディレクトリがあります。このbinディレクトリに移動してlsコマンドを実行すると、以下のように色々と出てきます。
赤く囲まれた部分に注目してください。suとsudoがあります。実はこれの所有者を変更してしまうと、suやsudoを使ってもルートユーザーに成り代わることができなくなります。ここで何もわからない私はまた所有者をrootに戻せばいいのでは?と思ってしまいましたが、当然そんなことはできません。そもそもそれができるのはルートユーザーだけだからです。これでルートユーザーしか操作できないコマンドなどを全く使うことができなくなってしまいました。
OSを再インストール
もう残された手段はこれしかないので実行しました。
そうしたら無事に解決できました。OSを再インストールしてもデータが残ると言うことを知らなかったため、今まで作ったものをGitHubに上げたりしてからやりましたが、結局全てもと通り。全部しっかり残ってました。ただ消えてしまう可能性もゼロではないみたいなので、バックアップを取ってから再インストールした方が安全ではあるみたいです。今回の場合は外付けのハードにバックアップ取らないといけませんが・・・。
まとめ
sudo chownコマンドを使うときは慎重に!
一時はどうなることかと思いましたが、無事に復活して一安心です。私の場合、これを直そうとしてターミナルが使えなくなるところまで行ってしまったので、私のMacBook終わったんじゃないかと思ってかなり落ち込みました。でも、TECH::EXPERTのメンターさんのお力添えのおかげでまた勉強できるようになりました。こんな失敗やらかす人、私以外にいないかもしれませんがご一読いただいた皆様はどうかお気をつけてください。