So-net無料ブログ作成

【Ubuntu 11.04】パスワードに関して:パスワードを忘れた場合の対処、sudo をパスワード無しにする、パスワードの生成について [ubuntu]

つい先日、下記の記事にsudoでパスワードを問い合わせ無しにする方法が載っていました。

http://unixmen.com/linux-commands/1771-how-to-avoid-sudo-password-prompt-

ただし、上記記事の通りにやるとUbuntu 11.04(Natty)では、ほぼトラブルになります。それと、sudoを使う時に楽ですが、セキュリティは甘くなります。Ubuntuマシンを自分しか触れない状況以外は、やらない方が良いです。(やらないで下さい。と言ってもいいくらい)

※一応、手順を一番最後の所に記述しておきます。

上記の方法をやってsudoが出来なくなったり、パスワードを忘れた時の為などに、パスワードに関する事を書いておきます。

 

<<sudoresをいじってsudo出来なくなった場合 >>

始めに示したURLの方法でsudoの時にパスワードを問い合わせないようにしようとすると、/etc/sudoersのパーミッションを変更するので、その後sudoをしても下記のようなエラーが出ます。(下記はsudo apt-get updateをした例)

natty@narwhal:~$ sudo apt-get update
sudo: /etc/sudoers is mode 0740, should be 0440
sudo: no valid sudoers sources found, quitting

ところで、Ubuntuはsuはデフォルトでは出来ないようになってます。なので sudoもできないしsuも出来ないので/etc/sudoersのバーミッションを戻せないと言う事になります。

そこで、 シングルユーザーモードでパーミッションを変更します。

1) Grubメニューを出す

他のOSがある場合は自動的に出ますが、出ない場合はShiftキーを押しながらパソコンを起動します。すると下図のメニューが出ます。

SS-passwd-003.JPG

そしたら、(recoverey mode)と書いてあるのを選んで起動します。

2) rootでログイン

起動プロセスが進むと、最後の方で下図が出ます。

SS-passwd-001.JPG

「root Drop to root shell prompt」を選んでエンターキーを押します。すると、下図のようにrootのプロンプトが出るはずです。

SS-passwd-004.JPG

※ubuntu1104の部分はホスト名なので、各自が設定したものが出ます。それとrootにパスワードを付けた方は、このようにはなりません。後で説明します。

3) パーミッションの変更

/etc/sudoersの記述に誤りがある方は、

root@ubuntu11.04:~# vi /etc/sudoers

で記述を直して下さい。

そしたら、下記でパーミッションを戻します。

root@ubuntu11.04:~# chmod 440 /etc/sudoers

後は rebootコマンド(リブート)shutdown -h nowコマンド(シャットダウン)で終了して下さい。次回からsudoが出来るはずです。

 

<< パスワードを忘れた時の対処 >>

★デフォルトのままの方★

rootにパスワードを付けていない方が対象です。

1) シングルユーザモードで立ち上げる

前述の <<sudoresをいじってsudo出来なくなった場合 >>の「1) Grubメニューを出す」と「2)rootでログイン」の手順を行って、rootのシェルプロンプトを出して下さい。

2) passwdファイルの確認

下記のコマンドを入力して下さい。

root@ubuntu11.04:~# less /etc/passwd

すると最初の行が下図のはずです。

root:x:0:0:root:/root:/bin/bash

このファイルの構造は「:」で区切られていて、

ユーザ名:パスワード:ユーザーID:グループID:説明:ホームディレクトリ:ログインシェル

となっています。 ただし、パスワードの欄が「x」だとシャドーパスワードが使われます。Ubuntu11.04ではシャドーパスワードがデフォルトなので、全てxが付いています。

上記を踏まえて、自分のID(下記の例ではnatty)もパスワード欄「x」が付いているか調べて下さい。

natty:x:1000:1000:natty,,,:/home/natty:/bin/bash

3) パスワードを一時的に削除

シャドーパスワードファイルを編集してパスワードを一時的に削除します。

下記のコマンドでシャドーパスワードファイルを開きます。

vi /etc/shadow

自分のID(パスワードを忘れたID)を探して(下記の例ではnatty)、赤色を付けたコロンに挟まれた青色の文字を削除します。

natty:$6$Uk9Sabb7$f0GgNbsjy/KpjW45t8D.LTaJCSzx3.svsw3K55C
JyWfPGFrReN7dm99SFWXHQqaSkkIb2RsN1dG09EF04kvLs0
:15154:
0:99999:7:::

すると下記のようになります。

natty::15154:0:99999:7:::

そしたらセーブします。これでパスワードが削除されます。

4) マルチユーザーに移行

rootプロンプトが出た状態でctrl+d を押すと、下図になります。

SS-passwd-005.JPG

そうしたら、今度は「resume Resume normal boot」を選んで起動します。

そして、ログインプロンプトが出たら、自分のID(先ほどパスワードを削除したID)を入力してエンターキーを押します。するとパスワードが聞かれることなくプロンプトが出るはずです。

SS-passwd-006.JPG

※今までのスクリーンショットとホスト名が変わっているのは気にしないでください。

5) 新しいパスワードを付ける。

下記を入力してパスワードを設定して下さい。※LANG=Cを設定したのは文字化けするからです。

natty@ubuntu11.04:~$ LANG=C
natty@ubuntu11.04:~$ passwd

SS-passwd-007.JPG

successfullyと出れば成功です。今度からここで設定したパスワードが使われます。

※sudo less /etc/shadow で見ると今度は自分のIDの所にまだ文字列が入っているはずです。

あとは sudo reboot なり sudo shutdown -h now なりして下さい。

 

★rootにパスワードを付けた方★

sudo passwdとかやって、rootにパスワードを付けた方は、シングルユーザモード で立ち上げても下図になります。つまり、rootパスワードを聞かれます。

SS-passwd-002.JPG

rootパスワードも忘れてしまった場合は、まだ試していません。

ただ、理屈上、下記の方法でできるのではと思っています。

1)Live CD(ext4がマウントできてLinuxならなんでもよい)で起動して、マウントします。(ここでマウントポイントを/mntとします。)

2) /mnt/etc/shadowのrootと自分のIDのパスワードを★デフォルトのままの方★の「3) パスワードを一時的に削除」と同じ方法でパスワードを一時的に削除します。

3) Live CDを抜いて、リカバリーモードで再起動します。そして自分のIDで入ります。

4) ★デフォルトのままの方★の「5) 新しいパスワードを付ける。」を行います。

5) sudo passwd root -l と入力して、rootに直接入れない様に(デフォルトに戻す作業)します。

ただ、2)のマウントしてパスワードを削除した時に、/etc/shadowファイルのパーミッション、ユーザ、グループがどうなるかが、ちょっと不安ですが・・・それさえ何とかなれば大丈夫だと思うのですが。。。。

その他、パスワードの生成の仕組みやsudo時にパスワードを入力しないで済むようにする方法が知りたい方は、広告の下の「続きを読む」を押してください。(既に開いている方もいると思います。) 

 ←指紋認証USBメモリ

    指紋認証USBメモリって意外と高い。
    でも、高くてもデータの紛失のリスクを考えると
    買う人いるんだろうな~
    私には縁の無い物かも・・・

 

 

 

 

続きを読む


nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット
メッセージを送る