上一篇
Linux如何创建新用户?,或,Linux怎么添加新用户?
- Linux
- 2025-06-02
- 3160
在 Linux 中,使用
useradd
或
adduser
命令创建用户,通常需要 root 权限,基本命令格式为
sudo useradd 用户名
,之后使用
passwd 用户名
为其设置密码。
Linux 用户创建的核心命令
useradd
命令(基础方法)
sudo useradd [选项] <用户名>
常用选项详解:
-m
:自动创建用户家目录(默认在/home/用户名
)-d /path
:自定义家目录路径(如-d /data/john
)-s /bin/bash
:指定登录 Shell(支持/sbin/nologin
禁止登录)-G group1,group2
:将用户加入附加组-u 1005
:手动指定用户 UID(避免冲突)-e YYYY-MM-DD
:设置账户过期日期
操作示例:
sudo useradd -m -s /bin/bash -G developers,webadmin john
adduser
命令(交互式向导,推荐新手)
sudo adduser <用户名> # Debian/Ubuntu 专属
执行后按提示输入密码、全名等信息,自动完成家目录创建和基础配置。
关键配置与安全设置
设置用户密码
创建后必须用 passwd
激活账户:
sudo passwd john # 按提示输入两次密码
安全建议:
- 密码长度 ≥ 12 位,混合大小写、数字、符号
- 定期更新:
chage -M 90 john
(90 天强制更换)
用户配置文件解析
/etc/passwd
:存储用户基本信息john:x:1001:1001:John Doe:/home/john:/bin/bash # 依次为:用户名:密码占位符:UID:GID:描述:家目录:Shell
/etc/shadow
:加密密码及策略(仅 root 可读)/etc/group
:用户组定义
自定义用户环境
初始化文件模板位于 /etc/skel/
:
sudo cp /etc/skel/.bashrc /home/john/ # 复制默认配置
进阶场景操作指南
创建系统用户(无登录权限)
适用于运行服务的守护进程:
sudo useradd -r -s /usr/sbin/nologin mysql # -r 表示系统用户
用户组管理
- 创建组:
sudo groupadd developers
- 追加组:
sudo usermod -aG developers john
(-a
保留原有组)
批量创建用户
通过脚本自动化处理:
for user in alice bob charlie; do sudo useradd -m $user echo "$user:Passw0rd!" | sudo chpasswd done
验证与故障排查
- 检查用户信息:
id john # 查看 UID/GID 及所属组 grep john /etc/passwd # 核对配置
- 测试登录:
su - john # 切换用户(需输入密码)
- 常见错误:
- 用户已存在:
useradd: user 'john' already exists
- 权限不足:确保使用
sudo
- 家目录未生成:检查
-m
参数或磁盘空间
- 用户已存在:
用户删除操作
安全删除用户及关联文件:
sudo userdel -r john # -r 删除家目录和邮件
️ 警告:生产环境删除前务必备份数据!
安全最佳实践
- 最小权限原则:用户只拥有必需权限(通过组精细控制)
- 禁用 root 远程登录:修改
/etc/ssh/sshd_config
中PermitRootLogin no
- 定期审计:使用
last
查看登录记录,chage -l john
检查密码策略
引用说明
- 命令文档:
man useradd
,man passwd
,man groupadd
- Linux 标准规范参考:Filesystem Hierarchy Standard (FHS)
- 安全建议:基于 CIS Linux Benchmarks 强化指南
本文严格遵守 Linux 官方操作规范,所有命令均在 Ubuntu 22.04/CentOS 9 验证通过,实际部署时请结合发行版手册调整参数,关键操作建议先在测试环境验证。