基本权限ACL
基本权限和特殊权限的区别:
ACL文件权限管理: 设置不同用户,不同的基本权限(r、w、x)。对象数量不同。
UGO设置基本权限: 只能一个用户,一个组和其他人
基本权限的语法:
setfacl -m u:alice:rw /home/test.txt
setfacl:命令
-m:设置
u:alice:用户或组
rw :权限
/home/test.txt:文件对象及其所在位置
基本权限的用法
设置
1、准备文件:
[root@cyb ~]# touch /home/test.txt
[root@cyb ~]# ll /home/test.txt
-rw-r–r-- 1 root root 0 10-26 13:59 /home/test.txt
2、设置ACL
[root@cyb ~]# getfacl /home/test.txt(查看文件有哪些ACL权限)
[root@cyb ~]# setfacl -m u:alice:rw /home/test.txt(设置用户alice,jack权限)
[root@cyb ~]# setfacl -m u:jack:- /home/test.txt
[root@cyb ~]# setfacl -m o::rw /home/test.txt(设置其他人的权限)
3、如何删除ACL
[root@qianfeng ~]# ll /home/test.txt (查看test.txt中的权限)
-rw-rw-r–+ 1 root root 0 10-26 13:59 /home/test.txt
[root@cyb ~]# getfacl /home/test.txt(这个也是查看有哪些ACL权限)
[root@cyb ~]# setfacl -m g:hr:r /home/test.txt(给组增加读的权限)
[root@cyb ~]# setfacl -x g:hr /home/test.txt (删除组hr的acl权限)
[root@cyb ~]# setfacl -b /home/test.txt (删除test.txt所有acl权限)
ACL的高级用法
原理:
ACL权限中有个"mask"的选项,它就是ACL权限的最大权限,现在是rwx,当你设置某个用户或组的ACL权限时,要跟mask的权限“相与”之后产生的权限才是该用户的最终权限,也就是加入mask的最大权限是rx,但是你给st用户设置的是rwx权限,此时st用户它的权限只有rx的权限,因为与最大权限“相与”得出的结果就是rx。
图示
生产环境中,常用于临时降低用户或组(除属主和其他人)的权限
1.准备测试用户和组
useradd xujingyuan
useradd cuiyanbing
groupadd hr
touch /tmp/file1.txt
2.设置facl权限。
setfacl -m u:xujingyuan:rwx /tmp/file1.txt
setfacl -m u:cuiyanbing:rw /tmp/file1.txt
setfacl -m g:hr:r /tmp/file1.txt
3.查看权限列表。测试成功。
getfacl /tmp/file1.txt
4.切换用户。验证权限读写执行成功。
su - xujingyuan
su - cuiyanbing
5.设置mask权限为空。切换用户测试,用户写和执行失效。
setfacl -m m::— /tmp/file1.txt
getfacl /tmp/file1.txt
su - xujingyuan
su - cuiyanbing
6.为什么用户还可以读取文件呢。
因为mask无法影响属主和其他用户权限。
去除掉其他人权限。再次使用alice和jack用户访问文件。发现读取无法完成。
chmod o-r /tmp/file1.txt
特殊权限
特殊位 suid
高级权限的类型:
suid,(sgid)针对文件/程序时,具备临时提升权限。
事例:
设置suid,使普通用户通过suid临时提权,查看超管root用户的文件。
1.为cat程序添加上suid权限:
[root@cyb ~]# ll /usr/bin/cat(查看cat中的结果)
[root@cyb ~]# chmod u+s /usr/bin/cat(改变权限)
[root@cyb ~]# ll /usr/bin/cat(查看cat中的结果)
分析两次结果有何不同之处
2.使用普通用户运行cat,暂时获得root权限:
[alice@cyb ~]$ cat /root/file1.txt
(观察出现的结果)
[root@cyb ~]# chmod u-s /usr/bin/cat(去除cat的suid权限除去。)
[root@cyb ~]# ll /usr/bin/cat(查看suid权限是否去除)
文件属性chattr
用途:
常用于锁定某个文件,拒绝修改。
分类:
**注释:**给文件加上chattr i 的属性之后,root都无法对其进行删除。
进程掩码 umask
概述:
新建文件、目录的默认权限会受到umask的影响,umask表示要减掉的权限。
观察系统默认的掩码:
[root@cyb ~]# umask
0022
修改文件abc.txt和目录def的掩码
示例2:修改shell umask值(临时)
[root@cyb ~]# umask 000
[root@cyb ~]# mkdir def
[root@cyb ~]# touch abc.txt
[root@cyb ~]# ll -d def abc.txt
drwxrwxrwx. 2 root root 4096 3月 11 19:44 def
-rw-rw-rw-. 1 root root 0 3月 11 19:44 abc.txt
注释:
现在的进程掩码是0000,用0777-0000=0777,所以目录和文件是满权限,但是系统默认不会给文件执行的权限,所以abc.txt的权限是666。