2012年8月6日月曜日

ubuntuでusermod -Gでやらかしてsudo出来なくなった場合

開発PCの/var/lib/mysqlの中のファイルをいちいちsudoせずに参照したくなった。
ubuntuのユーザ名はadmin。
mysqlグループでの権限追加して、自分もmysqlグループに入ればいいだろ。
$ sudo chmod g+rx /var/lib/mysql
$ sudo usermod -G mysql admin
ログアウトしてログイン。
$ cd /var/lib/mysql
よし入れた。
おっと、見たいのはこの中のデータベースごとのディレクトリ内。
$ cd db1
bash: cd: db1: Permission denied
おおっと、データベースごとのディレクトリにも権限を足さないといけない。
$ sudo chmod g+rx db1
[sudo] password for admin:admin is not in the sudoers file.  This incident will be reported.
?…!! やっちまった!

usermod -G は所属グループを上書きするので,
元々所属していたsudoグループから引っ剥がされてしまった!
もとい、引っ剥がしてしまった orz


まあまあ、ありがちありがち。
一度深呼吸して、PCをブチ切り再起動。

grubで[recovery mode]を選択して起動し、rootシェルを選択。
# mount -o rw,remount /
# usermod -G adm,cdrom,sudo,dip,plugdev,mysql admin
# reboot
再起動で復活。

後の方のusermod -G以降は、ほぼ同じ設定で立てていたVMから拾ってきたもの。
そういうのが無い方でやらかしてすぐだった方は
/etc/group- に直前の設定が残っているので
rootシェルで入ったあとすぐ参照して控えましょう。

複数回usermodやっちゃった方は南無。
でもとりあえずadmとsudoぐらい入っておけば何とかなるでしょう。

0 件のコメント:

コメントを投稿