点我

文件权限

尽管在 Linux 系统中一切都是文件,但是每个文件的类型不尽相同,因此 Linux 系统使用了不同的字符来加以区分,常见的字符如下所示

字符说明
-普通文件
d目录文件
l链接文件
b设备文件
c字符设备文件
p管道文件

在 Linux 系统中,每个文件都有所属的所有者和所有组,并且规定了文件的所有者、所有组以及其他人对文件所拥有的可读(r)、可写(w)、可执行(x)等权限。

对于一般文件来说,权限比较容易理解:“可读”表示能够读取文件的实际内容;“可写”表示能够编辑、新增、修改、删除文件的实际内容;“可执行”则表示能够运行一个脚本程序。

对目录文件来说,“可读”表示能够读取目录内的文件列表;“可写”表示能够在目录内新增、删除、重命名文件;而“可执行”则表示能够进入该目录。

文件的读、写、执行权限可以简写为 rwx,亦可分别用数字 4、2、1 来表示,文件所有者,所属组及其他用户权限之间无关联。

文件权限的字符与数字表示
权限分配所有者所有者所有者所属组所属组所属组其他用户其他用户其他用户
权限项执行执行执行
字符表示rwxrwxrwx
数字表示421421421

注意:文件权限的数字法表示基于字符表示(rwx)的权限计算而来,其目的是简化权限的表示。

例如,若某个文件的权限为 7 则代表可读、可写、可执行(4+2+1);若权限为 6 则代表可读、可写(4+2)。现在有这样一个文件,其所有者拥有可读、可写、可执行的权限,其文件所属组拥有可读、可写的权限;而且其他人只有可读的权限。那么,这个文件的权限就是 rwxrw-r--,数字法表示即为 764。

image-20250105052910736

包含了文件的类型、访问权限、所有者(属主)、所属组(属组)、占用的磁盘大小、修改时间和文件名称等信息。

文件的特殊权限

单纯设置文件的 rwx 权限无法满足我们对安全和灵活性的需求,因此便有了 SUID、SGID 与 SBIT 的特殊权限位。这是一种对文件权限进行设置的特殊功能,可以与一般权限同时使用,以弥补一般权限不能实现的功能。

SUID

SUID 是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)。

例如,所有用户都可以执行 passwd 命令来修改自己的用户密码,而用户密码保存在etc/shadow 文件中。仔细查看这个文件就会发现它的默认权限是 000,也就是说除了 root 管理员以外,所有用户都没有查看或编辑该文件的权限。但是,在使用 passwd 命令时如果加上 SUID 特殊权限位,就可让普通用户临时获得程序所有者的身份,把变更的密码信息写入到 shadow 文件中。

image-20250105053810829

特殊权限后将变成大写的 S

image-20250105054012494

SGID

用于让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置)和 在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)。

SGID 的第一种功能是参考 SUID 而设计的,不同点在于执行程序的用户获取的不再是文件所有者的临时权限,而是获取到文件所属组的权限。

chmod

能够用来设置文件或目录的权限

格式:chmod [参数] 权限 文件或者目录名称

如果要把一个文件的权限设置成其所有者可读可写可执行、所属组可读可写、其他人没有任何权限,则相应的字符法表示为 rwxrw----,其对应的数字法表示为 760。

image-20250105054721289

chown

设置文件或目录的所有者和所属组

格式:chown [参数] 所有者:所属组 文件或目录名称

image-20250105054912771

SBIT

SBIT(Sticky Bit)特殊权限位(也可以称之为特殊权限位之粘滞位),SBIT 特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件。

换句话说,当对某个目录设置了 SBIT 粘滞位权限后,那么该目录中的文件就只能被其所有者执行删除操作了。

RHEL 7 系统中的/tmp 作为一个共享文件的目录,默认已经设置了 SBIT 特殊权限位,因此除非是该目录的所有者,否则无法删除这里面的文件。

当目录被设置 SBIT 特殊权限位后,文件的其他人权限部分的 x 执行权限就会被替换成 t 或者 T,原本有 x 执行权限则会写成 t,原本没有 x 执行权限则会被写成 T。

image-20250105055323943

注意:文件能否被删除并不取决于自身的权限,而是看其所在目录是否有写入权限

如果想对其他目录来设置 SBIT 特殊权限位, chmod 命令就可以,对应的参数 o+t 代表设置 SBIT 粘滞位权限

image-20250105055527650

特殊权限-sticky

只作用于目录,目录下创建的文件只有root、文件创建者、目录所有者才能删除。

对系统中的某些目录可以授予这样的权限,此时该目录就遵循该权限规则,如系统中的/tmp目录:

image-20250215142409896

特殊权限ACL

可作用于文件及目录,针对文件和目录授予单个用户的rwx权限。

使用方法:用户test既不是属主也不是属组,但是需要允许用户test能够对该对象有rwx的权限,其他用户无权限。

示例:

  • setfacl -R -m d:u:test:rwx test //文件夹
  • setfacl -m u:wangwu:rwx test //文件

参数解读

参数作用
-R递归授权
-m修改acl权限
d只对后续新对象继承该权限
u表用户
test表示授权用户的名称
分类: Linux

评论

-- 评论已关闭 --

目录