基本权限ACL
ACL意思为访问控制列表,是针对用户,文件或目录的访问控制列表。是在UGO权限基础上为文件系统再提供一个更灵活的权限。
检查当前操作版本是否支持acl
1.命令:grep -i acl /boot/config*
[root@group7 ~]# grep -i acl /boot/config*
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_BTRFS_FS_POSIX_ACL=y
CONFIG_FS_POSIX_ACL=y
CONFIG_GENERIC_ACL=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3_ACL=y
CONFIG_NFS_ACL_SUPPORT=m
CONFIG_CEPH_FS_POSIX_ACL=y
CONFIG_CIFS_ACL=y
2.检查是否安装相应的程序包
命令:rpm -qa |grep ac
[root@group7 ~]# rpm -qa |grep acl
libacl-2.2.51-15.el7.x86_64
acl-2.2.51-15.el7.x86_64
若没有安装过,则需要安装:
yum install nfs4-acl-tools acl lib-acl -y
ACL权限设置
查看文件或文件夹的ACL设置
getfacl file_name/dir_name
[root@group7 home]# getfacl cut.txt
# file: cut.txt
# owner: root
# group: root
user::rw-
group::r--
other::r--
针对一个用户对文件的ACL权限设置
setfacl -m u:user_name:rwx file_name
针对一个组对文件的ACL权限设置
setfacl -m g:group_name:rw file_name
删除一个ACL设置
stefacl -x u:user_name file_name
选项:
-m :设定ACL权限。若给予用户权限,则使用”u:user_name:权限“格式
若给予组权限。则使用”g:组名:权限"格式
-x:删除指定的ACL权限
-b:删除所有ACL权限
-d:设定默认ACL权限,只对目录生效,目录中新建的文件拥有此默认权限
-k:删除默认ACL权限
-R:递归设定ACL权限,设定的ACL权限对目录下的子文件生效
文件特殊权限
1.setUID(SUID)
定义:文件所有者权限中的x权限位,却出现了s权限,这种权限通常称为SUID
限定:只能设置再二进制的可执行程序上,对目录无效。
功能:程序运行时的权限从执行者变为程序所有者的权限
语法:chmod u+s xxx
2.setGID(SGID)
定义:当s权限位于属组的权限时,被称为setGID
限定:既可以给二进制可执行程序设置,也可以给目录设置
功能:再设置SGID权限的目录下建立文件时,新创建的文件的属组会继承上级目录的权限
语法:chmod g+s xxx
[root@group7 home]# chmod g+s nihao
[root@group7 home]# ls -l
drwx------. 2 nike nike 99 Jul 27 10:54 nike
3.stick BIT(SBIT)
定义:意为黏着位,粘滞位,防删除位
限定:只作用于目录
功能:目录下创建的文件只有root,文件创建者,目录所有者才能删除
语法:chmod o+t xxx
[root@group7 home]# chmod o+t bike
[root@group7 home]# ll
drwxr-xr-t. 2 root root 6 Jul 27 14:53 bike
Umask权限掩码
查看默认的权限掩码:umask
[root@group7 home]# umask
0022
umask默认权限由四个八进制数组成
文件和目录的真正权限可以计算获得:
文件(目录)的初始权限 = 文件(目录)的最大默认权限 - umask
文件的最大默认权限:666
目录的最大默认权限:777
修改umask权限:umask xxx