Linux 的帳號

  1. 帳號與 ID
    1. 帳號 ID:使用者的 ID(User ID, UID) 與群組的 ID(Group ID, GID)
    2. Linux 主機只認識 UID 及 GID,不認識我們輸入的帳號名稱。
    3. /etc/passwd 及 /etc/group 分別記錄 UID 及 GID 的對應。
  2. 如何登入 Linux 主機?(系統必須讀取 /etc/passwd 與 /etc/shadow)
    1. 先找尋 /etc/passwd 裡面是否有這個帳號?
      1. 如果沒有則跳出,
      2. 如果有則將該帳號對應的 UID 與 GID 讀出,該帳號的家目錄與 shell 設定也一併讀出;
    2. 核對密碼表:核對輸入的密碼與 /etc/shadow 對應的帳號與 UID 之密碼是否相符?
    3. 如果一切正確,就進入 Shell 控管的階段。
  3. /etc/passwd 每一行以『:』分隔,共分為七項
    [root@dywOffice dywang]# cat /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/bin/sh
    daemon:x:2:2:daemon:/sbin:/bin/sh
    adm:x:3:4:adm:/var/adm:/bin/sh
    test:x:500:100:test:/home/test:/bin/bash
    
    1. 帳號名稱 (root)
    2. 密碼 (x):不顯示
    3. UID(0)
      ID 範圍 該 ID 使用者特性
      0 系統管理員,只要將 UID 改為 0 即可成為系統管理員。
      1 ~ 499 保留給系統使用的 ID,除了 0 之外,其他的 UID 並無不同,
        預設 1 ~ 99 保留給系統預設的帳號,100 ~ 499 保留給一些服務使用。
      500 ~ 65535 一般使用者的 UID 從 500 編起。
    4. GID:與 /etc/group 有關。
    5. 備註說明 (root)
    6. 家目錄 (/root)
    7. Shell(/bin/bash)
  4. 每個使用者都要使用到 /etc/passwd,因此 /etc/passwd 的屬性必須為 -rw-r–r–。為安全起見,密碼移到 /etc/shadow。
  5. /etc/shadow 每一行以『:』分隔,共分為九項
    [root@dywOffice dywang]# cat /etc/shadow
    root:$1$fgY7Mcld$uKagcyaEt2UgPr8NFFSQP1:13341:0:99999:7:::
    bin:*:13341:0:99999:7:::
    daemon:*:13341:0:99999:7:::
    adm:*:13341:0:99999:7:::
    test:$1$UUKMfBBI$es3oSN8I6kWx29qsc1hZI/:13341:0:99999:7:::
    
    1. 帳號名稱,要與 /etc/passwd 相同才可。
    2. 密碼:真正的密碼但已加密,密碼欄第一個字為「*」或者是「!」,表示這個帳號不會被用來登入。
    3. 上次更動密碼的日期,計算 Linux 日期的時間是以 1970 年 1 月 1 日為 0,而 1971 年 1 月 1 日則為 365。
    4. 密碼不可被更動的天數,0 表示密碼隨時可以更動,如果設定為 20,則 20 天之內皆無法改變密碼。
    5. 密碼需要重新變更的天數,如果設定為 99999 表示密碼不需要重新輸入。
    6. 密碼需要變更前的警告期限:如上例則 7 天之內系統會警告用戶。
    7. 密碼過期的恕限時間:當密碼失效後,n 天內還可以登入。
    8. 帳號失效日期:計算方式同欄位 3。
    9. 保留:看以後有無新功能加入。
  6. 例題:說明下列帳號密碼相關意義。
    csie:$1$UUKMfBBI$es3oSN8I6kWx29qsc1hZI/:13341:0:99999:7:3:13361:
    

