web-dev-qa-db-ja.com

新規ユーザーが最初のログイン時にパスワードを変更するように強制するようにLinuxを構成する方法

RHEL 6.6でユーザーのパスワードポリシーを設定しようとしています。新しく作成したユーザーに、最初のログイン時に初期パスワードを変更するようシステムに要求します。

/ etc/default/useraddでEXPIRE変数を0に、INACTIVEを-1に設定しようとしましたが、作成後に新しいユーザーアカウントの有効期限が切れることに注意してください。これらの変数を使用したユーザー作成後のchageコマンドの出力は次のとおりです。

 # chage -l foo
 Last password change                                : Feb 22, 2015
 Password expires                                    : May 23, 2015
 Password inactive                                   : never
 Account expires                                     : Feb 22, 2015
 Minimum number of days between password change      : 1
 Maximum number of days between password change      : 90
 Number of days of warning before password expires   : 7

Fooユーザーでログインしようとすると、「アカウントの有効期限が切れています。システム管理者に連絡してください」というメッセージが表示されます。

しかし、[ユーザープロパティ]ウィンドウを開いて[パスワード情報]タブを選択し、[次回ログイン時にパスワードの変更を強制する]をオンにすると、期待どおりの結果になります。新しいユーザーはパスワードの変更を求められます。この場合のchageコマンドの出力は次のようになります。

 # chage -l foo2
 Last password change                                : password must be changed
 Password expires                                    : password must be changed
 Password inactive                                   : password must be changed
 Account expires                                     : never
 Minimum number of days between password change      : 1
 Maximum number of days between password change      : 90
 Number of days of warning before password expires   : 7

Foo2ユーザーでログインすると、システムからパスワードの変更を求められます。

では、2番目のケースのように、作成時にユーザーアカウントパラメーターを設定するようにシステムを構成する方法はありますか?

更新

 cat /etc/default/useradd
 # useradd defaults file
 GROUP=100
 HOME=/home
 INACTIVE=-1
 EXPIRE=0
 Shell=/bin/bash
 SKEL=/etc/skel
 CREATE_MAIL_SPOOL=yes

INACTIVEとコメントしたり、正の値に設定したりしても、アカウントは期限切れになりますが、パスワードは期限切れになりません。

また、マシン上でPAMを構成しました。

Upd 2

RHEL 6.2があり、PAMが設定されていないマシンでこれを確認しました。効果は同じです。

11
Mike_Lychkov

これをスクリプトに追加してみませんか?

passwd -e username

最初のログインだけが目的の場合、これは機能します。 -eアカウントのパスワードはすぐに期限切れになるので、次回のログインでユーザーはパスワードを更新する必要がありますか? (見る man passwd

1
tniles