ユーザーのパスワード First Edition 2002.6.13 Last Modified 2003.9.24 ユーザーのパスワードを設定する方法、変更する方法などを書いていきたいと思います。 また、パスワードを暗号化して保存する方法についても触れたいと思います。 目次 1 パスワードを設定する(対象Ver:全て)(2003.9.24) 2 パスワードを変更する(対象Ver:全て)(2003.9.24) 3 パスワードファイルの書式(/etc/passwd)(対象Ver:全て)(2003.9.24) 4 パスワードを暗号化する(pwconvコマンド)(対象Ver:全て)(2003.9.24) 5 パスワードを非暗号化する(pwunconvコマンド)(対象Ver:全て)(2003.9.24) 6 パスワードをロックする(ログインできなくする)(対象Ver:全て)(2003.9.24) 7 スワードのロックを解除する(ログインできるようにする)(対象Ver:全て)(2003.9.24) 8 シャドウパスワードファイルの書式(/etc/shadow)(対象Ver:全て)(2003.9.24) 9 パスワードの最低文字数を増やす(対象Ver:全て)(2003.9.24) 10 パスワードを自動的に生成する(対象Ver:全て)(2003.9.24) 11 パスワードの自動作成長さを指定する(対象Ver:全て)(2003.9.24) パスワードを設定するユーザーを追加したらパスワードを設定しなくてはいけません。ユーザーを追加してからそのユーザーに対してパスワードを設定できるのは、ルートだけです。以下のコマンドを実行します。 パスワードは2回入力します。 # passwd lucky Changing password for user lucky New password: Retype new password: passwd: all authentication tokens updated successfully パスワードを変更するパスワードを変更するのは、一般ユーザーで行うことができます。最初に現在のパスワードを入力し、新しいパスワードを2回入力します。 $ passwd Changing password for lucky (current) UNIX password: New password: Retype new password: passwd: all authentication tokens updated successfully新しいパスワードは、ある程度の複雑さが必要です。あまり簡単なパスワードだと、設定すらできません。 自分のパスワードを忘れてしまった場合は、ルートにパスワードを変更してもらいましょう。 ルートが一般ユーザーのパスワードを変更する場合は、現在のパスワードを入力する必要はありません。 # passwd lucky New password: Retype new password: passwd: all authentication tokens updated successfully パスワードファイルの書式(/etc/passwd)ユーザーアカウントに対して設定したパスワードはテキストファイルに保存されています。/etc/passwdファイルになります。/etc/passwdファイルの記述法は以下のようになっています。
/etc/passwd
パスワードを暗号化する(pwconvコマンド)/etc/passwdファイルにおいて、ユーザー名の次にくるフィールドには変換されたパスワードがセットされます。前節の例においては、この部分は"x"という文字列になっていました。これはすでにパスワードが他のファイルに暗号化されて システムに保存されていることを示しています。 暗号化されていない場合、/etc/passwdファイルは以下のようになります。 lucky:jwijiufldvqdx86JbnldflmaZyjrbley:500:500::/home/lucky:/bin/bash一見パスワードが暗号化されているように見えますが、暗号化されているわけではなく、ある簡単な規則にしたがって 変換されているだけなのです。 /etc/passwdファイルは一般ユーザーで読み込むことができます。ということは、あるユーザーが/etc/passwdファイルの中を見て パスワードを見破ることができるということになります。 Vine2.6r1ではデフォルトでパスワードが暗号化(シャドウパスワード)されていますので、特にパスワードを暗号化する必要はありませんが、 覚書として書いておきます。 # pwconvこのようにすると、パスワードは/etc/shadowファイルに格納されるようになります。(暗号化されたパスワードが格納されたファイル(/etc/shadow)については シャドウパスワードファイルの書式(/etc/shadow)をご覧ください) パスワードを暗号化してあれば、/etc/shadowファイルに格納され、かつこのファイルはルートしか読み書きできないようになっているので 比較的安全になります。 では、/etc/passwdもルートしか読み書きできないようにすれば良いのかというと、そうではありません。アプリケーション自体が/etc/passwdファイルを 参照するような場合、ルートでしか読み書きできないようになっているとうまく動作しない場合があります。最近ではアプリケーション自体がシャドウパスワードを サポートしている場合が多いので、特別な理由がない限りはシャドウパスワードで運用した方がよいと思います。 パスワードを非暗号化する(pwunconvコマンド)余程のことがない限り、パスワードの暗号化を無効にする必要はないとは思いますが、覚書として書いておきます。以下のコマンドを実行するだけです。 # pwunconvこの状態で、/etc/passwdファイルを見てみると、パスワードフィールドにパスワードが入っているのが分かります。 パスワードをロックする(ログインできなくする)ユーザーアカウントを長い間使うことがなくなった場合(長期出張など)は、パスワードをロックしてログインできないようにする必要があります。 以下のようにします。# passwd -l userただし、ルートだけは該当ユーザーにスイッチできます。 実際にこの操作によって編集されたファイルは、/etc/shadowファイルになります。 /etc/shadow lucky:!jwijiufldvqdx86JbnldflmaZyjrbley:12316:0:99999:7:-1:-1:0パスワードフィールドの1文字目に"!"(エックスクラメイションマーク)が追加されます。 パスワードのロックを解除する(ログインできるようにする)パスワードのロックを解除するには以下のようにします。passwd -u userこの操作により、/etc/shadowファイルのパスワードフィールドの1文字目の"!"が削除されます。 シャドウパスワードファイルの書式(/etc/shadow)/etc/shadowファイルには、アカウントの情報が含まれています。ログイン名 暗号化されたパスワード 1970 年 1 月 1 日から最後にパスワードが変更された日迄の日数 パスワードが変更可となるまでの日数 パスワードを変更しなくてはならなくなる日までの日数 パスワード有効期限が来ることをユーザに警告する日数 パスワード有効期限が過ぎてからアカウントが使用不能になる迄の日数 1970 年 1 月 1 日からアカウントが使用不能になる日までの日数 予約された欄 このファイルは、ルートのみリードできるようになっています。内容を変更する必要があるときは、 useaddや、chageコマンドを使いますので、直接編集する必要はありません。 パスワードの最低文字数を増やすパスワードの長さは、デフォルトの設定では最低5文字以上となっています。セキュリティー上、パスワードの最低文字数を増やしたい場合は、/etc/login.defsファイルを編集します。 ルートになって作業します。 /etc/login.defs PASS_MIN_LEN 8 ←この数値を変更します パスワードを自動的に生成する簡単なパスワードを考えるのは簡単ですが、真面目に複雑な長いパスワードを考えるのは大変です。そこで、パスワードを自動的に生成してくれるコマンドがあります。一般ユーザーでも使用可能です。 デフォルトで9文字のパスワードを生成してくれます。 $ mkpasswd パスワードの自動作成長さを指定するmkpasswdコマンドによるパスワードの長さを変えるには、"-l"オプションをつけて実行します。最低6文字以上を指定します。 mkpasswd -l 10 [HOME] since 2001.4.22 |