2011/06/25

Ubuntu で usermod -G して admin から外され、目の前真っ白になった時の対処方法

マジで焦った。


前兆はあった・・・。
アップデート・マネージャが聞いてくるパスワードが
root のパスワードだった。
いつもは自分にパスワードを聞いてくる
rootのパスなんて覚えてないし、めんどくさいからほっといた。
(そもそも Ubuntu は root のパスはユーザーには知らされないとのこと)

次の日。
apache の virtualhost 作りたいから、デフォルトのファイルをコピーしようとした
cp /etc/apache2/sites-available/default /etc/apache2/sites-available/hoge
cp: 通常のファイル `/etc/apache2/sites-available/hoge' を作成できません: 許可がありません
あー sudo 忘れてた。
sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/hoge
オレ is not in the sudoers file.  This incident will be reported.

(;゚Д゚)(゚Д゚;(゚Д゚;)ナ、ナンダッテー!!
なぜか、sodo できなくなってた。

原因はこれだ。
apache と仲良くしたいから、apacheのグループにオレもいれてくださいなって
sudo usermod -G www-data オレ
ってした。脳内イメージは既存のグループに www-data が追加されてる。
で、その日はフンフン鼻歌交じりで作業して、PC 電源 OFF ♪

そしてらこの有様だよ。
Ubuntu は admin グループに所属しているユーザーのみ sudo を許可している。
オレの所属グループは
id オレ
uid=1000(オレ) gid=1000(オレ) 所属グループ=1000(オレ),33(www-data)
所属グループにAKB48 admin が入っていない!!
どうも Debian系の usermod -G は置き換えてしまうようだ。

まあ前置きが長くなってしまったんですけど、
対処方法は 「Recovery mode に入って ユーザーに admin グループを追加しましょう」だ。

  1. とりあえず シャットダウン。
  2. 起動時に GRUB のメニューが出る人はのまま起動。出ない人は Shift を押したまま電源 ON!
  3. GRUB のメニューは Ubuntu, with Linux 2.6.38.-8-generic (recovery mode)と「 (recovery mode)」 とあるのを選択する。
  4. 「Recovery Menu」では root Drop to root shell prompt を選択
  5. すると、root でログインした状態になるので、
    sudo usermod -G adm,dialout,cdrom,plugdev,lpadmin,admin,www-data,オレ オレ
    とおもむろにタイプ。
  6. exit
    とタイプして 「Recovery Menu」に戻る。
  7. resume Resume normal boot を選択
  8. ログインプロンプトがでるので、ユーザーとパスワードを入力してログイン
  9. sudo 出来るか再起動してみる
  10. sudo reboot
  11. やったね!!再起動できたよ。


5 で追加したグループはインストール時に作ったユーザーに付いてくるグループのようだ。
それに追加したい www-data も追加している。
あとは自分グループも忘れずに追加。

sudo が使えないと ubuntu は何もできないな(そんなことはない

あ、あと AKB48 についてほとんどしりません。
人数多いんだねくらい。個々の名前もわかりません。ごめんなさいごめんなさい。