Linux 的 useradd 實用例子

Linux 下的 “useradd” 指令用作建立新帳號, 當執行 useradd 指令時, 它會完成以下工作:

— 編輯 /etc/passwd, /etc/shadow, /etc/group 及 /etc/gshadow 檔案, 加入新帳號的內容.
— 為新帳號建立家目錄.
— 設定新帳號家目錄的權限及 owner.

執行 useradd 建立帳號時, 如果沒有指定參數, 會用系統的預設值建立帳號, 以下是建立帳號時改變預設值的例子。

建立新帳號

要使用預設值建立帳號, 語法十分簡單, 只要在 useradd 加上新帳號的 username 即可:

# useradd new_user

建立新帳號後, 需要用 passwd 為新帳號設定密碼:

# passwd new_user
Changing password for user new_user.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

自訂新帳號家目錄位置

如果沒有額外設定, useradd 會建立新帳號的家目錄在 /home 下面, 再加上用戶名稱, 例如 “/home/new_user”, 要修改家目錄位置, 需要加上 “-d” 參數, 再指定目錄位置, 例如設定家目錄在 /var/www/new_user:

# useradd -d /var/www/new_user new_user

自訂新帳號 UID

每個帳號除了 username 獨一無二外, 還有 UID 是不會重覆的, 預設系統會在 500 或 1000 以上自加設定 UID, 要自訂 UID, 可以用 “-u” 參數, 例如設定 UID 為 800:

# useradd -u 800 new_user

自訂新帳號 GID

除了UID, 還有 GID 是不會重覆的, 要自訂 GID, 可以用 “-g” 參數, 例如設定 UID 為 800:

# useradd -g 800 new_user

加入帳號到多個群組

-G 參數可以將新帳號加多更多群組, 例如將新帳號加入 webadmin, developers 群組, 語法是這樣:

# useradd -G webadmin,developers new_user

新帳號略過家目錄設定

如果想設定新帳號沒有家目錄, 可以加八 -M 參數:

# useradd -M new_user

自訂新帳號有效日期

useradd 預設建立的帳號永久有效, 如果要設定帳號的有效使用期限, 可以用這個語法:

# useradd -e 2017-01-27 new_user

強制帳號定時修改密碼

8. Create a User with Password Expiry Date

-f 參數以定義帳號密碼的有效時限, 以下會設定 30, 即使用者必須最少每 30 天修改一次密碼:

# useradd -f 30 new_user

自訂帳號 Login Shell

有時需要設定帳號 Login Shell, 最常見的情況是不讓帳號登入 SSH/Telnet, 即設定成 /sbin/nologin:

# useradd -s /sbin/nologin new_user



Leave a Reply