Linux关于文件的特殊权限三

Sticky:
解释: 在一个公共目录,每个人都可以创建文件,删除自己的文件,但是不能删除别人的文件
格式: chmod o+t DIR(针对目录)
chmod o-t DIR(针对目录)
举例: [root@zhg ~]# su - hadoop
[hadoop@zhg ~]$ cd /tmp/project/
[hadoop@zhg project]$ touch b.hadoop
备注: 先还原刚被hbase用户删除的b.hadoop文件
[hadoop@zhg project]$ exit
[root@zhg ~]# chmod o+t /tmp/project/
[root@zhg ~]# ls -ld /tmp/project/
显示结果: drwxrwsr-t 2 root developteam 4096 3月   8 17:08 /tmp/project/
备注: 现在有了t位
[root@zhg ~]# su - hbase
[hbase@zhg ~]$ cd /tmp/project/
[hbase@zhg project]$ ls -l
显示部分结果:
-rw-rw-r-- 1 hadoop developteam 0 3月   8 17:08 b.hadoop
-rw-rw-r-- 1 hbase  developteam 0 3月   8 16:52 b.hbase
[hbase@zhg project]$ rm b.hadoop 
显示结果: rm: 无法删除"b.hadoop": 不允许的操作 //实验结束
注意: 不能删除别人的,但是可以删除自己的文件
总结: 使用方式: 三位可以一起使用
举例: chmod 1755 /back/test //包含Sticky
chmod 2755 /back/test //包含SGID
chmod 3755 /back/test //包含SGID和Sticky
chmod 4755 /back/test //包含SUID
chmod 5755 /back/test //包含SUID和Sticky
chmod 6755 /back/test //包含SUID和SGID
chmod 7755 /back/test //包含SUID,SGID和Sticky
备注: 此时大家应该理解为什么umask是4位了。
2.文件系统访问控制列表
案例引入: 系统中有两个用户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--

你可能感兴趣的:(Linux关于文件的特殊权限三)