練習題

  1. 何謂 UID?其與帳號名稱之對應記錄在那個檔案?
    Sol. 使用者的 ID (User ID, UID),記錄在 /etc/passwd
  2. 何謂 GID?其與帳號名稱之對應記錄在那個檔案?
    Sol. 群組的 ID (Group ID, GID),記錄在 /etc/group
  3. Linux 系統管理員的 UID 為何?
    Sol. 0
  4. Linux 使用 ID 來作為身份的區別,稱為 UID,請問 root 的 UID 為?
    Sol. 0
  5. 系統的保留的 UID 有多少?
    Sol. 一般來說至少有 500 個,其中 1-99 為系統預設的帳號; 100-499 為服務所使用;
  6. 與登入帳號有關的檔案在哪裡?
    Sol. /etc/passwd, /etc/group, /etc/shadow 等等
  7. Linux 系統,一般使用者的 UID 從幾號編起?
    Sol. 500
  8. 在 /etc/passwd 中有一行「csie:x:507:100:csietest:/home/csie:/bin/bash」,請說明其意義。
    Sol. 系統中有一帳號,其名稱 csie,密碼不顯示,UID 507,初始群組 GID 100,備註欄 csietest,家目錄 /home/csie ,使用的 shell 為 /bin/bash。
  9. 在 /etc/shadow 中有一行「caie:$1$UUKMfBBI$es3oSN8I6kWx29qsc1hZI/:14460:0:99999:7:3:14491:」,則帳號建立日期為?
    Sol. 2009/08/04
  10. 在 /etc/shadow 中有一行「caie:$1$UUKMfBBI$es3oSN8I6kWx29qsc1hZI/:14460:0:99999:7:3:14491:」,則帳號失效日期為?
    Sol. 帳號失效日期為 2009/09/04
  11. 在 /etc/shadow 中有一行「caie:!!$1$UUKMfBBI$es3oSN8I6kWx29qsc1hZI/:14460:0:99999:7:3:14491:」,則帳號可不可使用?
    Sol. 不可以
  12. 在 /etc/shadow 中有一行「caie:$1$UUKMfBBI$es3oSN8I6kWx29qsc1hZI/:14460:0:99999:7:3:14491:」,則帳號可不可使用?
    Sol. 可以
  13. 在 /etc/shadow 中有一行「caie:$1$UUKMfBBI$es3oSN8I6kWx29qsc1hZI/:14460:0:99999:7:3:14491:」,則密碼幾天內不可更動?
    Sol. 密碼隨時可更動
  14. 在 /etc/shadow 中有一行「caie:$1$UUKMfBBI$es3oSN8I6kWx29qsc1hZI/:14460:0:99999:7:3:14491:」,則幾天後密碼需重新變更才可登入?
    Sol. 密碼不需重新變更
  15. 在 /etc/shadow 中有一行「caie:$1$UUKMfBBI$es3oSN8I6kWx29qsc1hZI/:14460:0:99999:7:3:14491:」,則當密碼失效後,幾天內還可以登入?
    Sol. 3 天
  16. 在 /etc/shadow 中有一行「caie:$1$UUKMfBBI$es3oSN8I6kWx29qsc1hZI/:14460:0:99999:7:3:14491:」,則密碼需要變更期限前 幾天之內系統會警告用戶?
    Sol. 7 天
  17. Linux 系統,使用者的密碼存在那個檔案?
    Sol. /etc/shadow
  18. 在 /etc/shadow 中有一行
    「csie:$1$UUKMfBBI$es3oSN8I6kWx29qsc1hZI/:13179:0:30:5:3:13544:」,請說明其意義。
    Sol. 帳號名稱 csie,真正的密碼但已加密,上次更動密碼的日期為 2006/01/31,密碼隨時可以更動, 密碼 30 天後需重新變更,密碼需要變更期限前 5 天之內系統會警告用戶,密碼過期失效後 3 天內還可以登入,帳號失效日期為 2007/01/31。
  19. 在 /etc/shadow 中有一行
    「csie:$1$UUKMfBBI$es3oSN8I6kWx29qsc1hZI/:13207:30:99999:6:2:13572:」,請說明其意義。
    Sol. 帳號名稱 csie,真正的密碼但已加密,上次更動密碼的日期為 2006/02/28,30 天內無法更動密碼,密碼不需重新變更,密碼需要變更期限前 6 天之內系統會警告用戶,密碼過期失效後 2 天內還可以登入,帳號失效日期為 2007/02/28。
  20. /etc/shadow 中第三個欄位為上次更動密碼的日期,其以數字代表,請問如何計算?
    Sol. 1970 年 1 月 1 日為 1 開始計算。
  21. /etc/shadow 中第四個欄位為密碼不可被更動的天數,若出現 0 表示幾天內不能更動?
    Sol. 密碼隨時可以更動。
  22. /etc/shadow 中第四個欄位為密碼不可被更動的天數,若出現 10 表示幾天內不能更動?
    Sol. 10 天。
  23. /etc/shadow 中第五個欄位為密碼需要重新變更的天數,若出現 99999 表示幾天內需要重新變更?
    Sol. 表示密碼不需要重新輸入。
  24. /etc/shadow 中第六個欄位為密碼需要變更期限前的警告期限,若出現 7 表示意義為何?
    Sol. 7 天之內系統會警告用戶。
  25. /etc/shadow 中第七個欄位為密碼過期的恕限時間,若出現 7 表示意義為何?
    Sol. 當密碼失效後,7 天內還可以登入。
  26. /etc/shadow 中第八個欄位為帳號失效日期,其以數字代表,請問如何計算?
    Sol. 1970 年 1 月 1 日為 1 開始計算。
  27. /etc/shadow 中第九個欄位作用為何?
    Sol. 保留:看以後有無新功能加入。

  DYWANG_HOME