当前位置:首页>Linux>Linux 用户和组管理全攻略:从 useradd 到企业实战,一篇就够了

Linux 用户和组管理全攻略:从 useradd 到企业实战,一篇就够了

  • 2026-10-08 02:21:45
Linux 用户和组管理全攻略:从 useradd 到企业实战,一篇就够了

一、先搞懂两个基本概念

用户账户(User Account)

用户账户是登录系统的身份标识,Linux 下分两类:超级用户 root(UID 为 0,权限最大)和普通用户(UID 默认从 1000 开始编号,系统用户 UID 为 1~999)。

组(Group)

组是具有相同特性的用户的逻辑集合。一个用户可以属于多个组,其中一个是主组(私有组),其余为附属组(标准组)。创建用户时会自动生成同名的主组,GID 默认也从 1000 开始。

账户核心概念速览

用户名:标识用户,字母+数字,区分大小写
UID:数字标识符,root=0,系统用户1~999,普通用户1000+
密码:加密存储在 /etc/shadow,仅 root 可读
主目录:用户登录后默认所在目录,如 /home/user1
登录 Shell:默认为 /bin/bash,也可设为 /sbin/nologin 禁止登录
GID:组的数字标识符,普通组从 1000 开始

必须认识的 5 个配置文件

1. /etc/passwd —— 用户账户信息

格式:用户名:x:UID:GID:描述:主目录:Shell

root:x:0:0:root:/root:/bin/bash
user1:x:1002:1002::/home/user1:/bin/bash
bobby:x:1001:1001::/home/bobby:/bin/bash

所有用户均可读。x 表示密码影射到 shadow 文件。

2. /etc/shadow —— 加密密码

仅 root 可读。格式:用户名:加密密码:上次修改:最小:最大:警告:不活动:过期:保留

root:$6$xxx...:18495:0:99999:7:::
bobby:!!:18495:0:99999:7:::

!! 表示密码为空,$6$ 前缀表示 SHA-512 加密。

3. /etc/login.defs —— 创建账户的默认配置

PASS_MAX_DAYS   99999    // 密码最长有效天数
PASS_MIN_LEN    5      // 密码最小长度
PASS_WARN_AGE   7       // 过期前7天警告
UID_MIN        1000     // 普通用户最小UID
UID_MAX        60000    // 普通用户最大UID
CREATE_HOME    yes      // 创建用户时自动建主目录

4. /etc/group —— 组信息

格式:组名:x:GID:成员列表

bobby:x:1001:user1,user2
user1:x:1002:

5. /etc/gshadow —— 组管理信息

格式:组名:加密口令:组管理员:成员列表(! 表示无口令)

二、项目实施:6 个核心任务

任务 1:新建用户 —— useradd

命令格式:useradd [选项] <用户名>

常用选项:
-u   指定 UID      -g   指定主组
-d   指定主目录   -s   指定 Shell
-p   指定密码     -f   密码过期天数(-1 永不过期)
-G   指定附属组   -c   添加备注描述

实战:新建 user3,UID=1010,主组 group1,主目录 /home/user3

groupadd -g 1010 group1
useradd -u 1010 -g 1010 -d /home/user3 -s /bin/bash -p 12345678 -f -1 user3
tail -1 /etc/passwd    # 验证:user3:x:1010:1010::/home/user3:/bin/bash

注意:-p 直接设的密码是明文存储到 /etc/shadow 的,生产环境建议用 passwd 命令单独设置密码。

任务 2:设置用户口令 —— passwd / chage

passwd              # root 改自己密码
passwd user1         # root 改 user1 密码

chage 命令用于管理密码有效期策略:

# 最短6天改一次,最长60天过期,提前5天提醒
chage -m 6 -M 60 -W 5 user1
chage -l user1     # 查看密码策略

chage 常用选项:-m 最短存活天数 | -M 最长存活天数 | -W 过期前警告天数 | -E 账户过期日期 | -l 查看策略

