【Linux】权限管理-ACL

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:用户名:权限 文件名

猜你喜欢

转载自blog.csdn.net/w309827333/article/details/80526762