Linux 文件权限超详细详解(读懂权限标识、数字权限、特殊权限、chmod/chown)

🏷️ 标签:Linux 文件权限 chmod chown 权限管理 运维入门 📝 适用人群:Linux 初学者、运维、后端开发、计算机专业实训、面试复习 💡 文章亮点:零基础吃透 Linux 文件权限,包含权限原理、rwx 含义、字符 / 数字权限、所有者所属组、chmod、chown、特殊权限、默认权限 umask,内容全面可直接发布 CSDN


一、前言

Linux 和 Windows 最大区别之一就是 严格的文件权限管理

在 Linux 中,一切皆文件 ,普通文件、目录、脚本、硬件设备、进程配置都有权限控制。 权限决定:谁能读、谁能写、谁能执行

如果不懂权限:

  • 程序运行提示权限不足
  • 网站无法访问文件
  • 数据库目录报错
  • 多人服务器文件泄露

本文带你从零彻底吃透 Linux 文件权限,全覆盖无死角。


二、Linux 权限基本概念

2.1 权限针对三类用户

Linux 把文件访问者分为 3 种身份

  1. 所有者(user /u):文件创建者、拥有者
  2. 所属组(group /g):同组所有用户
  3. 其他用户(other /o):既不是所有者、也不在所属组的其他所有人

任何一个文件权限,都是分别给 u、g、o 三类人设置。

2.2 三种基础权限

每一类用户都有三种权限:

权限 字符 作用(文件) 作用(目录)
r 查看文件内容 列出目录里的文件
w 修改、编辑文件 在目录中新建 / 删除 / 改名文件
执行 x 运行脚本、程序 进入目录、切换到目录

重点记忆:

  • 文件 r:看内容
  • 目录 r:看列表
  • 文件 x:能运行
  • 目录 x:能进入

三、查看文件权限

执行:

复制代码
ls -l

示例输出:

复制代码
-rwxr--r--  1 root root  128  6月 10 test.sh

权限字段拆解

第一位:文件类型

  • - 普通文件
  • d 目录
  • l 软链接
  • b/c 设备文件

后面 9 位分为 3 组:

复制代码
rwx  r--  r--
  u    g    o
  • 前 3 位:所有者 u 权限
  • 中间 3 位:所属组 g 权限
  • 后 3 位:其他用户 o 权限

四、字符权限与数字权限(核心)

4.1 字符权限表示

复制代码
rwx r-x ---

4.2 数字权限(八进制)

权限对应数值:

  • r = 4
  • w = 2
  • x = 1

每一组权限求和:

示例:

  • rwx = 4+2+1 = 7
  • r-x = 4+0+1 = 5
  • r-- = 4+0+0 = 4
  • --- = 0

4.3 常见权限对照表

字符权限 数字权限 说明
rwxrwxrwx 777 所有人完全控制(慎用)
rwxr-xr-x 755 所有者可读写执行,其他人只读执行
rw-r--r-- 644 普通文件最常用
rwx------ 700 仅自己可访问,安全私密
rw------- 600 私密配置文件

企业默认规范:

  • 普通文件:644
  • 目录 / 脚本:755
  • 私密配置:600 / 700

五、修改权限 chmod 命令

5.1 字符方式修改

复制代码
# 给所有者增加执行权限
chmod u+x test.sh

# 取消组写权限
chmod g-w test.sh

# 其他用户增加读权限
chmod o+r test.sh

# 所有用户加执行
chmod a+x test.sh

5.2 数字方式修改(最常用)

复制代码
chmod 755 test.sh
chmod 644 config.txt
chmod 700 私密目录

5.3 递归修改目录所有文件

复制代码
chmod -R 755 /home/www

六、修改所有者和所属组 chown

6.1 修改文件所有者

复制代码
chown user1 test.txt

6.2 修改所属组

复制代码
chgrp group1 test.txt

6.3 同时改所有者 + 所属组

复制代码
chown user1:group1 test.txt

6.4 递归修改目录所有文件

