2006.05.12

Linux で Windows と同じパスワードポリシー

いろいろあって、Linuxのパスワードのポリシーを Windows のポリシー設定でできるものに
近づけなきゃいけないのですが、あまりにも説明資料が少ないもんで、苦労しとります。
 
 
(その1)
パスワードの変更履歴を取っておいて、過去数回分の使い回しを不可にするには、

/etc/pam.d/common-password

  password required pam_unix.so use_authtok nullok md5 remember=3

とかにすれば良いようです。
ただし、

  touch /etc/security/opasswd
  chomod 600 /etc/security/opasswd

てな感じで 事前にファイルを作っておかねばなりません。
opasswd ファイルを作っていないと、ユーザーがパスワード変更時にコケます。
 
 
 
(その2)
パスワードの有効期限や、事前警告の日数は
/etc/login.defs

  PASS_MAX_DAYS 30
  PASS_MIN_DAYS 0
  PASS_WARN_AGE 7

で定義されてます。有効期限は初期値 99999日(約274年)になっているので、
Linuxでは厳密な意味での無期限というのはないのかもしれません。

なお、/etc/login.defs に書いてある値が有効なのは
これから作成するユーザーアカウントに関してのみです。
既に作ってしまったユーザーを操作するには

  chage アカウント名

というコマンドで一人ずつ参照/設定しなきゃならんみたいです。
 
 
 
(その3)
パスワードに使う文字は、大文字/小文字/数字/その他 のうち最低どれを組み合わせ
なきゃいけないのかを pam_cracklib を使って定義できます。

/etc/pam.d/common-password

  password required pam_cracklib.so retry=3 minlen=12 difok=4 lcredit=-1 ucredit=2 dcredit=0 ocredit=-2

上記の例だと、
・小文字は最低1文字以上
・記号は最低2文字以上
・数字/大文字はあってもなくても可
・大文字は最大2文字まで?(←これが効いていない気がしますがなんか間違ってるんでしょうか?)

ただ、最低限何文字必要は直ぐにわからないものみたいです。minlenでは12を指定していますが、
使用する文字の組み合わせによって最低文字数は 8~10? くらいに変化するみたいです。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

photo
ichikawa