いろいろあって、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
chomod 600 /etc/security/opasswd
てな感じで 事前にファイルを作っておかねばなりません。
opasswd ファイルを作っていないと、ユーザーがパスワード変更時にコケます。
(その2)
パスワードの有効期限や、事前警告の日数は
/etc/login.defs
PASS_MAX_DAYS 30
PASS_MIN_DAYS 0
PASS_WARN_AGE 7
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? くらいに変化するみたいです。