当前位置:首页>Linux>Linux命令每日一清单008:useradd--用户创建命令速查表

Linux命令每日一清单008:useradd--用户创建命令速查表

  • 2026-09-10 18:49:34
Linux命令每日一清单008:useradd--用户创建命令速查表

useradd是Linux系统中用于创建新用户账户的基础命令。作为系统管理的核心工具之一,useradd通过在/etc/passwd、/etc/shadow、/etc/group等系统文件中添加相应条目来完成用户创建,并可选择性地创建用户主目录、设置默认配置文件等。

与adduser不同(后者是某些发行版提供的交互式Perl脚本),useradd是底层的二进制工具,在所有Linux发行版中均可使用,更适合在脚本和自动化环境中使用。掌握useradd的各种选项,可以帮助系统管理员高效、规范地管理用户账户。

1. 基本语法

命令说明
sudo useradd zhangsan
使用默认设置创建用户"zhangsan"
sudo useradd -m lisi
创建用户并自动创建家目录
sudo useradd -m -s /bin/bash wangwu
创建用户、家目录,并指定登录Shell
sudo useradd -m -c "王五" wangwu
创建用户并添加注释信息(全名)
sudo useradd -D
查看当前默认的新用户设置

2. 家目录与登录Shell

命令说明
sudo useradd -m zhaoliu
创建家目录(默认为/home/用户名)
sudo useradd -M sunqi
创建用户但不创建家目录
sudo useradd -d /app/data -m appuser
创建用户并指定自定义家目录路径
sudo useradd -s /bin/zsh zhouba
设置登录Shell为Zsh
sudo useradd -s /sbin/nologin serviceuser
创建系统服务账户(禁止交互式登录)
sudo useradd -s /bin/false git
创建Git账户(完全禁止登录)

3. 用户组与权限

命令说明
sudo useradd -m -g developers wujiu
设置主组为developers(需事先存在)
sudo useradd -m -G sudo zhengshi
将用户添加到sudo附加组(获取管理员权限)
sudo useradd -m -G docker,developers opsuser
将用户添加到多个附加组
id zhangsan
查看用户的UID、GID和所属组
groups zhangsan
查看用户所属的所有组

4. UID、账户过期与策略

命令说明
sudo useradd -m -u 1050 tempuser
创建用户并指定UID为1050
sudo useradd -m -e 2026-12-31 guest
设置账户过期日期(YYYY-MM-DD格式)
sudo useradd -m -f 30 projectuser
密码过期后30天禁用账户
sudo useradd -m -k /etc/custom-skel newuser
使用自定义的skel目录初始化家目录
sudo chage -l zhangsan
查看用户的账户过期策略

5. 密码设置与账户激活

命令说明
sudo passwd zhangsan
设置或修改用户密码
sudo passwd -l zhangsan
锁定用户密码(禁止密码登录)
sudo passwd -u zhangsan
解锁用户密码
sudo su - zhangsan
切换到新用户测试环境
getent passwd zhangsan
确认用户在账户数据库中存在

6. 默认配置与安全操作流程

命令说明
sudo useradd -D
查看系统默认配置(HOME、SHELL、SKEL等)
sudo useradd -D -s /bin/bash
修改默认登录Shell(影响后续创建的用户)
sudo useradd -D -b /home
修改默认家目录基路径
sudo useradd -m newuser && sudo passwd newuser
常用两步创建流程
sudo usermod -aG sudo newuser
创建后授予管理员权限
sudo userdel -r zhangsan
删除用户及其家目录(撤销账户)

7. 实用组合模式

命令说明
sudo useradd -m -s /bin/bash -c "张三" zhangsan
完整创建开发用户(家目录+bash+注释)
sudo useradd -r -s /sbin/nologin redis
创建系统账户(-r表示系统账户,UID<1000)
sudo useradd -m -G wheel -e 2026-12-31 tempadmin
创建临时管理员(加入wheel组并设置过期)
for user in zhangsan lisi wangwu; do sudo useradd -m $user; done
批量创建多个用户
echo "user:password" | sudo chpasswd
批量设置密码(从管道读取)

8. 常用选项速查

选项完整名称说明
-m
--create-home
创建用户家目录
-M
--no-create-home
不创建用户家目录
-d
--home-dir
指定家目录路径
-s
--shell
指定登录Shell
-c
--comment
添加注释(通常是用户全名)
-g
--gid
指定主组(组名或GID)
-G
--groups
指定附加组(逗号分隔)
-u
--uid
指定用户UID
-e
--expiredate
账户过期日期
-f
--inactive
密码过期后多少天禁用
-r
--system
创建系统账户
-k
--skel
指定 skeleton 目录
-D
--defaults
显示或修改默认设置
-b
--base-dir
设置默认家目录基路径

9. 相关系统文件

文件路径说明
/etc/passwd
用户账户信息(用户名、UID、GID、家目录、Shell)
/etc/shadow
加密密码及账户过期策略
/etc/group
组信息
/etc/default/useradd
useradd默认配置文件
/etc/login.defs
登录相关的系统定义(UID范围、密码策略等)
/etc/skel/
skeleton目录,新用户家目录的模板文件

10. 故障排查指南

问题解决方法
useradd: user 'zhangsan' already exists
用户已存在,使用id zhangsan确认,或选择其他用户名
group 'developers' does not exist
组不存在,先使用sudo groupadd developers创建组
家目录没有创建
使用-m选项,并检查useradd -D查看默认配置
创建后无法登录
检查Shell是否有效:getent passwd zhangsan;使用sudo passwd zhangsan设置密码
UID冲突
手动指定UID前,先检查/etc/passwd中已使用的UID
用户无法sudo
确认用户是否在sudo组:groups zhangsan;或使用sudo usermod -aG sudo zhangsan添加
账户已过期
使用sudo chage -l zhangsan查看过期策略;使用sudo chage -E -1 zhangsan取消过期

提示: 创建用户时建议遵循最小权限原则——普通用户使用默认配置,服务账户使用-r和/sbin/nologin。批量创建用户时,可结合newusers命令从文件批量导入。用户创建完成后,务必测试登录并验证权限,确保账户可正常使用。

本文PDF格式下载:

  关注公众号(haopython),请回复: LLTUAD

最新文章

随机文章