ローカルのVagrant環境をいじっていたらsu
コマンドもsudo
コマンドもエラーになってしまい、めちゃめちゃ焦った話。
結論から言うと開発環境を作り直すことになったので、自戒も込めてここに投下します。
環境
- Vagrant 2.1.2
- CentOS Linux release 7.5.1804
rootログインエラーになる理由
npmでPermission Deniedだなんだと怒られたので、原因を検索して見つけたこんなコマンドをなんの気なしに打ってみました。
sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
それでもnpmはエラー。
しかもVagrantがシャットダウンも起動もできない。
調べてみるとどうも/usr/bin以下の権限がrootから変わってしまった模様。。。
$ ll /usr/
dr-xr-xr-x. 2 hogehoge root 28672 3月 23 08:37 bin
su、sudoコマンドの権限まで変わってしまったのが問題ぽい。
$ ll /usr/bin/
︙
-rwxr-xr-x. 1 hogehoge root 32184 4月 11 2018 su
---x--x--x. 1 hogehoge root 143184 4月 11 2018 sudo
︙
この状態でrootログインしようとするとエラーになってしまう。
$ su -
Password:
su: Authentication failure
いろいろ調べてみたんだけど、root権限になれない時点で何もできず。
環境を作り直すのが一番良さそうという結論に。。。
はーーーVagrant上でよかった。。。
Mac上とかでやってたらやばかったかも…。
見かけたコマンドをなにも考えずに叩いてしまうのはよくないですね。