Linux的基本权限(ACL)、特殊权限(suid,文件属性和进程掩码umask)

Linux的基本权限(ACL)、特殊权限(suid,文件属性和进程掩码umask)

一、 基本权限ACL

例如一个目录(文件)属主为root,权限为rwx,jishuzu组作为目录(文件)的属组,属组权限为rwx,其他权限为0。若一个人需要rw权限,那么普通权限的三种身份不够用了,无法实现对某个单独的用户设定访问权限,这种情况下,就需要使用 ACL 访问控制权限。

(1) getfacl命令

语法:[[email protected] ~]# getfacl 文件名
Linux的基本权限(ACL)、特殊权限(suid,文件属性和进程掩码umask)

(2) setfacl命令

语法:[[email protected] ~]# setfacl 选项 文件名
Linux的基本权限(ACL)、特殊权限(suid,文件属性和进程掩码umask)

二、 特殊位SUID,GUID

(1) SUID

SUID 特殊权限仅适用于可执行文件,赋予文件权限可以使得用户执行此文件的权限转变为文件属主的权限
例如/usr/bin/cat文件的属主为root,我们无法使用改命令查看/root/下的文件,但若我们给此文件赋予suid权限,则普通用户可以用此命令查看所以root能查看的文件。
语法:chmod u+s 文件路径及名称
Linux的基本权限(ACL)、特殊权限(suid,文件属性和进程掩码umask)

用完之后记得用“chmod u-s 文件路径及名称”去掉权限!!

(2) GUID

此文件夹的属组成员创建的文件和目录的默认属组为此文件的属组。
Linux的基本权限(ACL)、特殊权限(suid,文件属性和进程掩码umask)

三、 文件属性CHATTR

(1) 查看隐藏属性lsattr

使用 chattr 命令配置文件或目录的隐藏属性后,可以使用 lsattr 命令查看。
语法:[[email protected] ~]# lsattr 文件或目录名
Linux的基本权限(ACL)、特殊权限(suid,文件属性和进程掩码umask)

没有隐藏属性

(2) 修改隐藏属性chattr

chattr 命令,专门用来修改文件或目录的隐藏属性,只有 root 用户可以使用。
语法:[[email protected] ~]# chattr [±=] [属性] 文件或目录名
Linux的基本权限(ACL)、特殊权限(suid,文件属性和进程掩码umask)

对照下面属性选项功能可以看出来,此时文件不能被修改,删除等操作。

(3)属性选项和功能

i 如果对文件设置 i 属性,那么不允许对文件进行删除、改名,也不能添加和修改数据;
如果对目录设置 i 属性,那么只能修改目录下文件中的数据,但不允许建立和删除文件;
a 如果对文件设置 a 属性,那么只能在文件中増加数据,但是不能删除和修改数据;
如果对目录设置 a 属性,那么只允许在目录中建立和修改文件,但是不允许删除文件;
u 设置此属性的文件或目录,在删除时,其内容会被保存,以保证后期能够恢复,常用来防止意外删除文件或目录。
s 和 u 相反,删除文件或目录时,会被彻底删除(直接从硬盘上删除,然后用 0 填充所占用的区域),不可恢复。

四、 进程掩码

默认情况下的umask值是022(可以用umask命令查看),此时你建立的文件默认权限是644(6-0,6-2,6-2),建立的目录的默认权限是755(7-0,7-2,7-2)
Linux的基本权限(ACL)、特殊权限(suid,文件属性和进程掩码umask)

同理若将umask改为0011,则新建目录默认权限为755,新建文件默认权限为644。