一文搞懂:Linux 权限操作中,哪些只有 root 能做?普通用户又能做什么?
声明:本文仅作学习交流使用,引用需标明出处。
如有谬误,敬请指正
一文搞懂:Linux 权限操作中,哪些只有 root 能做?普通用户又能做什么?
在 Linux 多用户环境下,权限操作的边界是运维新手最容易踩坑的点:明明命令语法完全正确,执行却提示「权限不够」,核心原因就在于操作权限的归属限制——root 作为超级管理员,和普通用户的权限边界泾渭分明。
本文就帮你彻底理清:Linux 权限相关操作中,哪些是 root 专属特权,哪些是普通用户可以自主操作的,一文吃透权限操作的核心规则。
一、先明确核心原则:权限操作的底层逻辑
Linux 对权限操作的管控,核心遵循两个铁律:
- 普通用户:仅能管控自己是所有者的资源,操作范围被严格限制在自身家目录及授权范围内,无法跨用户、跨系统修改核心配置;
- root 用户:不受任何资源归属、权限规则限制,可操作系统内所有资源、所有权限配置,是系统唯一的「最高权限者」。
所有权限操作的划分,都基于这个底层逻辑展开,下面分场景详细拆解。
二、root 专属操作:普通用户绝对无法执行
这类操作涉及跨用户资源管控、系统级安全配置、敏感文件操作,普通用户执行必然报错「权限不够」,是 root 的核心特权。
1. 修改任意资源的归属关系(chown)
chown 是修改文件/目录所有者、所属组的核心命令,只有 root 能修改非自身所有资源的归属,普通用户即便对文件有全部权限,也无法更改其所有者。
- 典型操作:
chown alice:test /opt/share.txt、chown -R root:root /home/bak - 核心原因:归属关系是资源的核心属性,随意修改会打破系统用户权限隔离,存在极大安全风险。
2. 配置系统级特殊权限(SUID/SGID/粘滞位)
特殊权限涉及程序身份传递、公共目录安全管控,其中 SUID/SGID 仅 root 可配置,粘滞位虽普通用户可给自己的目录加,但系统公共目录(如/tmp)的粘滞位仅 root 可修改。
- 典型操作:
chmod 4755 /usr/bin/passwd(SUID)、chmod 2770 /team/dir(SGID) - 核心原因:SUID 会让普通用户临时继承程序所有者权限,滥用会导致系统提权漏洞,必须由 root 管控。
3. 修改系统级默认权限配置(umask 永久修改)
普通用户仅能临时修改自身会话的 umask,而永久修改系统全局 umask(编辑/etc/profile、/etc/bashrc) 是 root 专属操作。
- 典型操作:在/etc/profile中添加
umask 0027实现全局默认权限管控 - 核心原因:全局 umask 影响所有用户的新建资源权限,属于系统级配置,普通用户无权限修改系统文件。
4. 操作系统敏感资源的权限
系统核心文件、root 家目录(/root)、其他用户的家目录核心资源,仅 root 可修改其权限/归属,普通用户连访问都被禁止。
- 典型操作:修改/etc/passwd、/etc/shadow的权限,修改/root目录的ACL规则
- 核心原因:这类资源存储系统用户信息、管理员数据,是系统安全的核心防线。
5. 跨用户配置 ACL 精细化权限
普通用户只能给自己的资源加ACL,而给普通用户开放系统敏感目录(如/root、/etc)的ACL权限,必须由 root 执行。
- 典型操作:
setfacl -m u:bob:rx /root - 核心原因:突破基础 ugo 权限的精细化配置,涉及系统安全边界,仅 root 可授权。
三、普通用户可操作:仅局限于自身所有资源
普通用户并非不能做权限操作,只是范围被严格限定在自己创建、自己是所有者的资源内,核心操作集中在权限调整、ACL 配置等基础场景。
1. 修改自身资源的基础权限(chmod)
只要是自己家目录内、自己为所有者的文件/目录,普通用户可自由用chmod修改权限(符号法、数字法、递归-R均可)。
- 典型操作:
chmod 700 ~/private.txt、chmod -R o=- ~/workdir - 限制:无法修改他人所有的资源,即便对该资源有读写权限也不行。
2. 给自己的资源配置/删除 ACL
普通用户可对自身所有的资源,自由添加、删除单条ACL(-m/-x),甚至清空全部ACL(-b),实现对其他普通用户的精细化授权。
- 典型操作:
- 添加ACL:
setfacl -m u:tom:rx ~/share_file.txt - 删除单条ACL:
setfacl -x u:tom ~/share_file.txt - 清空全部ACL:
setfacl -b ~/share_file.txt
- 添加ACL:
- 限制:无法修改 root 给该资源配置的ACL,无法给非自身资源加ACL。
3. 临时修改自身会话的 umask
普通用户可在当前终端会话中,临时修改 umask 值,仅影响自己本次登录后新建的资源权限,重启或重新登录后失效。
- 典型操作:
umask 0027 - 限制:无法修改全局 umask,无法影响其他用户的权限配置。
4. 管理授权目录内的自身资源
若 root 给普通用户授权了某公共目录的读写权限(如/project),普通用户可在该目录内创建、删除、修改自己的文件,但无法操作他人创建的文件(粘滞位场景下)。
- 典型操作:
touch /project/my_file.txt、rm /project/my_file.txt
四、特殊场景:普通用户的「有限权限例外」
- 组权限授权场景:若普通用户属于某用户组,且目录所属组为该组、组权限含 wx,可在目录内创建文件,但无法删除同组其他用户的文件(目录加粘滞位时);
- ACL 授权场景:root 给普通用户授予某资源的ACL权限后,用户可按授权范围操作资源,但仍无法修改该资源的归属、全局权限。
五、一文总结:root 与普通用户权限操作边界
| 操作类型 | root 用户 | 普通用户 |
|---|---|---|
| 修改任意资源归属(chown) | ✅ 可操作 | ❌ 不可操作 |
| 配置 SUID/SGID 特殊权限 | ✅ 可操作 | ❌ 不可操作 |
| 永久修改系统全局 umask | ✅ 可操作 | ❌ 不可操作 |
| 操作系统敏感文件权限 | ✅ 可操作 | ❌ 不可操作 |
| 修改自身资源的基础权限 | ✅ 可操作 | ✅ 可操作 |
| 给自己的资源配置 ACL | ✅ 可操作 | ✅ 可操作 |
| 临时修改自身会话 umask | ✅ 可操作 | ✅ 可操作 |
记忆口诀
- root:所有资源随便改,归属权限全管控,系统配置我做主;
- 普通用户:自己资源自己管,他人资源碰不得,系统配置无权动。
吃透这个权限边界,后续在执行chown、chmod、setfacl等命令时,遇到「权限不够」的报错,就能第一时间定位原因,避免无效操作。
更多推荐



所有评论(0)