/etc/shadow の読み方初めて知りましたw
/etc/shadow
って?
各ユーザのパスワードを暗号化したファイル。
一般のユーザからはリードできず、スーパーユーザでないと閲覧ができません。
# : がデリミタ
user:$6...:16180:0:99999:7:::
読み方は以下の通りです。
フィールド | 意味 |
---|---|
1 | ユーザ名(ログイン名) |
2 | 暗号化されたパスワード |
3 | パスワードの最終変更日 |
4 | 変更可能最短期間(この期間を越えないと変更不可) |
5 | 未変更可能最長期間(この期間を越えたら変更必要) |
6 | 警告日(上記期日の何日前に警告するか) |
7 | インアクティブ(ログインしないと無効になる日数) |
8 | 失効日(アカウント失効までの日数) |
9 | フラグ(未使用) |
2. 暗号化されたパスワード
この文字列の先頭に!
が付いているか、全体が!
になっているとパスワードがロックされた状態で、そのユーザでログインができない状態を示しています。
実際にユーザのパスワードをロックするためのコマンドは以下の通りです。
# passwd -l user1
ロックを解除するためには、オプションを変えてください。
# passwd -u user1
/etc/shadow
からも!
が削除されます。
3. パスワードの最終更新日
文字通り、該当ユーザのパスワードの最終更新日を指します。
この数字、1970年からの通しの日付が入るので、そのままだと読み取れません。
西暦に直すためには、以下のようにします。
$ echo "16290 * 86400" | bc | xargs -i% date --date=@%
=> Sun Apr 20 09:00:00 JST 2014