文件系统访问控制列表案例

案例引入: 系统中有两个用户Tom,Jerry,Tom在公共目录中希望让Jerry访问(读写),你作为管理员应该如何实现?
讲解引入: Tom用户创建的文件的属主和属组(基本组)都是Tom,这就意味着Jerry不属于Tom的基本组,就不能应用于组权限,
此时Jerry访问时会应用其他other权限,如果要让Jerry能够实现读写,那必须给other权限,这样就很不安全了!
我们还可以把Tom文件的属主改为Jerry,但是普通用户是没有权限更改的
[root@xiaoke ~]# useradd tom
[root@xiaoke ~]# useradd jerry
[root@xiaoke ~]# su - tom
[tom@xiaoke ~]$ cd /tmp/
[tom@xiaoke tmp]$ touch a.tom
[tom@xiaoke tmp]$ exit
[root@xiaoke ~]# su - jerry
[jerry@xiaoke ~]$ cd /tmp/
[jerry@xiaoke tmp]$ chown jerry:jerry a.tom 
显示结果: chown: 正在更改"a.tom" 的所有者: 不允许的操作
这怎么办呢?这就体现了文件系统访问控制列表的意义了!
解决方法:
FACL: Filesystem Access Control List
意义: 利用文件扩展属性,保存了额外的访问控制权限
命令:
setfacl:设置facl
-m:设定额外权限
格式: -m u:UID:perm //设定用户为perm权限
-m g:GID:perm //设定组为perm权限
-m d:u:UID:perm //主要针对目录操作,将目录扩展权限向下继承
-m d:g:GID:perm //主要针对目录操作,将目录扩展权限向下继承
-x:取消额外权限
格式: -x u:UID
-x g:GID
getfacl:获取facl
举例: [root@xiaoke ~]# mkdir /backup
[root@xiaoke ~]# cd /backup/
[root@xiaoke backup]# cp /etc/inittab ./
[root@xiaoke backup]# getfacl inittab 
显示结果: # file: inittab
# owner: root
# group: root
user::rw-
group::r--
other::r--
另一案例:设置用户hadoop对文件inittab读写权限
[root@xiaoke ~]# useradd hadoop
[root@xiaoke ~]# su - hadoop
[hadoop@xiaoke ~]$ cd /backup/
[hadoop@xiaoke backup]$ echo 123 > inittab 
显示结果:-bash: inittab: 权限不够
解决方法:
[root@xiaoke backup]# setfacl -m u:hadoop:rw inittab 
[root@xiaoke backup]# getfacl inittab 
显示结果: # file: inittab
# owner: root
# group: root
user::rw- //冒号中间为空,代表是默认属主
user:hadoop:rw- //额外指定用户
group::r--
mask::rw-
other::r--
验证: [root@xiaoke backup]# su - hadoop
[hadoop@xiaoke ~]$ echo 123 >> /backup/inittab 
[hadoop@xiaoke ~]$ tail -2 /backup/inittab
显示结果: id:3:initdefault:
123
同样的对属组设置也是类似
[root@xiaoke backup]# setfacl -m g:mygroup:rw inittab 
[root@xiaoke backup]# getfacl inittab 
显示结果: # file: inittab
# owner: root
# group: root
user::rw-
user:hadoop:rw-
group::r--
group:mygroup:rw- //注意组要事先存在
mask::rw-
other::r--
注意: [root@xiaoke backup]# ls -l
显示结果: -rw-rw-r--+ 1 root root 888 3月   9 06:41 inittab
备注: 一个文件要是有扩展属性的话,ls -l显示结果会看到+这个符号
注意: 一个有着扩展属性的文件,通过复制或归档一个文件时,这个扩展属性很可能不能归档,除非使用特定选项或命令。
取消权限:
1.取消用户权限
[root@xiaoke backup]# setfacl -x u:hadoop inittab
[root@xiaoke backup]# getfacl inittab
2.取消组权限
[root@xiaoke backup]# setfacl -x g:mygroup inittab
[root@xiaoke backup]# getfacl inittab
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值