文件权限

 一,基本权限UGO

首先介绍U,G,O这三个字母所代表的含义。
U:owner,属主。
G:group,属组。
O:other,其他用户。
Linux系统通过U,G,O将用户分为三类,并对这三类用户分别设置三种基本权限(rwx),这种设置权限的方式称作UGO方式。
使用ll命令查看文件属性,第1行的第2-10个字符每3个字符为一组,左边3个字符表示属主的权限,中间3个字符表示属组的权限,右边3个字符是其他用户的权限。每组的3个字符的具体含义如下。
r:read(读取),数字设定为4。
w:write(写入),数字设定为2。
x:execute(执行),数字设定为1。

1.1 设置文件属性与权限

为了数据的安全,系统需要给予不同身份的用户,用户组对应的文件权限。下面为三个修改权限的命令,具体如下。

chown:修改文件属主,属组。
chgrp:修改文件属组。
chmod:修改文件权限。
例如,创建文件file2,查看文件当前属主,使用chown命令修改文件的属主,将文件属主root改为qfedu,具体如下。

若只需要更改文件的属组,使用chgrp命令即可,具体如下。

修改文件权限使用chmod命令,设置权限的方式有两种,一种为符号,一种为数字。
符号修改权限是使用u,o,g这3个符号代表属主,属组,其他用户这3种身份,a代表全部身份,r,w,x符号代表读,写,执行,通过赋值符增加,删除,覆盖文件权限。例如,创建文件file,给该文件的属组增加执行权限,具体如下。

同时给所有对象增加读,写,执行权限,在chmod命令后加“a”符号,然后覆盖掉当前全部权限,具体如下。

同时给所有对象删除某一权限,具体如下。

1.2 UGO权限设置

基本权限意义

二、基本权限ACL

UGO权限只针对一个用户,一个组与其他用户,使用上有局限性,ACL主要提供传统的UGO的r,w,x权限之外的具体权限设置,可对单一用户,单一文件或目录进行权限设置。

2.1 ACL基本用法

创建一个文件,使用getfacl命令查看ACL权限,setfacl命令可设置ACL权限,对每一个文件或目录进行更精确的权限设置,添加“-m”参数可以修改当前文件ACL权限。修改用户m下的text.txt文件的读,写权限,当用ll查看文件时,权限字符位最后出现“+”,说明该文件含有ACL权限,具体如下。

2.2 ACL高级特性

1.最大有效权限
mask用来指定最大有效权限。系统给用户赋予的ACL权限需要和mask的权限逻辑“相与”,“相与”之后的权限才是用户的真正权限。
例如,将mask权限设置为“r”,用户权限与其“相与”之后,有效的权限为“r--”,用户真正的权限也就是“r--”,具体如下。

2.mask的作用与特性
mask能临时降低用户或组(除owner和other)的权限,而不是如“setfacl -b”命令删除所有权限。
3.default:继承
default命令可以继承上一目录的权限,先用getfacl命令查看目录dir01的ACL权限,具体如下。

三,高级权限

3.1 SUID权限

使用ll命令查看/usr/bin/passwd文件,第一行的第四个字符为“s”。表示特殊权限SUID,具体如下。

任何用户在执行该文件时,其身份是该文件的属主,在进程文件(二进制,可执行)上增加SUID权限,让本来没有相应权限的用户也可以访问没有权限访问的资源。

3.2 SGID权限

在一个程序上添加SGID,用户在执行过程中会获得该程序用户组的权限(相当于临时加入了程序的用户组)。

3.3 Sticky权限

添加Sticky后,当用户对目录具有w,x权限,在该目录下建立的文件或目录,仅有自己与root才有权删除。
在目录/home下创建dir01,并赋予其777权限,使用m用户在该目录下创建文件file1,再使用tom用户尝试删除file1文件,添加“t”参数后,用户只能删除自己的文件,具体如下。

四,文件属性chattr

为了保护系统文件,Linux系统会使用chattr命令改变文件的隐藏属性。
创建三个文件,使用lsattr命令查看这3个文件的隐藏属性,全部为空,使用chattr命令给file01文件增加“a”属性,具体如下。

五,总结

本次文章主要讲了UGO与ACL的用法,ACL高级特性mask与default的作用,高级权限SUID,SGID,Sticky的意义。

posted @ 2023-11-19 16:29  梦菲如雪  阅读(114)  评论(0)    收藏  举报