【Linux系统编程】shell与权限(2)——从 rwx 到 chmod/chown
主页传送门:良木生香个人专栏:《C语言》《数据结构-初阶》《鼠鼠的C学习之路》《Linux系统编程》人为善,福随未至,祸已远行;人为恶,祸虽未至,福已远离前言在 Linux 中权限是系统安全的基石。普通用户和 root 有什么区别su 和 su - 有什么不同sudo 怎么用白名单机制是什么chmod 和 chown 怎么改权限这篇文章从用户身份切换出发带你彻底理解 Linux 权限体系。文章目录[toc]一、Linux 权限的本质——用户身份与权限体系1.1 普通用户与 root——两种身份两种世界1.2 su 命令——切换用户身份1.3 su vs su - ——一个细节坑了无数人1.4 sudo 命令——临时借用 root 权限1.5 白名单机制——谁可以用 sudo二、ls -l 输出解读——10 个字符看懂文件权限三、三类访问者——拥有者、所属组、其他人四、rwx 权限详解——读、写、执行4.1 权限匹配机制——Linux 怎么判断你有没有权限4.2 三种权限的含义4.3 目录权限的坑——r 和 x 的区别五、三个关于权限的面试问题问题 1进入一个目录需要什么权限问题 2什么决定了文件或者目录的默认权限问题 3root 新建的文件普通用户不读不写不执行那么普通用户可以删除吗4.4 权限的二进制表示六、chmod 指令——修改文件权限6.1 符号模式字母模式6.2 八进制数字模式最常用6.3 常用权限组合速查6.4 递归修改目录权限七、chown 指令——修改文件拥有者一、Linux 权限的本质——用户身份与权限体系1.1 普通用户与 root——两种身份两种世界Linux 把用户分为两类普通用户和root超级管理员。对比项普通用户root超级管理员用户 IDUID ≠ 0UID 0权限受限只能操作自己的文件无所不能可以操作任何文件符号$#能否修改系统配置❌ 不能✅ 可以能否删除任何文件❌ 不能✅ 可以能否创建/删除用户❌ 不能✅ 可以终端提示符的区别# 普通用户的提示符$[larrylocalhost ~]$# root 的提示符#[rootlocalhost ~]#安全原则**日常操作使用普通用户需要管理员权限时再用sudo临时获取。这样可以防止误操作破坏系统。root 的能力有多大可以读写/删除任何文件包括系统核心文件可以修改任何用户的密码可以创建和删除用户可以启动/停止任何服务可以修改网络配置警告root 权限太大了一旦误操作可能直接让系统崩溃所以 Linux 有一个机制普通用户需要 root 授权才能执行特权操作这就是sudo和白名单机制的由来。1.2 su 命令——切换用户身份suSwitch User用于切换用户身份。# 切换到 root需要输入 root 的密码su-# 切换到指定普通用户需要输入该用户的密码su- larry# 查看当前用户身份whoami# 输出larry# 查看当前用户 IDid# 输出uid1000(larry) gid1000(larry) groups1000(larry)su 的常见用法命令含义说明su -切换到 root 并加载 root 环境完全切换推荐使用su - username切换到指定用户切换到其他普通用户su不加-切换到 root 但保留当前环境变量不推荐环境变量混乱exit或Ctrl D退出当前登录回到上一个用户退出 su 回到普通用户1.3 su vs su - ——一个细节坑了无数人这是非常容易混淆的坑点su和su -看起来差不多实际上有本质区别命令行为结果su只切换用户身份保留当前 shell 的环境变量PATH 可能还是普通用户的路径su -切换用户身份同时加载目标用户的完整环境PATH 变成 root 的环境干净切换# 用 su不加 -[larrylocalhost ~]$suPassword: 输入 root 密码[rootlocalhost larry]# echo $PATH# 此时 PATH 仍然是 /home/larry/binroot 的环境没有完全加载# 用 su -加 -[larrylocalhost ~]$su- Password: 输入 root 密码[rootlocalhost ~]# echo $PATH# 此时 PATH 是 /usr/local/sbin:/usr/local/bin:/sbin:/bin:...# root 的完整环境变量已加载结论su - 完全切换切换用户 加载环境推荐使用su 半切换只切换用户不切换环境容易出 bug记忆口诀su -的-代表完整环境就像王婆说媒要完整传递信息不能只传一半。1.4 sudo 命令——临时借用 root 权限sudoSwitch User and DO允许普通用户临时借用 root 权限执行单条命令执行完权限自动收回。# 以 root 身份执行一条命令需要输入当前用户的密码sudoapt-getinstallvim# 以 root 身份编辑系统文件sudovim/etc/hosts# 以 root 身份查看文件sudocat/etc/shadow# shadow 文件普通用户无权查看# 以其他用户身份执行sudo-ularrywhoami# 以 larry 的身份执行 whoamisudo 的工作流程普通用户执行 sudo 命令 → 输入自己密码 → sudo 检查白名单 → 有权限则执行 → 权限自动收回为什么 sudo 用自己的密码而不是 root 密码因为如果 sudo 用 root 密码那普通用户必须知道 root 密码才能执行特权操作这样 root 密码就泄露了。sudo 用当前用户的密码只要用户在白名单里就能临时获取 root 权限——既方便又安全。1.5 白名单机制——谁可以用 sudo普通用户默认不能用 sudo需要管理员把他加入白名单/etc/sudoers。查看当前用户是否有 sudo 权限# 普通用户执行以下命令如果有权限就能看到配置sudo-l添加 sudo 权限的方法# 方法一编辑白名单文件sudovisudo# 在文件中添加一行larryALL(ALL)ALL# 含义larry 用户在所有主机上可以以所有用户身份执行所有命令# 保存退出后larry 就可以使用 sudo 了白名单文件的格式用户名 主机(可切换到的用户) 可执行的命令 larry ALL(ALL) ALL # larry 可以执行所有命令 tom ALL(ALL) /usr/bin/systemctl # tom 只能执行 systemctl常用的白名单配置配置含义安全性larry ALL(ALL) ALLlarry 可以执行所有 sudo 命令需谨慎larry ALL(ALL) NOPASSWD: ALLlarry 执行 sudo 不需要密码危险生产禁用%wheel ALL(ALL) ALLwheel 组的成员都可以用 sudo推荐把用户加入 wheel 组即可# 把用户加入 wheel 组自动获得 sudo 权限CentOS/RHEL 推荐方式sudousermod-aGwheel larry# 把用户加入 sudo 组Ubuntu/Debian 推荐方式sudousermod-aGsudolarry设置用户密码新用户首次使用前必须设置# root 给普通用户设置密码sudopasswdlarry# 普通用户修改自己的密码passwd# 输入当前密码 → 输入新密码 → 确认新密码二、ls -l 输出解读——10 个字符看懂文件权限在 Linux 中用ls -l查看文件详情输出格式如下-rw-r--r--.1root root12346月2718:245.txt10 个字符的含义- rw- r-- r-- │ │ │ │ │ │ │ └── 其他人(other)的权限: r-- │ │ └─────── 所属组(group)的权限: r-- │ └──────────── 拥有者(user)的权限: rw- └──────────────── 文件类型: - 普通文件第一位文件类型字符含义例子-普通文件.txt、.cpp、可执行程序d目录directory文件夹l软链接link快捷方式c字符设备键盘、鼠标b块设备硬盘、U盘p管道进程间通信s套接字网络通信后 9 位权限位3 组 × 3 位位置含义例子rw-r--r--第 2-4 位拥有者(user)权限rw-第 5-7 位所属组(group)权限r--第 8-10 位其他人(other)权限r--三、三类访问者——拥有者、所属组、其他人Linux 把能访问文件的用户分成三类角色英文说明类比拥有者user (u)文件的创建者房主所属组group (g)与拥有者同组的用户家人其他人other (o)既不是拥有者也不在同组路人# 查看文件的拥有者和所属组ls-l5.txt# 输出-rw-r--r--. 1 root root 1234 6月 27 18:24 5.txt# ↑ ↑# 拥有者 所属组为什么要有组想象一个公司开发组成员需要互相访问项目文件但不想让其他部门看到。把开发组成员放到同一个 group设置文件 group 权限为rwxother 权限为---就实现了组内共享、组外隔离。四、rwx 权限详解——读、写、执行4.1 权限匹配机制——Linux 怎么判断你有没有权限在讲 rwx 之前必须先理解Linux 的权限匹配规则Step 1: 判断发起者是谁 ├── 是文件的拥有者→ 匹配 user 权限前 3 位 ├── 是拥有者同组的人→ 匹配 group 权限中 3 位 └── 都不是→ 匹配 other 权限后 3 位 关键规则一旦匹配成功立即停止后面的权限位不再检查举个例子# 文件权限-rwxr--r--# user group other# rwx r-- r--# 场景用户 tom 属于 group1而文件的所属组也是 group1# 但 tom 不是文件的拥有者# 匹配过程# 1. tom 是拥有者吗不是 → 继续# 2. tom 和文件同组吗是→ 匹配 group 权限r--# 3. 停止不再检查 other 权限# 结果tom 只能读不能写不能执行# 即使 other 权限是 r--也是只读但 tom 已经被 group 匹配了坑点**如果拥有者把自己的权限设为---但 group 权限是rwx那么拥有者反而没有权限因为匹配到 user 就停止了不会继续检查 group。4.2 三种权限的含义权限字符对文件的作用对目录的作用读 (read)r读取文件内容列出目录中的文件ls写 (write)w修改/删除文件内容在目录中创建/删除文件执行 (execute)x执行文件程序/脚本进入目录cd4.3 目录权限的坑——r 和 x 的区别这是面试最爱考的坑点权限组合能否ls能否cd能否创建文件r--✅ 能看到文件名❌ 不能进入❌--x❌ 看不到✅ 能进入❌进入后也看不到文件r-x✅ 能看到✅ 能进入❌rw-✅ 能看到❌ 不能进入❌rwx✅ 能看到✅ 能进入✅坑点**只有r没有x→ 能ls看到文件名但cd不进去只有x没有r→ 能cd进去但ls看不到文件需要知道确切文件名才能访问。五、三个关于权限的面试问题问题 1进入一个目录需要什么权限答案需要x执行权限。进入目录的本质是切换当前工作目录到该目录下这需要内核验证你对该目录有执行权限。详细分析权限对目录的作用r读能ls列出目录中的文件名w写能在目录中创建/删除文件x执行能cd进入目录实验验证# 1. 创建一个测试目录mkdirtest_dircdtest_dirtouchfile1.txt file2.txtcd..# 2. 移除目录的 x 权限保留 r 权限chmod644test_dir# r--r--r--# 3. 尝试进入目录lstest_dir# ✅ 能看到 file1.txt file2.txt有 r 权限cdtest_dir# ❌ Permission denied没有 x 权限# 4. 加上 x 权限移除 r 权限chmod100test_dir# --x------# 5. 再次尝试cdtest_dir# ✅ 能进入ls# ❌ Permission denied没有 r 权限看不到文件lsfile1.txt# ✅ 如果你知道文件名可以直接访问结论cd进入目录 → 必须有x权限ls看文件名 → 必须有r权限在目录中创建/删除文件 → 必须有w权限实际应用为什么目录的默认权限是755rwxr-xr-x而不是644因为目录如果没有x权限别人就进不去了所以目录必须给所有人x权限同时用r控制能否看到文件列表。问题 2什么决定了文件或者目录的默认权限这个问题涉及 umask 机制将在后续详细补充。问题 3root 新建的文件普通用户不读不写不执行那么普通用户可以删除吗这个问题涉及 Linux 的删除文件机制不是看文件权限而是看目录权限将在后续详细补充。4.4 权限的二进制表示每个权限位用 1 位二进制表示rwx │││ ││└── x (执行) 1 │└─── w (写) 2 └──── r (读) 4 rwx 4 2 1 7 rw- 4 2 0 6 r-x 4 0 1 5 r-- 4 0 0 4常用权限组合权限二进制八进制含义rwx1117读写执行rw-1106读写r-x1015读执行r--1004只读-wx0113写执行-w-0102只写--x0011只执行---0000无权限六、chmod 指令——修改文件权限6.1 符号模式字母模式chmod[who][operator][permission]文件名选项含义whou(user)、g(group)、o(other)、a(all)operator(添加)、-(移除)、(设置)permissionr(读)、w(写)、x(执行)# 给拥有者添加执行权限chmodux5.txt# 移除拥有者的写权限chmodu-w5.txt# 给所属组添加写权限chmodgw5.txt# 给其他人添加执行权限chmodox5.txt# 设置所有人只有读权限覆盖原有权限chmodar5.txt# 组合操作拥有者读写执行组和其他人只读chmodurwx,gor5.txt6.2 八进制数字模式最常用三位数字分别对应拥有者、所属组、其他人# 最高权限所有人都可读可写可执行测试环境生产禁用chmod7775.txt# 常用拥有者全权限组和其他人只读chmod6445.txt# 可执行程序拥有者全权限组和其他人可读可执行chmod755program# 目录拥有者全权限组和其他人可读可进入chmod755mydir/6.3 常用权限组合速查命令权限位适用场景chmod 777rwxrwxrwx测试环境临时用生产环境禁用chmod 755rwxr-xr-x可执行程序、目录chmod 644rw-r--r--普通文件源代码、文本chmod 600rw-------私密文件密钥、密码chmod 700rwx------个人目录chmod 750rwxr-x---团队共享目录安全警告chmod 777意味着任何人都能改你的文件生产环境中尽量避免。6.4 递归修改目录权限# 修改目录及其所有子文件/子目录的权限chmod-R755mydir/七、chown 指令——修改文件拥有者# 修改文件的拥有者chownstudent5.txt# 同时修改拥有者和所属组chownroot:root5.txt# 只修改所属组拥有者不变chown:student5.txt# 或chgrpstudent5.txt# 递归修改目录及其内容的拥有者chown-Rstudent:student mydir/chown vs chmod 的区别chown改的是这个文件属于谁拥有者/组chmod改的是谁能对这个文件做什么权限位后记Linux 权限管理是系统安全的基石。今天我们深入理解了用户身份体系普通用户 vs root、身份切换su/su -/sudo、以及白名单机制。这些知识点是面试高频考点也是日常运维的必备技能。下一篇文章我们将继续深入 Linux 权限管理探索 umask 默认权限、软链接和硬链接等核心概念。 那么以上就是本次所有的内容了有什么描述不对的、不恰当的地方恳请大佬指正看到后会第一时间修改感谢您的阅读~

