1.Linux基本权限ACL
1.检查是否支持ACL
命令:grep -i acl /boot/config*
[root@zcfmini7 /]# 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.检查所需的程序包。
开始处理ACL之前,要确保你已安装了所需要的程序包。
命令:rpm -qa |grep acl
[root@zcfmini7 /]# 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
3.ACL权限设置
查看一个文件/文件夹的Acl设置: getfacl filename/dirname
针对一个用户对文件进行ACL设置: setfacl -m u:username:rwx filename
针对一个组对文件进行ACL设置: setfacl –m g:groupname:rw filename
删除一个ACL设置: setfacl –x u:username filename
参数:
-m:设定 ACL 权限。如果是给予用户 ACL 权限,则使用"u:用户名:权限"格式赋予; 如果是给予组 ACL 权限,则使用"g:组名:权限" 格式赋予;
-x:删除指定的 ACL 权限;
-b:删除所有的 ACL 权限;
-d:设定默认 ACL 权限。只对目录生效,指目录中新建立的文件拥有此默认权限;
-k:删除默认 ACL 权限;
-R:递归设定 ACL 权限。指设定的 ACL 权限会对目录下的所有子文件生效;
2.特殊文件权限
1.SUID
定义:文件所有者权限中的x权限位,却出现了s权限,此种权限通常称为SetUID,简称 SUID 特殊权限。
功能:程序运行时的权限从执行者变更成程序所有者的权限。
作用:1.SUID权限仅对二进制程序有效;
2.执行者对于执行该程序需要有x的可执行权限;
3.本权限仅在执行该程序的过程有效;
4.执行者将具有该程序拥有者的权限;
目的:让本来没有相应权限的用户运行这个程序,可以访问他没有权限访问的资源。
命令: chmod u+s 文件名
2.SGID
当s权限位于所属组的x权限位时,就被称为SGID特殊权限。
限定:既可以给二进制可执行程序设置,也可以给目录设置。
功能:在设置了SGID权限的目录下建立文件时,新创建的文件的所属组会继承上级目录的权限。
命令:chmod g+s 文件名
3.SBIT
SBIT可意为粘着位,粘滞位,防删除位等。
限定:只作用目录
功能:目录下创建的文件只有root,文件创建者,目录所有者才能删除。
命令:chmod o+t 文件名
3.权限掩码umask
命令:umask
umask -s