ファイルには/etc/shadow
、1970 年 1 月 1 日からの日数として表される日付フィールドがいくつかあります。ユーザーのリストと、パスワードの最終変更日と有効期限を取得する簡単な方法はありますか?
参照:男の影(5)
答え1
chage -l <username>
出力例:
Last password change : Dec 17, 2015
Password expires : Mar 16, 2016
Password inactive : never
Account expires : never
Minimum number of days between password change : 7
Maximum number of days between password change : 90
Number of days of warning before password expires : 14
答え2
指定されたアカウントのパスワードステータスを報告するpasswd -S username
for user in $(cut -d: -f1 /etc/passwd); do sudo passwd -S $user; done
答え3
for n in $(sudo cat /etc/shadow | awk '{FS=":";print $3}'); do date -d "01/01/1970 +${n}days" +%F; done
猫の無駄遣い賞を避けるために:
for n in $(sudo awk '{FS=":";print $3}' /etc/shadow); do date -d "01/01/1970 +${n}days" +%F; done
答え4
これにより、各ユーザーのパスワード更新情報が出力されます。
/etc/passwd ファイルを読み取り >> 各ユーザーを解析 >> 各ユーザーに対して chage -l コマンドを実行します
for user in $(cut -d: -f1 /etc/passwd); do echo -e "\n $user \n" && chage -l $user; done