当前位置: 首页 > news >正文

Linux文件权限详细解读

1.文件权限示例

1.1 文件类型(首字符)

最开头的字符表示该文件类型:

d 表示目录文件

- 表示普通文件

l 表示软链接

1.2 权限类型

r 表示read读权限

w 表示write写权限

x 表示excute执行权限

- 表示无此权限

对于普通文件:r=能读文件内容,w能写/修改文件能容,x能运行此文件

对于目录文件:r=能列出该目录下的文件,x=能创建/删除该目录下的文件夹,x=能进入此目录

1.3 权限分组(第2~10字符)

每个文件权限由三个权限分组构成,每个分组权限由三位字符表示:

Owner(文件所有者)权限,由第2/3/4字符表示

Group权限,即与所有者同组的用户权限,由第5/6/7字符表示

Others权限,即其他用户组权限,由第8/9/10字符表示

1.4 目录权限示例

如上图第一行"drwxr-x---"共计10个字符,每一位都有具体的含义:

d 表示该文件类型为目录文件

rwx 表示Owner(文件所有者),拥有r读 w写 x执行(cd进入)的权限

r-x 表示Group权限,拥有r读,x执行(cd进入)的权限

--- 表示Others权限,没有任何权限,不可读/不可写/也进不去,只能看得到

1.5 文件权限示例

如上图第二行"-rw-r--r--"共计10个字符,每一位具体的含义如下:

- 该文件类型为普通文件

rw- 表示Owner有读、写权限,无执行权限

r-- 表示同组用户只有读权限,无写和执行权限

r-- 表示其他用户组只有读权限,无写和执行权限

2. 文件权限的值

2.1 每个组的每一位权限都对应一个数值

基本规则如下:

r = 4

w = 2

x = 1

- = 0

2.2 每组权限是每位权限的位操作之和

rwx = 4+2+1 =7

rw- = 4+2+0 =6

r-x = 4+0+1 =5

r-- = 4+0+0 =4

-wx = 0+2+1 =3

-w- = 0+2+0 =2

--x = 0+0+1 =1

--- = 0+0+0 = 0

2.3 文件的完整权限示例

777 = rwxrwxrwx,表示所有用户拥有可读可写可执行权限,很危险

755 = rwxr-xr-x,表示owner用户可读可写可执行,同组和其他用户组拥有可读和可执行权限

文件的一般数值如下所示:

普通文件默认 644 rw-r--r--

可执行文件/目录默认 755 rwxr-xr-x

私钥文件 600 r-x------

只读文件 400 r--------

3. 文件所有权修改chown

change owner,改变文件的所有者所属用户组

//基本语法如下 chown [新所有者]:[新用户组] 文件名

场景

命令

效果

文件所有者更换

chown yol file.txt

file.txt的所有者改为yol

文件换组

​chown :devteam file.txt

file.txt的所属组改为devteam

所有人和组同时更换

chown yol:devteam file.txt

所有者改yol,组改devteam

递归修改目录

​chown -R yol:yol /home/yol

/home/yol下所有内容都改属主

一个常见坑:用sudo创建的文件,所有者是root,普通用户改不了。记得改完所有权:

sudo cp config.json /etc/myapp/ sudo chown myapp:myapp /etc/myapp/config.json

4. 文件权限修改chmod

chmod = change mode

作用:改变文件/目录的读/写/执行权限

场景命令效果
私有文件chmod 600 file.txt仅自己可读写-rw-------
家目录安全chmod 700 /home/yol仅自己可进入drwx------
脚本可执行chmod 755 script.sh自己可读写执行,其他人只读执行
共享目录chmod 775 /shared同组用户可写,其他人只读

5. chmod 777的危险

chmod 777的意思是:任何人都可以读、写、执行——包括服务器上的所有其他用户和所有运行中的进程。这就是它危险的地方。

# 某开发者遇到权限问题,图省事 chmod 777 /var/www/html/uploads/ # 这意味着: # - 任意用户可以往里写文件 # - Web 服务器进程(www-data)可以往里写任意文件 # - 如果网站有文件上传漏洞,攻击者可以上传 PHP 木马 # - 木马具有执行权限(x),可以直接运行 # - 服务器被拿下

正确做法:

# 只给 Web 服务器用户写权限,其他人不能写 chown www-data:www-data /var/www/html/uploads/ chmod 755 /var/www/html/uploads/ # 或者如果只有 www-data 需要写: chmod 700 /var/www/html/uploads/

最小权限原则:只给必要的权限,不多给一位。

6. SUID

6.1 定义

SUID(Set User ID)是 Linux 权限系统中一个极其特殊且危险的“提权”机制。它允许普通用户临6时借用文件所有者的身份来执行程序,而不是以当前用户的身份执行。

在权限位中,x(执行位)被替换为s,表示“执行 + 特殊权限”。

位置正常权限开启SUID后含义
所有者位-rwx-rwsSUID:执行时变身为文件所有者
组位-rwx-rwsSGID:执行时变身为文件所属组

例如,

# 查看 passwd 命令的权限 ls -l /usr/bin/passwd -rwsr-xr-x 1 root root 59976 Nov 24 14:28 /usr/bin/passwd

逻辑解析

passwd文件属于root,权限是rws(SUID)。

当前用户执行passwd,但实际运行身份root

为什么需要:修改密码需要写入/etc/shadow,这个文件只有 root 可写。如果没有 SUID,用户连改自己密码的权限都没有。

其他常见SUID程序:

sudo:提权工具本身就需要 SUID。
ping:需要 raw socket 权限(通常需 root)。
mount:挂载文件系统。

6.2 SUID的风险

SUID 是 Linux 系统最大的攻击面之一,原因如下:

1提权漏洞放大器

