サーバの管理をしていて
クラウド上のサーバを管理するために、いつも通りsshで接続。sudoでルート権限に上がる。
さて、今回webコンテンツも触る関係上、自分ユーザをapacheグループに入れておこうと。
別段、よくやる作業なので、気楽に…。
# usermod -G apache 自分
とやってしまっていた。
正しくは、
# usermod -a -G apache 自分
でないと、まずいのだ…。でも、この作業をした時に、ユーザの追加やら、グループの変更など、色々やって最後に自分の設定をして間違えていた。
この後、webコンテンツを、/var/www/htmlにコピーして、apacheグループに入れておいて便利〜などと浮かれていた。
ログアウトして、翌日、ログのチェック等作業を行おうとコンソールからsshする。
そして、sudo -sでルートに上がる。
[ユーザ名]はsudoersのファイルにありません。
とつれない表示。???
この時点では、何が起きたかわかっていない。
ことの重大さに気付き、冷や汗を書いたのだが・・・。
行った作業
おかしいな、sudoersに無いなんて、編集していないしなと思い、確認することに。
less /etc/sudoers
パーミションが無いと言われる。
そりゃそうだ。
はっ!!!
見たり編集するためにはroot権限が必要だが、root権限を得るためにはsudoが使えないといけない。
詰んだ…
rootでのsshは許可していないし、変更するにはsudoが必須。→ダメ
historyで昨日の作業を見なおして、chmodのミスに気づく。
じゃ、wheelにも追加してやればいいじゃん。root権限が必要→ダメ
/etc/groupを書き換える?root権限が必要→ダメ
結局、自分にroot権限を付与するためには、root権限が必要なわけだが、自分からroot権限を剥奪している以上、付与できないという綺麗な循環が成り立った。
ということは、このクラウドでは、rootに上がれず、何もできないことが判明。
解決策はちゃんとあった
クラウドを借りてから、ずっとsshで作業していたけれど、そういえばWEB上の管理画面からコンソールエミュレーションの機能があった。
ここは、緊急時や初期設定時に使用するものだけれども、rootで入れるようになっている。
だいたい、アドレスすら覚えていないレベル。昔の契約時のメールを確認して、管理画面→コンソールへとすすむ。
ちゃんと自分でログインしていて、rootに上がった状態で、中断していた。
そこから再開なので、わざわざrootで入る必要もない。
ちなみに、linuxなどは、ログイン中に自分の権限が変わっても、ログアウトするまでは、ログイン時の情報で作業できますので・・・。
ここから、正しくグループの追加処理を再度行っておく。
# usermod -a -G wheel
これで、apacheにも属し、wheelにも属すことになる。
念の為、terminalからsshをかけて、sudoを実行してみる。
今度はOK!
ふ〜、一時はどうなるかと焦ったものの、無事解決。
しかし、クラウドのように手元に実マシンが無いと、レスキューモード(single)で起動もできないので、設定ミスは危険ですなぁ。
そのために、WEB上から操作できるようになっているんだろうけど、危なかったわ・・・。
コメント
コメントを投稿
励みになりますので、簡単で良いので一言くださいませ。