ACL权限
解决所有者,所属组身份不足的问题。
查看分区ACL权限是否开启
命令:dumpe2fs -h /dev/sds3
dumpe2fs 命令是查询指定分区想起文件系统的命令
选项:
-h :仅显示超级块中信息,而不显示磁盘块组的详细信息
使用df命令查看系统分区
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda5 16G 3.2G 12G 22% /
tmpfs 939M 0 939M 0% /dev/shm
/dev/sda1 194M 34M 151M 19% /boot
/dev/sda2 2.0G 35M 1.8G 2% /home
[root@localhost ~]# dumpe2fs -h /dev/sda5
dumpe2fs 1.41.12 (17-May-2010)
Filesystem volume name: <none>
Last mounted on: /
Filesystem UUID: e4f2fb54-fb7c-4f5e-ba3b-c4f33c1aee82
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl #支持acl
....
...
临时开启分区ACL权限
命令:mount -o remount,acl/
重新挂载根分区,并加入acl权限
永久开启分区ACL权限
命令:vi /etc/fstab
命令2:mount -o remount /
重新挂载文件系统或重启系统,使修改生效
查看/设定
查看
命令:getfacle 文件名
查看acl权限
设定
格式:setfacl 选项 文件名
选项:
-m :设定acl权限
-x : 删除指定的acl权限
-b : 删除所有的acl权限
-d : 设定默认acl权限
-k :删除默认acl权限
-R :递归设定acl权限
[root@localhost ~]# setfacl -m u:st:rx /project/
[root@localhost ~]#
说明:给用户st赋予r-x权限,使用“u:用户名:权限”格式
[root@localhost ~]# getfacl /project/
getfacl: Removing leading '/' from absolute path names
# file: project/
# owner: root
# group: tgroup
user::rwx
user:st:r-x
group::rwx
mask::rwx
other::---
#切换用户/测试
[root@localhost ~]# su - st
[st@localhost ~]$ cd /project/
[st@localhost project]$ touch abc
touch: 无法创建"abc": 权限不够
[st@localhost project]$
[root@localhost ~]#
给用户组设定ACL权限
[root@localhost ~]# groupadd tgroup2
[root@localhost ~]# setfacl -m g:tgroup2:rwx /project/
[root@localhost ~]#
为组tgroup2分配acl权限,使用“g:组名:权限”格式
查看
[root@localhost ~]# getfacl /project/
getfacl: Removing leading '/' from absolute path names
# file: project/
# owner: root
# group: tgroup
user::rwx
user:st:r-x
group::rwx
group:tgroup2:rwx
mask::rwx
other::---
[root@localhost ~]#
最大有效权限与删除ACL权限
最大有效权限
格式:setfacl -m m:rx 文件名
设定mask权限为r-x。使用“m:权限”格式
用户权限跟最大权限相与的方式,得到真实权限
[root@localhost ~]# getfacl /project/
getfacl: Removing leading '/' from absolute path names
# file: project/
# owner: root
# group: tgroup
user::rwx
user:st:r-x
group::rwx #effective:r-x
group:tgroup2:rwx #effective:r-x
mask::r-x
other::---
[root@localhost ~]#
删除ACL权限
格式:setfacl -x u:用户名 文件名
删除指定用户的acl权限
格式:setfacl -x g:组名 文件名
删除指定用户组的ACL权限
格式:setfacl -b 文件名
会删除文件的所有的acl权限
默认ACL权限和递归ACL权限
递归ACL权限
递归是父目录再设定ACL权限时,所有的子文件和子目录也会拥有相同的ACL权限
格式:setfacl -m u:用户名:权限 -R 文件名
只能赋予目录
默认ACL权限
默认ACL权限的作用是如果给父目录设定可默认ACL权限,那么父目录中所有新建的子文件都会继承父目录的ACL权限。
只针对新创建的目录,原有的文件需要用递归的方式进行添加
只能是目录
格式:setfacl -m d:u:用户名:权限 文件名