如果 SUID 程序(如sudopasswd)存在代码漏洞,攻击者可以利用漏洞直接获得 root 权限,而不需要知道 root 密码。

2恶意脚本风险

如果某个 SUID 脚本被攻击者控制,任何执行它的人都会自动以 root 身份运行恶意代码。

3权限边界模糊

普通用户可能无意中执行了带有 SUID 的后门程序,导致权限泄露。

6.3 SUID的管理

6.3.1 SUID设置(仅限root操作)

# 方法1:数字(4xxx) chmod 4755 /path/to/program # 4 代表 SUID # 方法2:符号 chmod u+s /path/to/program

安全原则

最小化原则:系统中 SUID 文件越少越安全。

不要给脚本加 SUID:脚本容易被篡改,极其危险。

定期审计:检查是否有未知的 SUID 文件出现。

6.3.2 查找系统中的SUID文件

# 查找所有 SUID 文件 find / -type f -perm /4000 2>/dev/null # 查找 root 拥有的 SUID 文件(高危) find / -type f -user root -perm /4000 2>/dev/null

7. 访问控制列表(Access Control List, ACL)

传统权限只有三组(Owner/Group/Others),遇到这种场景就不够了:

文件属于alice,组是dev。现在需要bob(不在 dev 组)也能读这个文件,但其他所有人不能读。

用传统权限做不到——只能把 Others 的r打开,但那样所有人都能读了。

ACL(Access Control List)解决这个问题,允许为任意用户或组单独设置权限。

7.1 启用ACL

# 检查 /home 分区的挂载选项 mount | grep home # 应包含 acl 字样(如 defaults,acl 或 acl)

7.2 精细化权限分配

# 1. 创建测试目录 mkdir /home/yol/project cd /home/yol/project # 2. 设置基础权限(仅自己可访问) chmod 700 /home/yol/project # 3. 【关键】使用 ACL 添加例外规则 # 语法:setfacl -m u:<用户名>:<权限> <路径> setfacl -m u:alice:rwx /home/yol/project # 给 alice 读写执行 setfacl -m u:bob:r-x /home/yol/project # 给 bob 只读+进入 setfacl -m g:devteam:rwx /home/yol/project # 给 devteam 组全员读写

7.3 权限分配验证

getfacl /home/yol/project

输出示例

# file: /home/yol/project # owner: yol # group: yol user::rwx # 所有者(yol)权限 user:alice:rwx # 【ACL】用户 alice 单独权限 user:bob:r-x # 【ACL】用户 bob 单独权限 group::--- # 所属组(yol)权限 group:devteam:rwx # 【ACL】组 devteam 权限 mask::rwx # 有效权限掩码 other::--- # 其他人权限
http://www.jsqmd.com/news/574031/

相关文章:

  • 2026年4月怎么搭建OpenClaw?本地4分钟零门槛指南及百炼APIKey配置步骤
  • Pixel Fashion Atelier新手教程:RPG式交互界面操作全图解
  • OpenClaw移动办公:iPad远程调用Kimi-VL-A3B-Thinking服务
  • 2026年评价高的热收缩包装机厂家对比推荐 - 品牌宣传支持者
  • 水果网发泡机哪家好?2026EPE发泡设备生产厂家全览:EPE发泡生产线厂家+EPE发泡设备供应商+水果网发泡机厂家深度 - 栗子测评
  • 深入大模型-30-learn-claude-code之第五课Skills技能加载
  • 2026年口碑好的西安混凝土检查井/陕西混凝土检查井精选推荐公司 - 品牌宣传支持者
  • TCA9548A I²C多路复用器原理与嵌入式实战指南
  • 2026年4月OpenClaw怎么部署?阿里云3分钟喂奶级安装及百炼APIKey配置流程
  • Private VLAN与Super VLAN
  • python客户股票交易教学系统的设计与实现
  • PE珍珠棉发泡机哪家好?珍珠棉发泡机哪个品牌好?2026PE珍珠棉发泡机生产厂家+珍珠棉发泡设备供应商全解析 - 栗子测评
  • SSM+JSP动漫网站源码+论文
  • 【回眸】头马演讲备稿演讲框架——出走的莉莉丝
  • AOM vs EOM:激光调制技术选型指南(含带宽测试实战)
  • 从SRCNN到WDSR:图像超分辨率核心演进路径与关键技术剖析
  • OpenClaw邮件自动化:Qwen3-14B分类处理1000+封未读邮件
  • 2025最权威的六大AI论文方案推荐榜单
  • 2026届必备的五大AI辅助写作方案推荐榜单
  • 2026年智能开关贴牌指南:聚焦温州,谁在“速度”与“可靠”上双优? - 2026年企业推荐榜
  • OpenClaw配置备份技巧:Qwen3.5-9B模型迁移无缝衔接方案
  • 经典算法实现:二分查找、全排列与子集生成
  • Windows 使用free-claude-code中转实现 claude code 调用 英伟达NVIDIA API
  • OpenClaw 是基于 Node.js 开发的本地 AI 智能体网关,部署核心是先装 **Node.js ≥ 22**,再用 npm 全局安装并完成配置向导
  • SSM+Vue医院食堂订餐系统源码+论文
  • 保姆级教程:在YOLOv8中手把手集成EMA注意力模块(附完整代码与配置文件)
  • 从CPython 3.12到3.14:我们逆向了217个AOT相关PR,提炼出6个决定编译成功率的核心宏定义(含Py_BUILD_CORE_MODULE与Py_LIMITED_API冲突解决方案)
  • 网站内链布局对SEO有什么影响_网站安全和SSL对SEO的影响是什么
  • OpenClaw安全指南:千问3.5-27B本地化执行权限管控
  • 【STM32】幻尔16路舵机控制板串口协议解析与实战编程