useradd# 基本新增(預設建立家目錄 /home/user1,Shell /bin/bash)
useradd user1
# 指定家目錄
useradd -d /home/xf user1
# 禁止登入(設定 Shell 為 /bin/false 或 /sbin/nologin)
useradd -s /bin/false user1
# 指定主要群組(需先存在)
useradd -g users user1
# 指定附屬群組(可多個,逗號分隔)
useradd -G wheel,docker user1
# 組合範例:指定 UID、家目錄、Shell、群組、備註
useradd -u 2000 -d /home/project -s /bin/bash -g developers -G docker,sudo -c "Project User" projuser
新增後必須設定密碼才能登入:
passwd user1
userdeluserdel user1 # 僅刪除帳號,保留家目錄
userdel -r user1 # 連同家目錄與郵件佇列一併刪除
usermodusermod -d /newhome -m user1 # 修改家目錄並移動檔案
usermod -s /bin/zsh user1 # 變更 Shell
usermod -g newgroup user1 # 變更主要群組
usermod -G group1,group2 user1 # 變更附屬群組(覆蓋原有)
usermod -aG docker user1 # 追加附屬群組(保留原有)
usermod -l newname user1 # 修改登入名稱
usermod -L user1 # 鎖定帳號(密碼前加 !)
usermod -U user1 # 解鎖帳號
格式:username:password:uid:gid:comment:home:shell
密碼欄通常為 x(影子密碼),實際雜湊在 /etc/shadow。
groupaddgroupadd developers
groupadd -g 2000 projectteam # 指定 GID
groupdelgroupdel developers
編輯 /etc/group,格式:groupname:password:gid:user1,user2,user3
# 將 newuser 加入 softdevelop 群組
# 找到該行:softdevelop:x:506:user1,user2
# 改為:softdevelop:x:506:user1,user2,newuser
或使用指令:
gpasswd -a newuser softdevelop # 加入
gpasswd -d newuser softdevelop # 移除
system-config-users(需安裝)users-admin(GNOME 系統工具)Webmin、Cockpit每行 7 欄位:[用戶名]:[密碼]:[UID]:[GID]:[身份描述]:[主目錄]:[登錄 Shell]
UID/GID 安全注意事項:
imnotroot:x:0:0::/root:/bin/bash),均具 root 權限,極度危險。每行 4 欄位:[群組名]:[密碼欄]:[GID]:[成員列表]
x 或空白,群組密碼極少使用。-r 參數(系統帳號),不建立家目錄、UID 自動分配較小值。id username 快速查看 UID、GID、群組隸屬。/etc/passwd、/etc/shadow、/etc/group 異常帳號(UID 0、空密碼、長期未登入)。sudo 權限委派,避免共用 root 密碼。