news 2026/6/15 17:34:08

linux文件权限深入了解(下)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
linux文件权限深入了解(下)

1.删除文件的权限逻辑

结论:删除文件,看「文件所在父目录」的 w 权限,和文件本身的 w 权限无关

实战验证:
创建目录 + 文件

mkdir test_dir touch test_dir/file.txt

设置目录权限为 777(所有用户有 w 权限),文件权限 644(其他用户无 w)

chmod 777 test_dir/ chmod 644 test_dir/file.txt

切换为普通用户,执行:

# 能删除文件(父目录有 w) rm test_dir/file.txt # 不能编辑文件内容(文件本身无 w) vim test_dir/file.txt

现象:能删文件,但不能改文件内容。

案例 1:文件只读,父目录权限正常 → 可以删除:
# 创建目录与文件 mkdir dir1 touch dir1/a.txt # 父目录:rwxr-xr-x(有w、有x);文件:仅只读,无写权限 chmod 755 dir1 chmod 444 dir1/a.txt # 测试1:修改文件内容 → 失败(文件无w权限) echo 123 > dir1/a.txt # Permission denied # 测试2:删除文件 → 成功(只看父目录w+x) rm dir1/a.txt
案例 2:文件全开权限,父目录无 w → 无法删除:
mkdir dir2 touch dir2/b.txt chmod 555 dir2 # 目录 r-x,去掉w权限 chmod 777 dir2/b.txt # 文件开放所有权限 rm dir2/b.txt # 报错 Permission denied

案例 3:目录有 w、无 x → 无法删除(缺失准入权限):

mkdir dir3 touch dir3/c.txt chmod 666 dir3 # 目录 rw-:有w,无x ls dir3 # 能看到文件名(目录有r权限) cd dir3 # 无法进入(无x) rm dir3/c.txt # 无法删除(无x,不能访问目录条目)

2.默认权限:umask 权限掩码

新建文件 / 目录的默认权限由umask决定,系统默认umask=022。 计算规则:

  1. 目录最大权限777- umask = 目录默认权限
  2. 文件最大权限666(文件默认无执行位) - umask = 文件默认权限

默认umask 022计算:

  • 目录:777 - 022 =755
  • 文件:666 - 022 =644

和我们日常看到的默认权限完全一致。

查看 / 临时修改掩码:

umask # 查看当前掩码 umask 007 # 临时修改掩码为 007

3.白名单配置

一开始我们进入自己的服务器上时,一般都是以root(超级用户) 用户登录的。root用户有可以随意查看其他用户的文件的权限。但是其他用户想要root权限的话就需要进行sudo(免密执行命令)这个用户能够执行这个命令的前提是他在服务器的白名单上。

让特定用户无需密码执行 sudo 命令,通过 visudo 编辑安全的 sudo 配置:

# 1. 安全编辑sudoers文件(必须用visudo,避免语法错误) sudo visudo # 2. 添加规则(根据需求选一种) # 方式1:允许user1无密码执行所有命令 user1 ALL=(ALL) NOPASSWD: ALL # 方式2:仅允许user2无密码执行特定命令(推荐) user2 ALL=(ALL) NOPASSWD: /bin/systemctl restart nginx, /usr/bin/lsblk # 3. 保存退出(vi/vim按Esc,输入:wq回车)

4.权限 “一次确认”:文件执行的匹配规则

Linux 内核按固定顺序匹配权限,找到第一个匹配项后立即停止检查,不再看后续权限位

1. 核心匹配顺序

内核检查权限时严格遵循以下优先级,匹配即停止

  1. root 用户特权:如果进程 EUID=0(root),直接拥有所有权限,跳过后续检查

  2. 属主匹配:进程 EUID 与文件所有者 UID 一致 → 仅应用属主 (u) 权限,忽略组和其他权限

  3. 属组匹配:进程 EGID 或附加组 GID 与文件所属组 GID 一致 → 仅应用属组 (g) 权限,忽略其他权限

  4. 其他匹配:前两项都不匹配 → 应用其他用户 (o) 权限

# 创建文件,属主alice,属组dev,权限640(u=rw-, g=r--, o=---) sudo touch test.txt sudo chown alice:dev test.txt sudo chmod 640 test.txt # 用alice用户操作(属主匹配,只看u权限) su - alice echo "test" > test.txt # 成功(u有w权限) exit # 用dev组其他用户操作(属组匹配,只看g权限) su - charlie # charlie属于dev组 echo "test" > test.txt # 失败(g无w权限) cat test.txt # 成功(g有r权限) exit

权限匹配的 “不叠加” 原则:

# 创建文件,权限u=r--, g=rwx, o=--- touch test2.txt chmod 470 test2.txt # 用文件所有者操作(只看u权限,即使g权限更开放) cat test2.txt # 成功(u有r) echo "123" > test2.txt # 失败(u无w) ./test2.txt # 失败(u无x)
谢谢
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/11 4:06:42

嵌入式音频开发实战:基于Kinetis K22F的I2S/SAI时序分析与稳定设计

1. 项目概述:从时序表到可落地的音频接口设计搞嵌入式音频开发,尤其是用MCU的I2S或SAI接口去接各种Codec、DAC或数字麦克风时,最让人头疼的往往不是驱动能不能跑起来,而是音频数据时不时出现的“爆音”、断续或者根本不出声。这些…

作者头像 李华
网站建设 2026/6/12 4:36:32

保姆级攻略:PTA团体程序设计天梯赛L3高频考点解析与针对性训练建议

PTA天梯赛L3满分攻略:高频算法考点精析与科学训练体系1. 赛事认知与L3级别能力画像参加过PTA天梯赛的选手都清楚,L3级别是区分普通选手与顶尖选手的关键分水岭。这个阶段的题目往往融合了数据结构、经典算法和实际问题建模的多重考验。从近年真题来看&am…

作者头像 李华
网站建设 2026/6/12 7:18:53

4大核心技术重塑游戏登录体验:MHY扫码登录器的革命性突破

4大核心技术重塑游戏登录体验:MHY扫码登录器的革命性突破 【免费下载链接】MHY_Scanner MHY扫码登录器,支持从直播流抢码。 项目地址: https://gitcode.com/gh_mirrors/mh/MHY_Scanner MHY_Scanner是一款专为米哈游游戏玩家设计的Windows平台扫码…

作者头像 李华
网站建设 2026/6/12 10:14:20

OpenCV透视变换原理与实战:4个点校正图像畸变

1. 项目概述:一张照片里的“空间魔术”,到底在变什么?你有没有试过把手机拍的一张斜着的白板照片,直接拖进PPT里——结果整块白板歪得像被风吹斜的晾衣绳?或者在修图软件里拉直一张倾斜的建筑立面,却发现边…

作者头像 李华