Linux | 文件权限

发布于:2025-07-30 ⋅ 阅读:(22) ⋅ 点赞:(0)

一. 文件权限的基本概念

        Linux 是多用户、多任务操作系统,为了区分不同用户对文件的操作权限,引入了用户身份权限类型的概念

  • 用户身份分类
    • 所有者(Owner):创建文件 / 目录的用户,对文件拥有最高控制权。
    • 所属组(Group):文件所属的用户组,组内用户共享部分权限。
    • 其他人(Others):既不是所有者也不在所属组的其他用户。
  • 权限类型
    • 读取(r):允许查看文件内容(对目录而言,允许列出目录内的文件)。
    • 写入(w):允许修改文件内容(对目录而言,允许创建、删除、重命名目录内文件)。
    • 执行(x):允许运行可执行文件(对目录而言,允许进入该目录)。

二. 权限的表示方式

2.1 符号表示法

        通过 r(读取)、w(写入)、x(执行)和 -(无权限)组成。一共有10个字符,第一个代表文件类型。从第二个符号开始 ,每组三个字符,一共有三组,分别代表所有者、所属组、其他人的权限

        举例:-rwxr-xr--

  • 文件类型:-(-表示普通文件,d表示目录,l表示软链接)。
  • 所有者(2-4):rwx(可读、可写、可执行)
  • 所属组(5-7):r-x (可读、不写、可执行)
  • 其他人(8-10):r-- (只读,不写、不执行)

2.2 符号表示法的特殊权限

        特殊权限:用 s、t 代替对应权限位中的x

  • Set UID(SUID,4000)
    • 仅对可执行文件有效,当用户执行设置了 SUID 的文件时,会临时获得该文件所有者的权限(而非执行者自身的权限)。
    • 执行结束后,权限自动恢复为用户原有权限。
    • s 代替第4位的 x
  • Set GID(SGID,2000)
    • 对可执行文件:执行文件时,临时获得文件所属组的权限(类似 SUID,但针对组)。
    • 对目录:在该目录下新建的文件或子目录,会自动继承目录的所属组(而非创建者的默认组),确保组内权限一致性。
    • s 代替第7位的 x
  • Sticky Bit(粘滞位,1000)
    • 目录内的文件只能被其所有者或 root 删除,其他用户即使对目录有w权限,也不能删除他人文件。
    • t 代替第10位的 x

2.3 数字表示法 

        用数字代表权限,每个权限对应一个数值,求和表示组合权限。r = 4 , w = 2 , x = 1 , - = 0 ,从第二位开始,每三个数相加:

举例:-rwxr-xr-- ,权限则是754(4+2+1=7,4+0+1=5,4+0+0=4)

2.4 数字表示法的特殊权限

        Linux权限的数字表示法中一共有4个数字,第一位表示特殊权限,后三位表示基础权限。通过2.2可知 SUID是4000 ,SGID是2000,Sticky Bit是1000。

举例:

  • 4755 = 4000 + 755 : -rwsr-xr-x ,第4位的x改为s
  • 2770 = 2000 + 770 : -rwxrws--- ,第7位的x改为s
  • 1777 = 1000 + 777 : -rwxrwxrwt ,第10位的x改为t


网站公告

今日签到

点亮在社区的每一天
去签到