相关新闻

C++强大的背后

C++强大的背后

C广泛应用在不同领域,使用者以数百万计。根据近十年的调查,C的流行程度约稳定排行第3位(于C/Java之后)。 C经历长期的实践和演化,才成为今日的样貌。1998年,C标准委员会排除万难,使C成为ISO标准(俗称C98),当…

2026/8/11 9:20:18 阅读更多 →
AI命理软件深度测评:技术如何赋能传统八字排盘与解读

AI命理软件深度测评:技术如何赋能传统八字排盘与解读

1. 项目概述:当AI遇上传统命理,我们到底在测评什么? 最近几年,AI的风吹遍了各行各业,从写代码到做设计,现在这股风终于刮到了“玄学”领域。作为一个对技术趋势和传统文化都抱有兴趣的从业者,我…

2026/8/11 9:20:18 阅读更多 →
《怪物猎人》竞速攻略:单瓶攻击极限爆发策略与资源管理

《怪物猎人》竞速攻略:单瓶攻击极限爆发策略与资源管理

1. 先搞清楚“打电鳐榜”是什么,以及为什么“一个攻击瓶”是关键 如果你在社区或论坛里看到“打电鳐榜,虽然排名有点可惜,但分是真的高,只用了一个攻击瓶”这样的讨论,第一反应可能是好奇:这到底是在玩什么…

