useradd是linux中创建用户的最基础命令,需用-m创建家目录、-s指定shell、passwd设置密码,否则用户无法登录;附加组需用usermod -ag添加,创建后须检查id、家目录权限及/etc/passwd配置。

Linux中添加用户最常用、最基础的命令就是useradd。它不带交互界面,是脚本友好型工具,但参数多、默认行为容易被忽略——用错可能创建出无法登录、家目录缺失、或权限异常的账户。
useradd 默认行为必须知道
直接运行 useradd username 不会自动创建家目录、不设置密码、不分配 shell,生成的用户处于“禁用”状态:
- 家目录(如
/home/username)默认不创建,需加-m参数 - 登录 shell 默认是
/bin/sh(部分系统为/bin/bash),可用-s /bin/bash显式指定 - 用户密码为空,无法登录,必须后续用
passwd username设置 - 主用户组(primary group)默认与用户名同名,且自动创建(除非用
-g指定已有组)
常用组合参数一次配齐
日常新建一个可立即登录的标准用户,推荐这样写:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
sudo useradd -m -s /bin/bash -c "张三" zhangsan
-
-m:强制创建家目录并复制 skeleton 文件(如/etc/skel/下的 .bashrc) -
-s /bin/bash:指定默认 shell,避免登录后进到受限环境 -
-c "张三":填写 GECOS 字段(全名/备注),显示在finger或lslog中 - 用户名
zhangsan必须唯一,不能含特殊字符或空格
关联用户组的两种典型场景
新用户常需加入 sudo、docker、wheel 等特权组,useradd 本身不支持直接添加附加组,需分步操作:
- 创建时指定主组:
useradd -g devteam -m devuser(主组设为已存在的devteam) - 创建后加附加组:
usermod -aG sudo, docker zhangsan(-aG是关键,避免覆盖原有附加组) - 注意:
useradd -G可指定附加组,但仅在创建时生效,且不会自动创建这些组
验证与排错小技巧
建完用户别急着切过去,先检查几处关键配置:
- 查用户是否存在:
id zhangsan(看 UID、GID、所属组) - 查家目录权限:
ls -ld /home/zhangsan(应属该用户,权限通常为drwx------) - 查 shell 是否合法:
grep zhangsan /etc/passwd(第六字段是家目录,第七字段是 shell) - 如果登录失败,优先检查:
/var/log/auth.log(Ubuntu/Debian)或/var/log/secure(RHEL/CentOS)中的拒绝原因










