Plantre Plantre
首页
后端
技术
硬件
  • 前端文章

    • HTML
    • CSS
    • JavaScript
  • 技术

    • 技术文档
    • GitHub技巧
    • Nodejs
    • 博客搭建
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

plantre

一个后端开发者
首页
后端
技术
硬件
  • 前端文章

    • HTML
    • CSS
    • JavaScript
  • 技术

    • 技术文档
    • GitHub技巧
    • Nodejs
    • 博客搭建
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 虚拟化

  • Git

  • 可视化

  • Linux

    • Linux 系统中常见目录符号
    • nohub启动jar并保存日志到文件
    • Linux添加SSH公钥
    • ssh命令常用场景详解
    • lvm是什么,和文件系统什么关系,windows下有吗
    • linux查询某个文件夹大小
    • linux删除某个文件夹
    • linux根目录下的文件夹解析
    • linux的文件权限解析
    • dev-null是什么
    • 2&1是什么意思
    • .ssh下有哪些文件,分别有什么作用
    • known_hosts具体举例说明
    • 非对称加密原理和真实数据举例
    • 查询linux端口是否占用
    • 若 SELinux 处于 Enforcing 模式,需在挂载路径后添加 Z是什么意思
    • linux查看每个进程内存大小
    • 分辨文件的种类
  • 远程串流等

  • SWF

  • 网络

  • 网站收藏
  • 技术
  • Linux
plantre
2025-05-13

linux的文件权限解析

以下是 Linux 文件权限的深度解析,结合权限模型、管理命令及安全实践整理:


一、权限基础模型

  1. 用户分类
    Linux 权限基于三类用户划分:
    • 所有者(User):文件创建者,拥有最高控制权。

    • 所属组(Group):与所有者同组的用户,共享部分权限。

    • 其他用户(Others):系统内的其他非关联用户。

    示例:-rwxr-xr-- 表示所有者可读/写/执行,同组用户可读/执行,其他用户仅可读。

  2. 权限类型
    每个用户类别分配三种权限:
    • 读(r):文件可查看内容,目录可列出文件列表。

    • 写(w):文件可修改内容,目录可创建/删除文件。

    • 执行(x):文件可运行程序,目录可进入访问。

    注意:目录的写权限需配合执行权限才能生效。


二、权限表示方法

  1. 符号模式
    使用 r、w、x 表示权限,通过 u(所有者)、g(组)、o(其他用户)指定操作对象:

    chmod u+x file.txt  # 为所有者添加执行权限
    chmod go-w file.txt # 移除组和其他用户的写权限
    
    1
    2
  2. 数字模式
    将权限转换为八进制数字(r=4,w=2,x=1),组合后三位数分别对应所有者、组、其他用户:
    • 755 → rwxr-xr-x

    • 644 → rw-r--r--

    示例:chmod 755 script.sh 赋予所有者完全权限,其他用户仅可读/执行。


三、特殊权限位

  1. SetUID(suid)
    • 作用:执行文件时继承所有者权限(如 /usr/bin/passwd)。

    • 设置:chmod u+s file 或数字模式前缀 4(如 4755)。

  2. SetGID(sgid)
    • 作用:目录下新建文件继承父目录的组权限(常用于共享项目)。

    • 设置:chmod g+s dir 或数字模式前缀 2(如 2775)。

  3. Sticky Bit(粘滞位)
    • 作用:目录内文件仅所有者可删除(如 /tmp 目录)。

    • 设置:chmod o+t dir 或数字模式前缀 1(如 1777)。


四、权限管理命令

  1. chmod
    修改文件或目录权限:
    • -R:递归修改目录及子内容权限。

    chmod -R 755 /opt/app  # 递归设置目录权限
    
    1
  2. chown
    修改文件所有者及所属组:

    chown user:group file  # 同时修改所有者和组
    chown -R root:admin /data  # 递归修改目录归属
    
    1
    2
  3. chgrp
    仅修改文件所属组:

    chgrp developers project/  # 将目录组设为developers
    
    1
  4. umask
    控制新建文件/目录的默认权限:
    • 文件默认权限:666 - umask(如 umask=022 → 文件权限644)。

    • 目录默认权限:777 - umask(如 umask=022 → 目录权限755)。

    配置:通过 umask 027 临时修改,或写入 /etc/profile 永久生效。


五、安全实践建议

  1. 最小权限原则
    • 避免滥用 777 权限,优先赋予精确权限(如 755 或 750)。

    • 敏感文件(如 SSH 密钥)应设置为 600,仅所有者可读写。

  2. 特殊权限谨慎使用
    • SetUID 程序需严格审核,防止提权漏洞(如恶意脚本拥有 root 权限)。

    • Sticky Bit 用于共享目录(如 /var/tmp)防止用户误删他人文件。

  3. 定期审计权限
    • 使用 find 命令扫描异常权限文件:

    find / -perm -4000  # 查找所有SetUID文件
    find / -perm -o+w   # 查找全局可写文件
    
    1
    2

六、权限查看与调试

  1. ls -l 输出解析
    • 示例:-rwxr-xr-- 1 root dev 4096 Apr 24 10:00 script.sh

    ◦ 文件类型:- 普通文件,d 目录,l 符号链接。

    ◦ 权限位:第2-4位所有者,5-7位组,8-10位其他用户。

  2. 调试权限问题
    • 若无法访问目录,检查是否缺少 x 权限。

    • 使用 getfacl 查看扩展 ACL 权限(如 NFS 共享场景)。


通过合理配置权限,可有效提升系统安全性。建议结合具体场景选择权限策略,并定期审查关键目录(如 /etc、/var/log)的权限设置。

编辑 (opens new window)
上次更新: 2025/06/10, 09:18:05
linux根目录下的文件夹解析
dev-null是什么

← linux根目录下的文件夹解析 dev-null是什么→

最近更新
01
集成loki
07-04
02
TCP的ESTABLISHED是什么意思
06-24
03
安装1panel
06-24
更多文章>
Theme by Vdoing | Copyright © 2025-2025 plantre | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式