2026/8/11 9:19:17 阅读更多 →

最新新闻

不需要投屏主机的无线投屏有哪些

不需要投屏主机的无线投屏有哪些

在传统的会议室场景中,无线投屏往往离不开一台独立的投屏主机或接收盒——设备需要额外供电、连接显示大屏、配置网络,部署起来颇为繁琐。然而,随着技术的演进,不需要投屏主机的无线投屏方案正逐渐成为主流,它们以“即…

2026/8/11 10:14:41 阅读更多 →
进阶指南:AI Agent 究竟是如何同时调用多个大模型的?

进阶指南:AI Agent 究竟是如何同时调用多个大模型的?

摘要单打独斗的 AI 已经过时,未来的 AI Agent(智能体)如何同时调用多个大模型?本文通俗拆解 AI Agent 跨模型调用的三种经典模式——串联接力(Pipeline)、并行动态协作(Voting)与智能…

2026/8/11 10:14:41 阅读更多 →
数据结构:哈希表

数据结构:哈希表

一、哈希表结构体指针数组存放求余后的节点指针头,节点结构体(数据域指针域)二、哈希表的创建对要存放的数据取余,得到数组指针的地址,判断当前位置有没有存有节点头地址,如果没有,就把新节点连…

2026/8/11 10:14:41 阅读更多 →
王成录:创新往往诞生于生态新势力,开源根社区赋能中小团队弯道突围

