在Linux系统中,新建用户是基础且重要的操作,主要用于系统权限管理、安全隔离和多用户环境协作,Linux通过用户账户控制资源访问权限,合理创建用户可避免直接使用root账户带来的安全风险,本文将详细讲解Linux下新建用户的常用方法、参数说明及后续管理操作。

使用useradd命令创建用户
useradd是Linux中最常用的用户创建命令,属于shadow软件包(多数系统默认安装),支持丰富的参数自定义用户属性,其基本语法为:
sudo useradd [选项] 用户名
核心参数说明(通过表格清晰展示):
| 参数 | 含义 | 示例 |
|---|---|---|
-m |
自动创建用户家目录(默认不创建) | sudo useradd -m testuser |
-d |
指定家目录路径(需配合-m) |
sudo useradd -m -d /home/custom testuser |
-s |
指定登录Shell(如/bin/bash允许交互登录,/bin/nologin禁止登录) |
sudo useradd -m -s /bin/bash testuser |
-c |
添加用户注释(如全名、描述) | sudo useradd -m -c "Test User" testuser |
-u |
指定UID(用户标识,默认从1000递增) | sudo useradd -m -u 2000 testuser |
-g |
指定主组(需组已存在,默认与用户同名) | sudo useradd -m -g developers testuser |
-G |
指定附加组(多个组用逗号分隔) | sudo useradd -m -G sudo,developers testuser |
-r |
创建系统用户(UID<1000,无家目录,用于服务账户) | sudo useradd -r -s /bin/nologin nginx |
示例操作:
-
创建普通用户(自动创建家目录,默认Shell为
/bin/bash):sudo useradd -m alice
执行后,系统会在
/home/下创建alice家目录,默认权限为750(所有者可读写执行,组和其他用户只读和执行)。 -
创建带附加组的用户:
sudo useradd -m -g developers -G sudo bob
用户
bob的主组为developers,附加组为sudo(可执行sudo命令)。
-
创建系统用户(用于运行服务,如Nginx):
sudo useradd -r -s /bin/nologin nginx
用户
nginx无家目录,无法交互登录,UID通常小于1000。
使用adduser命令创建用户
adduser是useradd的交互式封装(在Ubuntu/Debian中默认安装,CentOS/RHEL需手动安装adduser包),会提示输入用户信息,操作更友好,适合新手。
示例操作:
sudo adduser charlie
执行后会依次提示:
交互完成后,系统自动创建家目录并设置权限,无需手动指定参数。
用户创建后的必要操作
-
设置用户密码:
新建用户默认无密码或密码为空,需通过passwd命令设置:
sudo passwd alice # 输入两次密码完成设置
-
修改用户信息(如用户名、家目录):
- 修改用户名:
sudo usermod -l newname oldname(需同时修改家目录名,需手动操作); - 修改家目录:
sudo usermod -d /new/home -m username(-m自动迁移旧文件)。
- 修改用户名:
-
删除用户:
sudo userdel -r username # `-r`删除家目录和邮件文件,避免残留
注意事项
- 权限要求:创建用户需
root权限或通过sudo执行; - UID/GID冲突:手动指定
-u或-g时,需确保UID/GID未被其他用户/组占用; - 家目录权限:家目录默认权限
750,若需其他用户访问,可调整chmod 755 /home/username; - Shell限制:服务账户建议使用
/bin/nologin,避免安全风险。
相关问答FAQs
Q1:创建用户后无法登录,提示“Authentication failure”怎么办?
A:可能原因及解决方法:
- 未设置密码:通过
sudo passwd username设置密码; - Shell被禁用:检查
/etc/passwd文件中用户对应的Shell字段(如/bin/nologin需改为/bin/bash); - 家目录权限错误:确保家目录所有者为用户,权限为
700(sudo chown -R username:username /home/username)。
Q2:如何批量创建多个用户?
A:可通过脚本或newusers命令批量创建,例如使用newusers(需passwd包支持):
- 准备用户列表文件(如
users.txt),格式为“用户名:密码:UID:GID:全名:家目录:Shell”:user1:Pass123:1001:1001:User One:/home/user1:/bin/bash user2:Pass456:1002:1002:User Two:/home/user2:/bin/bash
- 执行批量创建:
sudo newusers users.txt - 修复密码加密格式(可能需手动更新):
sudo pwconv(确保密码使用shadow加密)。
通过脚本循环useradd也可实现,
for user in user3 user4; do
sudo useradd -m -s /bin/bash $user
sudo passwd $user
done
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/31338.html