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


11

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を設定しました。

アップデート2

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


を使用してみてくださいchage -d 0 {user-name}
Hastur

追加のコマンドやアクションではなく、useraddコマンド中に自動的にそれを行う方法はありますか?
Mike_Lychkov 2015

1
EXPIRE=0/etc/default/useradd仕事をする必要があります。私はあなたが試したのを読んだ。コメントのない行を追加できます/etc/default/useraddか?INACTIVE = -1を指定せずに別の値を指定した場合や、その行をコメント化した場合でもロックされますか?コマンドラインで作成した場合でもアカウントをロックするかどうかを指定できますか。また、別の質問がある場合は、回答が異なる場合は別のページに投稿してください。
Hastur 2015

1
を使用adduserすると、chageコマンドをに配置できます/usr/local/sbin/adduser.local。/ etc / shadowのageフィールドを直接0に設定することもできます。useradd他のコマンドと組み合わせて使用​​することを目的とした「低レベルユーティリティ」です。
mpez0

回答:


1

RHEL6について質問しているので、useradd(「shadow」パッケージの一部として提供されています)のソースコードを調べました。useradd.cには、new_spentという関数があり、新しいシャドウパスワードエントリを設定します。そこで、「作成時に期限切れのパスワード」の問題に次のように対処します。

if (0 == spent->sp_lstchg) {
/* Better disable aging than requiring a password change */
spent->sp_lstchg = -1;

Soooo ...ゼロを設定すると、-1になります。

プログラムの作成者はエージングを0に設定しないように特別にコーディングしているため、EXPIREの/ etc / default / useraddパラメータで0に設定しても問題ありません。(もし私がそのコードを実行していたら、ユーザーがコマンドでパスワードを設定してから期限切れを許可しているかどうかを確認しましたが、それは私ではありませんでした...)

また、スクリプトを/usr/local/sbin/adduser.localに配置して「chage」コマンドを実行することも上記で提案されています。これはDebian / Ubuntuシステムにとって良いアドバイスでした。useraddはperlスクリプトであり、実際にそのファイルが見つかった場合に実行しますが、RHELではuseraddコマンドはCバイナリです。

私があなたであり、RHEL6 useraddでその動作を実行することにした場合、シャドウパッケージのSRPMを取得し、上記の行をコメントアウトして、パッケージとロックアウェイでrpmbuildを実行します。勝ちました!


1

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

passwd -e username

あなたがしているすべてが最初のログインである場合、これは動作します。-e次回のログインユーザは自分のパスワードを更新することを余儀なくされ、すぐにアカウントのパスワードを期限切れになりましたか?(を参照man passwd


また、chage固有のソリューションを探している場合は、「-M /-maxdays」スイッチを「0」の値で試してみてください。私はchageにあまり詳しくありませんが、manページからこれは合理的に見えます。
tniles

-1

自動:

このファイルを更新します。

/etc/default/useradd

このファイルには、useraddコマンドでシステムに作成された新しいユーザーに適用されるすべての設定の詳細が含まれています。

このファイルでEXPIRE = 0の値を設定するだけで、その後、新しいユーザーが作成されるたびに、次回のログイン時にパスワードの変更を強制されます。

出典:GeekRide

さて、ターミナルでそのファイルを編集するのは大変でした。したがって、次のコマンドを使用して、ファイルのアクセス許可を777に変更しました。

chmod 777 /etc/default/useradd

そしてそれをGRUBで編集しました。

Linuxコマンドに感謝します。)

私のUbuntu 12.04.5 VMでチェックインしました。

マニュアル:

次の構文を使用して、Linuxでの次回ログイン時にユーザーにパスワードの変更を強制します。

# chage -d 0 {user-name}

この例では、トムに次のログオン時にパスワードを変更するように強制します。次のように入力します。

# chage -d 0 tom

-d 0:パスワードが最後に変更された1970年1月1日からの日数を設定します。日付はYYYY-MM-DDの形式で表すこともできます。これをゼロに設定すると、ユーザーは最初のログイン時にパスワードを強制的に変更することになります。

出典:nixCraft

純粋なコピーペースト。文字通り。;)
私のUbuntu 12.04.5 VMで確認しました。


上記のコメントを読んだ場合、OPはuseraddコマンドの実行中にこれを自動的に行います。
非常識な

他にはコメントしませんchmod -R 777 /が、非常に愚かです。
PulseJet 2018年

@PulseJetはい私は振り返ってみるとこの答えはかなり前のことだったのでそれを知らせてください
Varad Mahashabde

彼らは、少なくともする必要がありますので、@VaradMahashabdeはその後、私は、あなたの答えから、そのようなものを取り除くことをお勧め正気それらを読み込む次の人のために。
PulseJet 2018年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.