王成录:创新往往诞生于生态新势力,开源根社区赋能中小团队弯道突围

标签:王成录、M-Robots、开源生态、中小机器人企业、产业创新、技术底座 在媒体访谈中,王成录博士分享了独特的产业观察:颠覆性技术创新很少诞生于行业头部企业,更多来自中小企业、高校实验室与独立开发者,开源根社区&…

2026/8/11 10:14:41 阅读更多 →
零基础自学IT:20天实战经验与学习体系构建

零基础自学IT:20天实战经验与学习体系构建

1. 自学IT的第20天:从零到一的实战复盘 今天是我系统自学IT的第20天,作为一个完全零基础转行的文科生,这20天的学习强度堪比高考冲刺。从连命令行都不敢敲的纯小白,到现在能独立完成简单的Python爬虫和前端页面,这段经…

2026/8/11 10:14:40 阅读更多 →
3分钟学会:如何用Untrunc免费拯救损坏的MP4视频文件

3分钟学会:如何用Untrunc免费拯救损坏的MP4视频文件

3分钟学会:如何用Untrunc免费拯救损坏的MP4视频文件 【免费下载链接】untrunc Restore a damaged (truncated) mp4, m4v, mov, 3gp video. Provided you have a similar not broken video. 项目地址: https://gitcode.com/gh_mirrors/unt/untrunc 你是否曾遇…

2026/8/11 10:13:40 阅读更多 →

日新闻

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/v…

2026/8/11 0:00:02 阅读更多 →
前后端分离项目中控制台与接口工具数据差异排查指南

前后端分离项目中控制台与接口工具数据差异排查指南

1. 问题现象解析:控制台与Apifox的数据差异 最近在调试一个前后端分离项目时,遇到了一个典型问题:后端服务在本地开发环境控制台能正常输出查询数据,但通过Apifox测试时却返回空结果。这种"控制台有数据,接口工具…

2026/8/11 0:00:03 阅读更多 →
AI编程实战:从Claude Code踩坑到游戏开发入门

AI编程实战:从Claude Code踩坑到游戏开发入门

1. 从“AI能帮我做游戏”到“AI让我重新学编程”最近身边不少朋友,尤其是一些非技术背景、但对游戏开发有浓厚兴趣的朋友,都在问我同一个问题:“听说现在用Claude Code这种AI编程工具,小白也能做游戏了,是真的吗&#…

2026/8/11 0:00:03 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/11 1:08:05 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/11 1:08:05 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/11 1:08:05 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/10 17:07:33 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/11 1:08:06 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/10 17:07:33 阅读更多 →