首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【Linux系统】了解文件权限:看懂rwx与用户管理

【Linux系统】了解文件权限:看懂rwx与用户管理

作者头像
落羽的落羽
发布2025-12-18 19:33:15
发布2025-12-18 19:33:15
2560
举报

在这里插入图片描述
在这里插入图片描述

各位读者大佬好,我是落羽!一个坚持不断学习进步的学生。 如果您觉得我的文章还不错,欢迎多多互三分享交流,一起学习进步! 也欢迎关注我的blog主页: 落羽的落羽

一、用户的分类

Linux的权限,本质是为了更好地进行用户管理!

Linux系统下,可以存在不同用户,分为普通用户和超级用户(root),普通用户可以用adduser 用户名指令进行创建,使用passwd 用户名为其账号设置密码,用userdel 选项 用户 指令删除用户。

  • 超级用户,能在Linux系统下做几乎所有事情,不受限制。
  • 普通用户,受权限约束,只能做有限的事情。

切换用户的命令是su 用户名,root可以随便切换,普通用户切换账号需要对方账号密码。普通用户切换到root的命令是su root(root可以省略),需要root的密码。这种切换用户时,所处的目录不变。写成su - 用户名,是以重新登录系统的形式进行切换。 有些命令只能由root执行,普通用户想要执行,需要在命令前加sudo,表示以超级用户身份运行指令。sudo就是普通账号进行短暂提权的指令。

二、文件权限管理

ls -al指令,能查看一个文件的详细类型和属性,举个例子:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1. 文件访问者的分类

一个文件的访问者身份,可以分为三类:

  • u(user):文件的所有者,一般是这个文件的创建者
  • g(group):文件的所属组的用户
  • o(other):其他用户

注意区别Linux系统的用户和文件访问者的概念,用户是一个具体的人,文件访问者相当于“角色身份”的概念。 想象文件是一家公司,只有“员工”身份能够进入公司。用户张三、李四是员工角色,它们就有访问公司的权限;王五不是员工角色,没有访问公司的权限。

2. 文件的类型和属性

每个文件都有它的属性,用一串字符表示:

在这里插入图片描述
在这里插入图片描述
  • 这个字符串的第一个字符,表示文件的类型
    • d:文件夹
    • -:普通文件(源代码、文本文件、可执行文件等)
    • b:块设备文件
    • p:管道文件
    • c:字符设备文件
    • 等等…
  • 这个字符串的后九个字母,三三为一组,三组从左到右分别是u、g、o用户对该文件的访问权限,每一组基本权限包括:
    • r:读权限。对文件来说,是能读取文件内容;对目录来说,是能浏览该目录下文件的属性。
    • w:写权限。对文件来说,是能修改文件内容;对目录来说,是能新增/删除/移动目录内文件、修改文件名。要删除文件,需要对文件所在目录有w权限,而不一定需要文件本身的w权限。
    • x:执行权限。对文件来说,是能执行文件;对目录来说,是能进入目录的权限。 但是,一个文件要被执行,必须是该文件本身可以被执行,且执行者有可执行权限。
    • -:没有该项权限。

上述文件的属性为drwxrwxr-x,就划分为d rwx rwx r-x,即:这个文件是文件夹类型(d)、u用户对它可读可写可执行(rwx)、g用户对他可读可写可执行(rwx)、o用户对它可读不可写可执行(r-x)。

再来个例子。一个文件的属性是-rw-rw-r--,表示它是一个普通文件,u用户可读可写不可执行,g用户可读可写不可执行,o用户可读不可写不可执行。

除了用字母表示权限,还有一种8进制数值表示法:文件权限分为三类用户,每类用户有三种权限,正好可以用一个八进制位(0-7)来表示。r是4,w是2,x是1,没有对应权限则是0,相加得到该类用户的权限值。比如rwxrwxr-x可以表示为775,rw-rw-r–可以表示为664。

root不受文件的权限约束,相当于拥有所有权限;普通用户才受文件中其对应身份的权限约束!

用户访问文件时,系统要确认用户相对于文件的身份角色,这个过程中权限只会验证一次。比如一个用户既是u也是g,身份从左到右匹配时匹配了u就会结束,用户只能有u的权限,没有g的权限。

3. 文件访问权限的设置

一个文件的用户权限,当然也可以进行修改。

chmod命令,功能是设置文件的访问权限,语法是chmod 选项 权限 文件名,常用选项是R,表示递归修改目录及其下文件。要注意的是,只有文件的拥有者或root才能修改文件的权限

chmod命令权限值的格式是:

  • 用户符号:
    • u:所有者(user)
    • g:所属组(group)
    • o:其他用户(other)
    • a:所有用户(all)
  • 操作符:
    • +:添加权限
    • -:移除权限
    • =:赋予权限

例子:

在这里插入图片描述
在这里插入图片描述

4. 文件访问用户身份的修改

一个文件的所有者、所属组也需要能够修改,只有root才能修改文件的拥有者和所属组!普通用户想要修改需要切换root账号或sudo。

chown命令用于修改文件的拥有者,格式是chown 参数 用户名 文件名(修改文件拥有者)、也可以chown 选项 用户名:所属组名 文件名(同时修改拥有者和所属组)。常用选项是R,表示递归修改。 chgrp命令用于修改文件的所属组,格式是chgrp 选项 用户组名 文件名。常用选项是R,表示递归修改。

在这里插入图片描述
在这里插入图片描述

5. 文件的初始权限

一个文件在创建时,一定会有一个初始的权限值,这个初始的权限值也是可以进行控制的,通过权限掩码进行控制

  • 新建目录的初始权限值 = 0777 - 权限掩码
  • 新建普通文件的初始权限值 = 0666 - 权限掩码
  • 上述公式相当于:假设默认权限是mask,权限掩码是umask,则实际创建的文件权限为mask & ~umask

umask指令,用于查看或修改权限掩码。一般情况下,超级用户默认掩码值为0022,普通用户默认为0002。

在这里插入图片描述
在这里插入图片描述

这就是说,默认情况下,超级用户新建一个目录初始权限值为755(0777 - 0022),新建一个普通文件初始权限值为644(0666 - 0022);普通用户新建一个目录初始权限值为775(0777 - 0002),新建一个普通文件初始权限值为664(0666 - 0002)。

在这里插入图片描述
在这里插入图片描述

有了权限掩码这个概念,我们就可以用umask 权限掩码值设置自己想要的权限掩码值,控制新建文件的初始权限了。但是,这样设置的权限掩码是临时更改的,重新登录系统还会恢复默认值。

在这里插入图片描述
在这里插入图片描述

6. 粘滞位

刚才关于目录的权限问题,我们提到过:要删除文件,需要对文件所在目录有w权限,而不一定需要文件本身的w权限。 但是实际中不太科学啊,一个用户没有一个文件的w权限,但是有其所在目录的w权限,虽然无法修改该文件内容,但是可以直接删掉?为了解决这个问题,Linux又引入了粘滞位的概念。

命令chmod +t 目录名可以为一个目录设置粘滞位,然后这个目录下的文件只能由超级用户、该目录的所有者、文件的所有者删除。其他人无法删除。

在这里插入图片描述
在这里插入图片描述

粘滞位通常用在文件多人共享的场景。

本篇完,感谢阅读!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-12-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、用户的分类
  • 二、文件权限管理
    • 1. 文件访问者的分类
    • 2. 文件的类型和属性
    • 3. 文件访问权限的设置
    • 4. 文件访问用户身份的修改
    • 5. 文件的初始权限
    • 6. 粘滞位
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档