任务 3:维护用户账户 —— usermod / 禁用 / 删除

(1)修改账户属性 —— usermod 命令

usermod [选项] 用户名

(2)禁用 / 恢复账户 —— 三种方法

方法一:passwd -l user1   (锁定)/  passwd -u user1  (解锁)
方法二:usermod -L user1  (锁定)/  usermod -U user1  (解锁)
方法三:手动在 /etc/shadow 密码域前加 *,恢复时删掉 *

(3)删除账户

userdel user3       # 仅删账户
userdel -r user3    # 连同主目录一起删除

任务 4:管理组 —— groupadd / gpasswd

groupadd testgroup       # 创建组
groupdel testgroup       # 删除组
groupmod -g 2000 testgroup   # 修改组的 GID

组里增删用户 —— 用 gpasswd:

gpasswd -a user1 testgroup   # 把 user1 加入 testgroup
gpasswd -d user1 testgroup   # 把 user1 移出 testgroup
gpasswd -A user1 testgroup   # 指定 user1 为组管理员

任务 5:切换用户身份 —— su

su - test    # 切换到 test 用户(带 - 加载完整环境)
exit         # 退出当前用户,返回上一层

su 不带 "-" 只切换身份不加载环境变量,带 "-" 会完整切换到目标用户环境。

任务 6:常用账户管理命令速查

vipw   安全编辑 /etc/passwd(比 vi 多了文件锁)
vigr   安全编辑 /etc/group
pwck   检查 /etc/passwd 和 /etc/shadow 完整性
grpck   检查 /etc/group 和 /etc/gshadow 完整性
id     查看用户的 UID、GID、所属组列表
whoami   显示当前用户名(等同于 id -un)
newgrp   切换当前用户的主组到指定组

id 命令示例:

id user1
# uid=1002(user1) gid=1002(user1) 组=1002(user1),1011(testgroup)

三、企业实战:批量创建账号

假设公司有 3 个员工,需求如下表。用学到的命令一键完成。

账号
全名
附属组
可登录
口令
myuser1
1st user
mygroup1
可以
password
myuser2
2nd user
mygroup1
可以
password
myuser3
3rd user
无
不可以
password

解决方案:

# 第一步:创建组,然后建用户
groupadd mygroup1
useradd -G mygroup1 -c "1st user" myuser1
useradd -G mygroup1 -c "2nd user" myuser2
useradd -c "3rd user" -s /sbin/nologin myuser3

# 第二步:批量设密码
echo "password" | passwd --stdin myuser1
echo "password" | passwd --stdin myuser2
echo "password" | passwd --stdin myuser3

关键点:-c 写全名备注,-s /sbin/nologin 禁止登录(如 myuser3 只用于后台服务),--stdin 配合 echo 实现非交互式批量设密码。

总结:一张图记住所有命令

分类
命令
作用
用户
useradd
新建用户
passwd
设置密码
usermod
修改用户属性
userdel
删除用户
组
groupadd
新建组
groupmod / groupdel
修改 / 删除组
gpasswd
组里增减用户
密码策略
chage
密码有效期策略
passwd -l / -u
锁定 / 解锁账户
usermod -L / -U
禁用 / 恢复账户
辅助
su
切换用户
id / whoami
查看用户身份
vipw / vigr
安全编辑配置文件
pwck / grpck
检查配置文件完整性

记住这个核心流程:
① 先建组(groupadd) → ② 再建用户并归组(useradd -G) → ③ 设密码(passwd) → ④ 配策略(chage) → ⑤ 必要时锁定/解锁(passwd -l/-u 或 usermod -L/-U)

账号管理是 Linux 运维的基本功。多敲几遍命令,把 5 个配置文件的内容格式记熟,就能应对绝大多数场景了。如果觉得有用,欢迎收藏备用。

编辑:🍀七七不吃糖

最新文章

随机文章