useradd
是一个用于在 Linux 系统中创建用户账号的命令。它的基本语法和常见选项如下:
基本语法
useradd [OPTION] USERNAME
常见选项详解
-
-d, --home HOME_DIR
指定用户的主目录。如果该目录不存在,
useradd
不会自动创建它。例子:
useradd -d /home/newuser newuser
-
-m, --create-home
创建用户的主目录。如果使用了
-d
指定了目录,-m
将会创建指定的目录。例子:
useradd -m newuser
-
-s, --shell SHELL
指定用户的登录 shell,默认为
/bin/bash
。例子:
useradd -s /bin/zsh newuser
-
-g, --gid GROUP
指定用户的初始组。如果该组不存在,则会返回错误。
例子:
useradd -g users newuser
-
-G, --groups GROUP1[,GROUP2,...]
指定用户所属的附加组,可以同时指定多个组。
例子:
useradd -G wheel,admin newuser
-
-c, --comment COMMENT
指定用户的注释信息,通常用于用户全名或其他信息。
例子:
useradd -c "New User" newuser
-
-p, --password PASSWORD
指定用户的密码。在此选项中,通常建议使用加密后的密码字符串。
例子(注意:通常需要先使用
openssl
或mkpasswd
进行密码加密):useradd -p $(openssl passwd -1 yourpassword) newuser
-
-e, --expiredate EXPIRE_DATE
指定用户账户的到期日期,格式为 YYYY-MM-DD。
例子:
useradd -e 2023-12-31 newuser
-
-f, --inactive INACTIVE
设置账户的非活跃天数,即密码过期后的几天内如果用户无行为则账户将被禁用。
例子:
useradd -f 30 newuser
-
-u, --uid UID
指定用户的 UID(用户ID),如果该 UID 已存在则会返回错误。
例子:
useradd -u 2001 newuser
-
-r, --system
创建一个系统用户,系统用户的 UID 通常小于 1000。
例子:
useradd -r newuser
-
--no-user-group
不为用户创建与其同名的组。
例子:
useradd --no-user-group newuser
-
-k, --skel SKEL_DIR
指定用户的骨架目录(默认是
/etc/skel
),包含在用户主目录创建时的新用户所需的文件。例子:
useradd -k /etc/skel newuser
示例
-
创建一个普通用户并自动创建主目录:
useradd -m newuser
-
创建一个指定主目录和 shell 的用户:
useradd -m -d /home/newuser -s /bin/zsh newuser
-
创建一个带注释的用户:
useradd -c "New User" -m newuser
-
创建一个包含多个附加组的用户:
useradd -m -G users,admins newuser
-
创建一个系统用户:
useradd -r -m systemuser
注意事项
- 创建用户后,通常需要使用
passwd
命令为用户设置密码。 useradd
命令需要 root 权限,因此需要使用sudo
或切换到 root 用户。- 为确保账户设置正确,建议在用户创建后使用
id username
或getent passwd username
命令来验证。
总结
useradd
是在 Linux 系统中创建用户账号的关键命令,配合不同的选项,可以灵活地配置用户的属性和功能。掌握该命令有助于管理员有效地管理系统用户。