创建普通用户并指定家目录需同时使用 useradd 的 -d 和 -m 选项:-d 指定路径,-m 确保创建并初始化(复制 /etc/skel 文件);缺一不可,否则家目录缺失或无法登录。

在 Linux 中创建普通用户并指定家目录,核心是用 useradd 命令配合 -d 和 -m 选项。不加 -m 的话,即使指定了 -d,系统也不会自动创建该目录;而只加 -m 不加 -d,则默认在家目录 /home/用户名 下创建。
必须同时使用 -m 和 -d 选项
这是最关键的组合。-d 指定路径,-m 确保目录被创建且初始化(复制 /etc/skel 下的默认配置文件)。
-
正确示例:创建用户 alice,家目录设为
/data/users/alice
sudo useradd -m -d /data/users/alice alice
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 执行前请确保
/data/users目录已存在,且 root 有写入权限 - 若路径不存在,
useradd会报错并中止,不会自动创建父级目录
创建后需设置密码才能登录
刚创建的用户没有密码,无法通过 SSH 或本地终端登录。
- 运行
sudo passwd alice,然后输入并确认新密码 - 密码强度建议包含大小写字母、数字和符号,避免弱口令
- 普通用户自己只能改自己的密码,root 可以重置任意用户密码
验证家目录是否生效
创建并设密后,可切到该用户环境检查:
- 用
sudo su - alice切换(注意-表示加载完整环境) - 运行
pwd查看当前路径,应显示/data/users/alice - 运行
ls -la确认 .bashrc、.profile 等基础配置文件已存在 - 检查归属权:
ls -ld /data/users/alice应显示属主为 alice,属组也为 alice
常见错误与规避方法
容易出问题的地方集中在路径和权限上:
- 误写成
useradd -d /path/to/dir username(缺-m)→ 家目录不创建,登录时报“no home directory” - 指定的父目录(如
/data/users)不存在或权限不足 → 命令直接失败 - 手动创建了目录但没改属主:
chown alice:alice /data/users/alice必须补上,否则用户无法写入 - 想让多个用户共用一个目录?不推荐直接共享家目录;应改用附加组 + 共享目录 + 正确 setgid 权限










