こんにちは,お久しぶりです.
ブログカフェChromaの色です.
最近,Qiitaのとある恐ろしいAdvent Calendarを見つけました.

内容は,本番環境を壊したという恐ろしい経験を面白おかしく(?)懺悔するというものです.
私も将来こういう仕事をするかもしれないので,笑い半分,教訓半分で見てます.
ふと思い出したんですが,私にも軽度ですが似たような経験がありました.
本番環境ではないですが,皆さんの中で参考になればと思い,書いた次第です.
事件はいつも自己の慢心から
私はUNIXを触り始めてまだ日が浅いです.
それこそ2年たっていないくらい…
それでも,最近コマンドの使い方が分かってきたり,色んなディストロを触れるようになったりと,少しずつ詳しくなっている気でいました.
そんなある日,研究で使うためのアプリケーションを特権ではなく一般権限で使えるようにすることになりました.
これもいいことなのかわかりませんが…
要するに一々su -
だったりsudo
を使わなくていいようにしたいと.
アプリケーションには親切にそのための手順が記されていました.
ざっと読んだ感じ,どうやらusermod
というコマンドで自分の所属グループを増やすといいようです.
早速google先生に質問をし,コマンドを叩いてみました.
$ usermod -G グループ名 ユーザ名
そして目的のアプリケーションを実行すると,無事一般ユーザ権限でも実行できました.
これで目的は達成,一安心のはずが…
やらかしは時間差で気づく
その後,ほぼ日令と化しているパッケージのアップデートをしようと思ったときのこと.
いつものようにsudo apt update
を叩いてenterを押すと
$ sudo apt update
(ユーザー名) は sudoers ファイル内にありません。この事象は記録・報告されます。
…え?
原因:sudoersから外れていた
最初は血の気が引きましたが,冷静に状況を考えてみることに.
この状況になる前,最後に行った変更…
usermod
ですよねえ.
この時点でなんとなくわかりました.自分がsudoersから外れたのだと.
試しに自分の所属グループをgroups
コマンドで確認してみます.
$ groups
あー…sudoがない…
そこでusermodについて調べると,こんな感じでした.
-G group,[…]
ユーザが属する補助グループ(supplementary groups)のリスト。
man command – usermod
グループはコンマで区切り、間に空白文字を入れてはならない。
指定できるグループには-gオプションと同様の制限がある。
現在そのユーザが、新しいリストにないグループのメンバーになっている場合は、その
グループから削除される。
この-Gオプション,追加するグループだけを書けばいいわけではないんですね.
現在そのユーザが、新しいリストにないグループのメンバーになっている場合は、そのグループから削除される。
これは,コマンドで指定したグループでそのユーザのグループが上書きされてしまうということを意味しています.
つまり追加ではなく上書き.ちゃんと確認しなかったのがいけなかった.
ちなみに,グループを追加したい場合は,usermod -aG
としてappend(追加)すればOKです.
こちらもusermod
のoptionsに記述がありました.
-a, –append
append the user to the supplemental GROUPS mentioned by the -G option without removing him/her from other groups
-Gと一緒に使えばいいって書いてある…
解決:rootになってgpasswdでsudoを戻す
今回の環境は,rootになることが出来たので幸いしました.
解決方法としては,root権限を取得し,gpasswd
というコマンドでsudo権限を当該ユーザに戻すということを行いました.
まずrootになります.
$ su -
パスワード:
#
次に,gpasswd
コマンドで当該ユーザをsudoグループに追加します.
# gpasswd -a ユーザ名 sudo
Adding user ユーザ名 to group sudo
-a
オプションは,グループにユーザを追加するものです.
反省点:初めて使うコマンドは下調べを入念に
今回の反省は下調べ不足に尽きます.
初めて使うコマンドについては,一度その機能をしっかりと調査するようにします.
これがrm -rf
とかその類の失敗でなくてよかった…
特にオプションについてはman
コマンドや検索などでしっかり機能を確認しましょう.私も確認します.
コメント