本页覆盖部署中和”身份”相关的命令:建账号、改密码、加入用户组(如 Rocky Linux 的
wheel)、用 sudo 提权、配置环境变量。生产环境绝大多数操作都不该用 root,理解这一组命令是基础。1. 用户账号管理
useradd / userdel / passwd / usermod — 增删改用户
useradd / userdel / passwd / usermod — 增删改用户
who am I(自我确认)
who am I(自我确认)
用户、UID 与 /etc/passwd
用户、UID 与 /etc/passwd
每个用户在
/etc/passwd 里一行,字段以 : 分隔:不需要登录的服务账户:
2. 用户组与管理员权限(以 Rocky Linux 为例)
Linux 通过 「用户组」 实现权限的批量管理 —— 把权限授予一个组,组内所有成员立即获得。本节用 Rocky Linux 演示用户、组、sudo 权限三者的关系,这套模型同样适用于 RHEL / CentOS / AlmaLinux。
2.1 用户、组、权限:三个关键文件
每个用户都属于至少一个主组,可以加入多个附加组。2.2 wheel 组:Rocky Linux 的「管理员组」
不同发行版的「管理员组」叫法不同:wheel 这个名字源自 BSD 传统,意思是「掌握方向盘的人」。在 Rocky Linux 上,把用户加进 wheel 组 ≈ 给它 sudo 权限(具体规则见 2.4 节的 /etc/sudoers)。
2.3 让 aimee 拥有 sudo 权限:完整流程
1
确认或创建 aimee 用户
2
把 aimee 加入 wheel 组
3
验证组关系
4
aimee 重新登录后即可使用 sudo
附加组变更需要重新登录才生效。aimee 当前已登录的会话仍持有旧组身份,必须
exit 重连。2.4 看清谁有管理员权限:/etc/sudoers
/etc/sudoers 是 sudo 权限的总规则文件。先 cat 看一下默认内容:
%wheel ALL=(ALL) ALL 怎么读:
#includedir /etc/sudoers.d(虽然以 # 开头但不是注释,是 sudoers 特殊语法)会加载该目录下所有规则文件。生产环境推荐把自定义规则放进独立文件,不要直接动 /etc/sudoers:
2.5 「管理员权限」具体能干什么
sudo 拿到的是 root 权限。在 Linux 里,root 几乎无所不能:
理解关键:root 的权限不是”无视所有规则”,而是”权限检查的例外” —— 内核遇到 UID=0 直接放行(少数例外:SELinux 强制策略、
chattr +i 不可变属性等)。
2.6 用户组与文件权限的关系
回顾文件权限中的rwxr-xr-x 三段:第一段是所有者、第二段是所属组、第三段是其他人。这就是用户组存在的最大意义 —— 让一个文件的访问权限可以被一群人共享。
典型场景:让 aimee 和 bob 协作维护 /opt/myapp/。
1
建一个团队组
2
改目录所属组 + 给组写权限
chmod g+s 给目录加 setgid 位:之后在里面新建的文件 / 子目录会自动属于 developers 组,不用每次手动 chgrp。3
验证
简而言之:sudo 决定”你能不能跑某条命令”,文件组决定”你能不能动某个文件”。两者互为补充。
2.7 用户组管理速查
3. sudo / su — 提权
sudo (superuser do) — 单条命令提权(推荐)
sudo (superuser do) — 单条命令提权(推荐)
sudo 而不是直接登 root:su (substitute user) — 切换身份
su (substitute user) — 切换身份
新系统通常默认禁用 root 直接
su -(root 密码未设),用 sudo -i 替代。sudo 权限的精细配置 → 见 2.4 节
sudo 权限的精细配置 → 见 2.4 节
本章节聚焦
sudo / su 命令的使用。如何配置谁能 sudo、能 sudo 干什么(包括 /etc/sudoers、visudo、wheel 组),已在 2.4 看清谁有管理员权限 与 2.7 用户组管理速查 中完整覆盖。4. 环境变量
很多部署问题来自环境变量没设对(最经典:command not found 是 PATH 没配)。
查看当前环境变量
查看当前环境变量
临时设置(仅当前 shell 有效)
临时设置(仅当前 shell 有效)
export 的含义:让子进程也能看到这个变量。不 export 的话,启动的应用读不到。永久设置(每次登录都生效)
永久设置(每次登录都生效)
把
export 写进登录 shell 的初始化文件:改完后让它立即生效:
$PATH 是什么
$PATH 是什么
$PATH 是用 : 分隔的目录列表,shell 在这些目录里找你输入的命令:$PATH 里。可以:- 用绝对路径调用:
/opt/myapp/bin/myapp - 把目录加进
$PATH:export PATH=/opt/myapp/bin:$PATH - 持久化:把上一行写到
~/.bashrc,下次登录依然有效
部署常见环境变量
部署常见环境变量
场景:systemd 服务里通过
Environment= 字段传应用的环境变量: