/etc/shadow

  1. Linux 帳號表在 /etc/passwd,帳號密碼雜湊後存在 /etc/shadow,每行密碼有九個欄位,以冒號「:」分隔如下:
    [root@kvm8 ~]# head /etc/shadow
    root:$y$j9T$ivvQGLYWsGJFi/7Y.TBtNKE9$5Ha7kycsD::0:99999:7:::
    bin:*:20244:0:99999:7:::
    daemon:*:20244:0:99999:7:::
    adm:*:20244:0:99999:7:::
    lp:*:20244:0:99999:7:::
    sync:*:20244:0:99999:7:::
    shutdown:*:20244:0:99999:7:::
    halt:*:20244:0:99999:7:::
    mail:*:20244:0:99999:7:::
    operator:*:20244:0:99999:7:::
    
  2. 密碼檔九個欄位:
    1. 帳號名稱,要與 /etc/passwd 相同才可。
    2. 密碼:真正的密碼但已加密,密碼欄第一個字為「*」或者是「!」,表示這個帳號不會被用來登入。
    3. 上次更動密碼的日期,計算 Linux 日期的時間是以 1970 年 1 月 1 日為 0,而 1971 年 1 月 1 日則為 365。數字查看方法:
      1. passwd 指令:-S 選項輸出帳號 bin 狀態,可以看到更動日期。
        [root@kvm8 ~]# passwd -s bin
        bin L 2025-06-05 0 99999 7 -1
        
      2. date 指令:以 ISO 8601 格式輸出 1970-01-01 加 20244 天的日期。
        [root@kvm8 ~]# date -I -d '1970-01-01 + 20244 days'
        2025-06-05
        
    4. 上次更動密碼的日期,計算 Linux 日期的時間是以 1970 年 1 月 1 日為 0,而 1971 年 1 月 1 日則為 365。
    5. 密碼需要重新變更的天數,99999 表示密碼不需要重新設定。
    6. 密碼需要變更前的警告:上例7 表示 7 天內系統會警告帳號。
    7. 密碼過期的恕限時間:當密碼失效後,n 天內還可以登入。
    8. 帳號失效日期:計算方式同欄位 3。
    9. 保留:看以後有無新功能加入。