SSブログ

【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) 
共通テーマ:パソコン・インターネット

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。