复制代码
chown -R user1:group1 /home/www

七、文件所有者、所属组 是谁?

  1. 谁创建文件,谁就是所有者
  2. 默认所属组是当前用户初始组
  3. root 可以修改任何文件权限
  4. 普通用户不能把文件转给别人

八、目录权限特殊说明

目录权限和文件不一样,重点:

  • r :可以 ls 列出目录内容
  • w:可以在目录下新建、删除、改名文件
  • x :可以 cd 进入目录

常见误区: 目录有 w 权限,就能删除里面的文件,哪怕文件本身没有写权限。


九、Linux 特殊权限(进阶)

除了 rwx,还有三个特殊权限:

9.1 SUID 临时继承所有者权限

  • 作用:普通用户执行时临时拥有文件所有者权限
  • 数字:4xxx
  • 例如:passwd 命令

9.2 SGID 继承目录所属组

  • 作用:目录下新建文件自动继承目录所属组
  • 数字:2xxx

9.3 粘滞位 SBIT

  • 作用:目录内文件只能自己删自己
  • 典型:/tmp 临时目录
  • 数字:1xxx

十、默认权限与 umask

10.1 什么是 umask

新建文件 / 目录时,默认权限由 umask 控制

默认:

  • 普通文件初始最大权限:666
  • 目录初始最大权限:777

减去 umask 得到最终权限。

10.2 查看 umask

复制代码
umask

10.3 示例

umask 为 022

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

正是企业最常用默认权限。


十一、常见权限故障排查

  1. 程序提示 Permission denied
    • 检查文件是否有 x 执行权限
  2. 网页无法访问文件
    • 给目录 755、文件 644
  3. 无法进入目录
    • 缺少 x 权限
  4. 能看文件内容但不能删除
    • 文件本身无 w,但上级目录有 w 仍可删除

十二、权限最佳实践(生产规范)

  1. 普通文件统一 644
  2. 目录、脚本统一 755
  3. 配置、密码文件设 600
  4. 禁止随意给 777 权限(安全隐患)
  5. 网站目录归属 www 用户
  6. 多用 chown -R 统一授权

十三、总结

  1. Linux 权限分三类用户:所有者 u、所属组 g、其他 o
  2. 基础权限:r 读、w 写、x 执行
  3. 权限有 字符表示、数字八进制表示
  4. chmod 修改权限,chown 修改归属
  5. 目录 rwx 含义和文件不同
  6. 理解 755、644、700 常用权限
  7. 特殊权限:SUID、SGID、粘滞位
  8. umask 控制新建文件默认权限

掌握本文,彻底搞定 Linux 文件权限,日常运维、部署项目、面试完全够用。


版权声明

本文为原创 Linux 文件权限超详细教程,CSDN 首发,内容全面适合学习、实训、作业、面试复习,禁止未经授权转载抄袭。

相关推荐
qq3186929962 小时前
ThinkPHP + Supervisor 队列任务丢失:僵尸 Worker 排查全记录
服务器·thinkphp·宝塔
Plastic garden2 小时前
Docker(3)Docker 镜像 & Dockerfile
运维·docker·容器
console.log('npc')2 小时前
Windows试用期重置工具,纯官方 / 安全教程
运维·自动化·typora·脚本
月夜的风吹雨2 小时前
Linux 基础开发工具详解:从 yum 到 gdb 实战指南
linux·git·ubuntu·centos·vim
小马爱打代码2 小时前
MySQL高可用与扩展:主从复制、读写分离、分库分表
服务器·数据库·mysql
DeeplyMind2 小时前
Linux 内核日志级别kern_levels与 dmesg 用法
linux·dmesg
Shingmc32 小时前
【Linux】多路转接之epoll
linux·运维·服务器·开发语言·网络
心满意足的大脸猫2 小时前
Win11 开启 SSH 服务器与密钥登录配置记录
服务器·microsoft·ssh
Cat_Rocky2 小时前
Jenkins通过kubernetes连接K8s集群
运维·kubernetes·jenkins