运维必学:Linux 用户、密码一站式实操指南
一、前言
Linux 是标准多用户操作系统,用户、用户组是系统权限体系的底层核心。服务器登录、文件读写、命令执行、进程权限全部依靠 UID/GID 身份控制。本文结合课堂实操命令、配置文件、完整实验步骤,从零讲解用户 / 组创建、修改、密码时效、账户禁用、底层配置文件原理,所有命令均为课堂真实执行记录,可直接复制复现。
二、前置基础命令
先掌握查看登录用户、终端、身份信息工具,所有实操前先验证当前环境:
# 查看当前终端
tty
# 查看全部登录用户、负载、执行进程
w
# 仅查看登录用户与登录时间
who
# 简洁输出登录用户名
users
# 查看指定用户UID、GID、所有归属组
id lizihan
# 查看passwd配置手册(5代表配置文件类型)
man 5 passwd
# 查看修改属主命令手册
man chown
实操输出示例:
[lizihan@centos7 ~ 16:11:18]$ tty
/dev/pts/1
[lizihan@centos7 ~ 16:13:29]$ w
16:13:29 up 16:37, 3 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
lizihan :0 :0 Wed20 ?xdm? 4:53 0.36s /usr/libexec/gnome-session-b
lizihan pts/0 10.1.8.1 08:44 19:29 0.01s 0.01s -bash
lizihan pts/1 10.1.8.1 13:53 1.00s 0.06s 0.01s w
[lizihan@centos7 ~ 16:13:34]$ id lizihan
uid=1000(lizihan) gid=1000(lizihan) groups=1000(lizihan),10(wheel)
三、三大核心账号配置文件
1. /etc/passwd 用户基础信息(所有用户可读)
格式:用户名:x:UID:GID:注释信息:家目录:登录Shell
课堂查询示例:
[lizihan@centos7 ~ 16:03:04]$ grep lizihan /etc/passwd
lizihan:x:1000:1000:lizihan:/home/lizihan:/bin/bash
字段说明:
-
lizihan:登录用户名 -
x:密码占位符,真实加密密码存放/etc/shadow -
1000:UID 用户编号 -
1000:GID 用户初始主组编号 -
lizihan:用户备注描述 -
/home/lizihan:用户家目录 -
/bin/bash:登录解释器;/sbin/nologin禁止交互式登录
2. /etc/shadow 加密密码与时效(仅 root 可读)
存储加密密码、密码最小 / 最大有效期、强制改密标记、账户过期时间,9 段冒号分割。
关键标记:第三段为0,用户登录强制修改密码;密码字段开头!代表锁定账户。
3. /etc/group 用户组信息
格式:组名:x:GID:附加组成员
示例查询 wheel 管理员组:
[root@centos7 ~ 17:03:28]# grep wheel /etc/group
wheel:x:10:lizihan,operator1
四、用户创建 useradd 完整实操(课堂原题)
语法参数
-
-u指定 UID -
-d自定义家目录 -
-c用户注释描述 -
-g指定初始主组 -
-s指定登录 shell -
-G附加补充组(多个逗号分隔)
实操 1:最简创建用户 user01
[root@centos7 ~ 16:16:11]# useradd user01
# 查看生成的passwd条目
[root@centos7 ~ 16:16:27]# grep user01 /etc/passwd
user01:x:1002:1002::/home/user01:/bin/bash
实操 2:自定义参数创建 user02(无登录权限)
需求:UID=8888,家目录/opt/user02,注释user for software manage,主组 wheel,禁止登录
[root@centos7 ~ 16:16:52]# useradd -u 8888 -d /opt/user02 -c "user for software manage" -g wheel -s /sbin/nologin user02
# 验证
[root@centos7 ~ 16:33:38]# grep user02 /etc/passwd
user02:x:8888:10:user for software manage:/opt/user02:/sbin/nologin
# 查看自动创建的家目录
[root@centos7 ~ 16:33:58]# ls -d /opt/user02/
/opt/user02/
完整实验:operator1 用户全流程
需求:创建 operator1、设置密码、修改 UID、修改描述、加入 wheel 附加组、删除用户
# 1. 创建operator1
[root@centos7 ~ 16:35:14]# useradd operator1
# 输错用户名查询(报错演示)
[root@centos7 ~ 16:50:29]# id opertor1
id: opertor1: no such user
# 正确查询用户条目
[root@centos7 ~ 16:51:25]# grep operator1 /etc/passwd
operator1:x:8890:8890::/home/operator1:/bin/bash
# 2. 设置用户密码
[root@centos7 ~ 16:53:08]# passwd operator1
Changing password for user operator1.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
# 3. 修改UID为1088
[root@centos7 ~ 16:55:51]# usermod -u 1088 operator1
# 4. 修改用户描述信息
[root@centos7 ~ 16:58:05]# usermod -c "Operator One" operator1
# 5. 追加wheel附加组(-aG 追加,不覆盖原有组)
[root@centos7 ~ 17:02:07]# usermod -aG wheel operator1
# 验证wheel组成员
[root@centos7 ~ 17:03:28]# grep wheel /etc/group
wheel:x:10:lizihan,operator1
# 6. 删除用户(仅删账号,保留家目录)
[root@centos7 ~ 17:04:28]# userdel operator1
# 验证用户已删除
[root@centos7 ~ 17:04:38]# ls operator1
ls: cannot access operator1: No such file or directory
五、usermod 修改用户全功能详解
1. 修改 UID
usermod -u 1088 operator1
2. 修改备注描述
usermod -c "Operator One" operator1
3. 追加附加组(必须加 - a,否则覆盖原有组)
usermod -aG wheel operator1
4. 修改登录 shell,禁止登录
usermod -s /sbin/nologin laowang
5. 锁定 / 解锁密码
usermod -L laowang # 锁定密码,普通用户无法su/ssh登录
usermod -U laowang # 解锁密码
6. 不使用 passwd 设置密码(复制其他用户加密哈希)
# 提取laoma加密密码串
grep laoma /etc/shadow
# 给laowang赋予相同密码
usermod -p '$6$复制完整shadow加密字符串' laowang
六、用户删除 userdel
userdel operator1 # 仅删除账号,家目录、邮件保留
userdel -r operator1 # 删除账号+家目录+邮件文件(彻底清理)
七、密码时效管理 chage(课后作业核心)
对应课后作业需求:laowang 用户配置
-
首次登录强制改密码:
chage -d 0 laowang -
3 天内禁止修改密码:
chage -m 3 laowang -
100 天后密码过期:
chage -M 100 laowang
完整命令:
chage -m 3 -M 100 -d 0 laowang
# 查看密码时效配置
chage -l laowang
八、两种禁止用户登录系统的方法
方法 1:修改登录 Shell 为 /sbin/nologin
usermod -s /sbin/nologin laowang
效果:任何 su、ssh 登录直接提示This account is currently not available,root 也无法交互式切换。
方法 2:锁定用户密码
usermod -L laowang
效果:普通用户 su/ssh 输入正确密码认证失败;root 仍可su - laowang切换。
九、用户组管理命令(groupadd/groupmod/groupdel/groupmems)
1. 创建组
groupadd developer
groupadd -g 2000 developer
2. 修改组名、GID
groupmod -g 3000 -n developers developer
3. 删除组
groupdel developers
4. 管理组成员 groupmems
# 添加用户到组
groupmems -g admins -a laoma
# 查看组内成员
groupmems -g admins -l
# 删除组成员
groupmems -g admins -d laoma
# 清空组所有成员
groupmems -g admins -p
十、课后综合实战完整流程(原题)
需求:
-
添加用户 laowang,设置密码与 laoma 一致,禁止 passwd 命令
-
密码策略:首次登录改密、3 天不可修改、100 天过期
-
两种方式禁止 laowang 登录
完整执行命令
# 1. 创建laowang
useradd laowang
# 提取laoma密码哈希
grep laoma /etc/shadow
# 赋予相同密码(替换引号内字符串)
usermod -p '$6$xxxx加密串' laowang
# 2. 配置密码生命周期
chage -m 3 -M 100 -d 0 laowang
# 3. 禁止登录两种方案
# 方案1:禁用登录shell
usermod -s /sbin/nologin laowang
# 方案2:锁定密码
usermod -L laowang
十一、补充知识点:su 切换用户与 sudo 提权
su 命令
-
su -l 用户名:完整登录 shell,加载用户全部环境变量(推荐) -
su 用户名:不加载环境,仅切换身份 -
root 使用 su 切换任意用户不需要密码;普通用户 su 必须输入目标用户密码
课堂实操示例:
# 普通用户切换root报错演示
[lizihan@centos7 ~ 15:47:25]$ su-l root
bash: su-l: command not found...
# 正确写法(-l前后空格)
[lizihan@centos7 ~ 15:54:21]$ su -l root
Password:
sudo 提权
普通用户临时获取 root 权限,需要在/etc/sudoers配置授权,使用visudo编辑:
# 赋予laowang全部管理员权限
laowang ALL=(ALL) ALL
# 免密sudo
laowang ALL=(ALL) NOPASSWD:ALL
未配置 sudo 权限报错:laowang is not in the sudoers file
十二、总结
-
用户身份由 UID 唯一识别,配置文件
/etc/passwd、/etc/shadow、/etc/group管控账号; -
useradd/usermod/userdel完成用户全生命周期管理,usermod -p可绕过 passwd 设置密码; -
chage管控密码过期、强制改密等安全策略; -
禁止登录两种核心手段:修改 nologin shell、锁定密码;
-
普通用户切换身份优先使用
su -l,临时管理员权限使用 sudo,需提前配置 sudoers。
所有命令均来自课堂真实敲取记录,复制到 CentOS7 环境可直接完成全部用户与组实验。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)