パスワードの有効期限を取得する


16

これを序文にしましょう:ルートアクセスを使用できません

パスワードの有効期限が近づいてから経過したことを知らなかったため、最近アカウントからロックアウトされました。起動スクリプトにチェックを追加して、時刻をチェックして表示するので、いつ近づくのかがわかります。

ユーザーパスワードの有効期限が切れるときにタイムスタンプを取得するコマンドまたは方法はありますか?

回答:


16

chageユーティリティからその情報を取得できるはずです。リストモードで実行するのにrootは必要ありません。

注:これはほとんどの場合、ローカルpasswdベースの認証でのみ機能します。passwd/ shadowファイルにログイン情報を入れない認証モードで動作させることができるかどうかはわかりません。これらのソリューションは独自のツールを提供していると思いますが、それらについては知りません。

$ chage -l test                       
Last password change                                : Apr 17, 2012
Password expires                                    : Apr 27, 2012
Password inactive                                   : never
Account expires                                     : May 20, 2012
Minimum number of days between password change      : 0
Maximum number of days between password change      : 10
Number of days of warning before password expires   : 7

ログイン時にパスワードの有効期限を表示するために、簡単なawkを使用しました。


奇妙なことに、「不明なユーザー」というエラーが表示されます。私whoami | xargs chage -lは明らかに明らかに間違ったことをしていないことを確認しようとしました。
steveo225

whoamiは何を返し、何をしgrep $(whoami) /etc/passwordますか?
マット

これは、ユーザーがローカル(LDAPまたは他のデータベースではない)の場合にのみ機能するようです。
パトリック

@Patrick:あなたはおそらく正しいでしょう、そして私はそのタイプの認証セットアップを持つマシンにアクセスできません。したがって、追加情報を提供することはできません。
マット

whoamiは適切なユーザー名を返しますが、システムはLDAPを使用していると思います。
-steveo225

2

ldapでは、次のようなことを行います。

ldapsearch -x -Z  uid=$1 pwdChangedTime | \
          grep -vE '^#|^$' | grep pwdChangedTime | awk '{print $2}'

0

chageあなたから複数の変更を行うことができ、次のようにログインの詳細を知ることができます...

Usage: chage [options] [LOGIN]

Options:
  -d, --lastday LAST_DAY        set date of last password change to LAST_DAY
  -E, --expiredate EXPIRE_DATE  set account expiration date to EXPIRE_DATE
  -h, --help                    display this help message and exit
  -I, --inactive INACTIVE       set password inactive after expiration
                                to INACTIVE
  -l, --list                    show account aging information
  -m, --mindays MIN_DAYS        set minimum number of days before password
                                change to MIN_DAYS
  -M, --maxdays MAX_DAYS        set maximim number of days before password
                                change to MAX_DAYS
  -W, --warndays WARN_DAYS      set expiration warning days to WARN_DAYS

そして、あなたがルートアクセスを持っているなら、編集するだけでパスワードの有効期限を変更できます。

vim /etc/login.defs

以下のvlauesをセットアップしてください...

PASS_MAX_DAYS 30
PASS_MIN_DAYS 1
PASS_WARN_AGE 7

あなたを助けるかもしれません

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.