25.5. 命令列設定

假如您較喜歡用命令列工具,或者是沒有安裝 X 視窗系統,請詳閱這個章節以取得設定使用者與群組的相關資訊。

25.5.1. 新增一個使用者

如要新增一個使用者到系統中:

  1. 請執行 useradd 指令來建立一個鎖定的使用者帳號:

    useradd <username>
  2. 請執行 passwd 指令來解除這個帳號的鎖定,並且指定一個密碼與設定密碼的失效指引:

    passwd <username>

useradd 指令的命令列選項位於 表格 25-1

選項說明
-c comment對使用者的備註
-d home-dir欲使用的家目錄,而不是預設的 /home/username
-e date帳號失效的日期(以 YYYY-MM-DD 格式表示)
-f days在密碼過期後與帳號失效前的天數。(假如在此指定 0,在密碼過期後帳號將立即失效。 假如指定了 -1,在密碼過期後,該帳號將不會失效。)
-g group-name當作使用者預設群組的群組名稱或群組 ID(在此指定之前,這個群組必須存在。)
-G group-list使用者所隸屬之額外群組名稱(非預設的)或群組 ID 的清單,請以逗號分隔開。(在此指定之前,這個群組必須存在。)
-m建立家目錄(假如不存在的話)
-M不建立家目錄
-n不建立使用者的私有群組
-r建立一個 UID 500 以下的系統帳號,並且不建立一個家目錄
-p password使用 crypt 為密碼加密
-s使用者的登入 shell,預設為 /bin/bash
-u uid使用者的使用者 ID,必須是獨特的且大於 499

表格 25-1. useradd 命令列選項

25.5.2. 新增一個群組

如要新增一個群組到系統中,請使用 groupadd 指令:

groupadd <group-name>

groupadd 的命令列選項位於 表格 25-2

選項說明
-g gid指定給群組的群組 ID,必須是獨特的且大於 499。
-r建立一個 GID 小於 500 的系統群組
-f假如指定的群組已經存在,隨即離開並出現一個錯誤。 (群組資訊並不改變。) 假如一併指定 -g-f,不過該群組已經存在,將會忽略 -g 選項。

表格 25-2. groupadd 的命令列選項

25.5.3. 密碼有效期限設定

為了安全上的考量,最好設定使用者要定期變更他們的密碼,這可以在 使用者管理員 程式中的 『密碼資訊』 標簽頁做此設定。

如要在 shell 提示符號下設定使用者的密碼失效日期,請使用 chage 指令,再加上 表格 25-3 中的選項,後面再接使用者名稱。

重要重要
 

必須要啟用 Shadow 密碼才能使用 chage 指令。

選項說明
-m days指定使用者必須要更改密碼的最短天數,假如這個數值是 0 的話,密碼絕不會過期。
-M days指定密碼最長的有效天數,當這個選項所指定的天數加上 -d 選項所指定的天數少於目前的天數(從1970年1月1日開始計算),使用者必須馬上更改密碼,才能繼續使用這個帳號。
-d days指定上次更改密碼的天數(從1970年1月1日開始計算)。
-I days指定在密碼過期後與帳號被鎖定前的天數,假如指定數值為 0 的話,在密碼過期後,帳號將不會被鎖定。
-E date指定要鎖定帳號的日期(以 YYYY-MM-DD 格式),如不指定日期,也可使用從1970年1月1日起計算的天數。
-W days指定密碼過期前要警告使用者的天數。

表格 25-3. change 的命令列選項

提示建議
 

假如 chage 指令後面直接接一個使用者名稱(不含任何選項),輸出將會顯示目前的密碼使用期限數值,並讓您來更改它們。

假如系統管理員要使用者在第一次登入時設定一個密碼,可以設定使用者的密碼立即過期,強迫使用者在第一次登入時,必須立即更改。

如要在主控台設定以強迫使用者在第一次登入時設定一個自己的密碼,請遵照以下步驟。 請注意,這個過程並不適用於使用 SSH 通訊協定登入的使用者。

  1. 鎖定使用者的密碼 — 假如這個使用者並不存在,請使用 useradd 指令來建立這個使用者帳號,不過先不要設定他的密碼,以使得這個帳號保持被鎖定的狀態。

    假如密碼已經被啟用,請使用下列指令鎖定它:

    usermod -L username
  2. 強迫密碼立即失效 — 請輸入以下指令:

    chage -d 0 username

    這個指令設定上次更改密碼的日期為新紀元(1970年1月1日),這個數值會強迫密碼立即失效,不管是否有任何的密碼期限設定。

  3. 解除帳號的鎖定 — 這裡有兩種通用的方法,管理員可以指定一個初始的密碼或指定一個空的密碼。

    警告警告
     

    請勿使用 passwd 指令來設定密碼,因為這將會停用剛剛設定的密碼立即失效。

    如要指定一個初始的密碼,請使用下列的步驟:

    • 使用 python 指令來啟動命令列的 Python 解譯器,會顯示出下列資訊:

      Python 2.2.2 (#1, Dec 10 2002, 09:57:09)
      [GCC 3.2.1 20021207 (Red Hat Linux 8.0 3.2.1-2)] on linux2
      Type "help", "copyright", "credits" or "license" for more information.
      >>>
    • 在提示符號下,輸入以下資訊(以要加密的密碼取代 password; 以兩個大寫或小寫的字元、數字、點(.)字元或反斜線(/)的組合取代 salt(如 ab12):

      import crypt; print crypt.crypt("password","salt")

      這個指令的輸出會是類似 12CsGd8FRcMSM 的加密密碼。

    • 按下 [Ctrl]-[D] 以離開 Python 解譯器。

    • 剪貼整個加密的密碼輸出到以下的指令中(不含開頭與結尾的空白):

      usermod -p "encrypted-password" username

    除了指定一個初始的密碼外,也可以使用下列指令來指定一個空的密碼:

    usermod -p "" username

    注意警示
     

    雖然使用一個空的密碼對使用者與管理員都很方便,這樣做有一些風險存在,因為第三者也許會先登入,並存取系統。 為了要減低這個威脅,建議您在系統管理員確定使用者已經準備好登入後,才解除鎖定使用者的帳號。

    在這兩個例子中,使用者第一次登入後,將會被提示要求輸入一個新的密碼。