28、ACL权限

acl权限介绍

规定有一个权限,在一个班级内,有老师、学生、试听学生、其他班级四个角色。

acl权限用来处理特殊的权限设置,比如在规定情境中,老师是所有者,可以有讲课文件的所有权限、学生需要进行课堂练习,也有讲课文件的所有权限,其他班级的人没有任何权限,但是试听学生只有读的权限,像这种除了所有者,所属组,其他人的权限外,还需要额外进行其他单个用户或者组的权限设置,这个时候需要用到acl权限。情况有点类似于windows中的权限设置!

acl权限开启

acl权限设置能否设置取决于分区是否支持acl权限。
df -h命令查看系统有哪些分区。

dumpe2fs -h /dev/sda2 查看分区详情,Default mount options项可以查看分区是否支持acl,如果不支持可以执行 mount -o remount,acl来临时重新挂载分区支持acl权限,如需要永久开启acl权限,可以修改/etc/fstab(开机自动挂载文件)文件中的关于要操作的分区后的defaults加入,acl权限,现在一般defaults都支持acl,所以不需要手动修改来进行配置!这个文件如果改错可能会导致开机启动不了,所以谨慎修改

[root@bogon root]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       9.8G  1.3G  8.0G  14% /
tmpfs           504M     0  504M   0% /dev/shm
/dev/sda1       190M   25M  156M  14% /boot
/dev/sda5       8.6G   20M  8.1G   1% /home
[root@bogon root]# dumpe2fs -h /dev/sda2
dumpe2fs 1.41.12 (17-May-2010)
Filesystem volume name:   <none>
Last mounted on:          /
Filesystem UUID:          80d8544a-26c6-49cd-84ab-0062346744d0
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
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              655360
Block count:              2621440
Reserved block count:     131072
Free blocks:              2220564
Free inodes:              586151
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      639
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Flex block group size:    16
Filesystem created:       Tue Sep 29 09:59:24 2015
Last mount time:          Fri Oct  2 17:47:41 2015
Last write time:          Tue Sep 29 10:05:17 2015
Mount count:              4
Maximum mount count:      -1
Last checked:             Tue Sep 29 09:59:24 2015
Check interval:           0 (<none>)
Lifetime writes:          3459 MB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      1c89aeeb-d785-42a4-8017-46edd0ec88ea
Journal backup:           inode blocks
Journal features:         journal_incompat_revoke
日志大小:             128M
Journal length:           32768
Journal sequence:         0x00002242
Journal start:            1

查看和设定acl权限

  • getfacle 文件名可以查看acl权限。
  • setfacl 选项 文件名设定acl权限。
选项说明
-m设定acl权限
-x删除指定的acl权限
-b删除所有的acl权限
-d设定默认的acl权限
-k删除默认acl权限
-R递归设定acl权限
#假定添加用户
[root@bogon root]# useradd zhangsan
us[root@bogon root]# useradd lisi
[root@bogon root]# useradd st
[root@bogon root]# groupadd tgroup
[root@bogon root]# gpasswd -a zhangsan tgroup
Adding user zhangsan to group tgroup
[root@bogon root]# gpasswd -a lisi tgroup
Adding user lisi to group tgroup

#创建项目目录并设定权限
[root@bogon root]# mkdir project
[root@bogon root]# chown root:tgroup project/
[root@bogon root]# chmod 770 project/
[root@bogon root]# ll -d project/
drwxrwx---. 2 root tgroup 4096 103 06:56 project/

[root@bogon root]# echo 设定acl权限
设定acl权限(u:st:rx分别是给user st 设定 rx权限,u 也可以换成g表示给组分配)
[root@bogon root]# setfacl -m u:st:rx project/
[root@bogon root]# ll -d project/
drwxrwx---+ 2 root tgroup 4096 103 06:56 project/
[root@bogon root]# echo 查看acl权限
查看acl权限
[root@bogon root]# getfacl project
# file: project
# owner: root
# group: tgroup
user::rwx
user:st:r-x
group::rwx
mask::rwx
other::---

[root@bogon root]# 
最大有效权限

代码解析:
上面的mask就是最大有效权限,在acl权限设定的权限跟mask相与后得到的值才是真正最大的权限。默认mask是rwx最大权限,我们可以通过setfacl -m:[rx]修改mask。

删除acl权限

serfacl -x u:用户名 文件名 删除指定用户的acl权限。
setfacl -x g:组名 文件名删除指定组的acl权限。
setfacl -b 文件名 删除文件所有的acl权限。

递归权限

serfacl -x u:用户名 -R 文件名 用于给目录下已经存在的子文件和目录一起设置权限

默认权限

serfacl -x d:u:用户名 -R 文件名 用于给目录下新建存在的子文件和目录一起设置权限
以上两个权限需要注意的是,如果在设置递归权限之后新建了一个文件后又执行默认权限,那么在这之两个命令之间创建的文件不会有权限,因为它在地柜权限设置后,又在默认权限设置前,所以两种权限都没有生效。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值