passwd はユーザアカウント・グループアカウントのパスワードを変更する。
一般ユーザは自分のアカウントのパスワードしか変更できない。
スーパーユーザはいかなるアカウントのパスワードも変更できる。
グループの管理者はグループのパスワードを変更できる。
passwd によって、ユーザのフルネーム・ログインシェル・
パスワードの期限切れの日付・
有効期間といったアカウント情報を変更することもできる。
-s
オプションを指定すると
passwd は chsh
を呼び出してユーザのシェルを変更する。
-f
オプションを指定すると
passwd は chfn
を呼び出してユーザの GECOS 情報を変更する。
これらの 2 つのオプションは互換性のためだけにある。
chsh や chfn を直接呼び出しても構わない。
パスワードの変更
パスワードが既にある場合は、まず古いパスワードを入力するよう促される。
入力されたパスワードは暗号化され、記録されているものと照合される。
正しいパスワードを 1 回で入力しなくてはならない。
スーパーユーザは、パスワードを忘れてしまった際の変更も行なえる様に、
このステップを省略できる。
パスワードが入力された後、パスワード有効期限の情報を調べ、
現在パスワードの変更が許されているか検査する。
もし許可されていない場合は、
passwd は変更を拒否して終了する。
次にユーザは、置き換えるパスワードを入力するよう促される。
入力されたパスワードは、充分複雑かどうか検査される。
一般的な指針としては、
パスワードは以下の集合それぞれから一つ以上の文字を使った
6 から 8 文字のものにすべきである。
.5i
小文字のアルファベット
.5i
大文字のアルファベット
.5i
0 から 9 までの数字
.5i
句読点
システムのデフォルトの消去文字や
kill 文字を含めないように注意すること。
passwd はあまりに単純なパスワードへの変更は拒否する。
入力したパスワードが受け入れられた場合、
passwd はもう一度入力を促し、
二番目に入力したものを最初のものと比較する。
パスワード変更が受け入れられるためには、
この両者が合致しなくてはならない。
グループパスワード
-g オプションを用いた場合、
指定したグループのパスワードが変更される。
このオプションはスーパーユーザか指定したグループの管理者しか使えない。
現在のグループパスワードは尋ねてこない。
-g オプションを -r オプションとともに用いると、
指定したグループのパスワードが削除される。
こうすると全てのメンバーがこのグループにアクセスできるようになる。
-R オプションを -g オプションとともに用いると、
全てのユーザに対して指定したグループへのアクセスを禁止できる。
パスワードの有効期限情報
スーパーユーザは、パスワードの有効期限に関する情報を変更できる。
これには -x, -n, -w, -i などのオプションを用いる。
-x オプションはパスワードが有効な最長日数を設定するのに用いられる。
max 日が過ぎるとパスワードを変更するように求められる。
-n オプションはパスワードが変更可能となるまでの
最短日数を設定するのに用いられる。
ユーザは min 日が経過した後でないとパスワードを変更できない。
-w オプションはパスワードの使用期限が来る前に
何日間警告を与えるかを設定するために用いられる。
期限切れの warn 日前から注意が開始され、
パスワードが期限切れになるまであと何日残っているかが示される。
-i オプションは、
パスワードの期限が切れてから何日間経過したら、
そのアカウントを使用不能の状態にするかを設定するのに用いる。
inact 日間アカウントをパスワード期限切れ状態のままにすると、
ユーザはそのアカウントに入れなくなる。
あるアカウントのパスワードを直ちに期限切れにしたい場合は、
-e オプションを用いればよい。
するとそのユーザは次にログインする際にパスワードを変更するよう強制される。
-d オプションを使って、ユーザのパスワードを削除することもできる
(パスワードが空になる)。このオプションは注意して使うこと。
これを使うと、そのアカウントはログインにパスワードを全く必要としなくなり、
システムが侵入者に対してオープンになってしまう。
アカウントの保守
-l フラグと -u フラグを用いると、
ユーザアカウントをロックしたり、そのロックを外したりできる。
-l オプションを用いると、
パスワードフィールドの値は暗号化された如何なる値ともマッチしなくなり、
アカウントは使用不能になる。
-u オプションを用いると、パスワードは以前の値に戻り、
アカウントが再び使用可能となる。
-S オプションを用いるとアカウントの状態が表示される。
アカウントの状態の情報は 6 つの部分からなる。
最初の部分は、アカウントにロックがかけられている (L)、
パスワードが存在しない (NP)、
もしくは使用可能なパスワードがある (P) といった情報を示す。
2 番目は最後にパスワードが変更された日付を示す。
残りの4つの部分はそれぞれパスワードの最短期限、最長期限、警告期間、
使用不能期間である。
ユーザパスワードに対するヒント
パスワードの安全性は暗号化アルゴリズムの強力さとキー空間の大きさに依存する。
\s-2UNIX\s+2 のシステム暗号化の方法は
NBS DES アルゴリズムに基づいており、非常に安全性が高い。
キー空間の大きさは選ばれたパスワードのランダムさに依存する。
パスワードの安全性が脅かされるのは、
大抵の場合パスワードの選択や扱いが不注意なためである。
従ってパスワードとしては、
辞書に載っているものや書き留めなければならないものは
避けるべきである。
また、固有名詞・免許証番号・誕生日・自宅の住所などを
パスワードにするのも避けるべきである。
これらはいずれもシステムセキュリティを破る際に、
推量情報に用いられる可能性があるからである。
パスワードは紙片に書き留めておく必要が無いよう、
簡単に思い出せるものにしなくてはならない。
これは例えば、
短い二つの単語をくっつけて、
その間に特殊記号や数字を挟み込むことによって作れる。
例えば Pass%word など。
他の作り方としては、文学作品などから思い出しやすい句を選び出し、
それぞれの単語から最初もしくは最後の文字を抜き出す方法がある。
この方法の例としては、
.5i
Ask not for whom the bell tolls.
という句から
.5i
An4wtbt.
というパスワードが作り出せる。
クラッカーの辞書には、
こんな語句は載っていなさそうだ、とみなしても良いだろう。
しかし、ここに示した方法だけに頼るのではなく、
自分独自のパスワードの作り方を考え出すべきである。
グループのパスワードに関する注意
グループパスワードは、一人以上の人間が知ることが許されるものであるから、
本質的にセキュリティ上の問題を抱えている。
しかしグループを使えば別々の人間が共同で作業する事ができるので、
これは便利なツールではある。