1.基本权限acl
ACL文件权限管理: 设置不同用户,不同的基本权限(r、w、x)。对象数量不同。
语法:setfacl -m u:alice:rw /home/1.txt
用法:
创建一个文件:1.txt
查看文件的基本权限,再用getfacl查看,对比一下
创建用户alice和jack,赋予这两个用户权限
[root@localhost ~]# setfacl -m u:alice:rw /home/1.txt
[root@localhost ~]# setfacl -m u:jack:- /home/1.txt
再次用getfacl查看1.txt,之后再创建一个he组,增加对组的权限,反复验证
之后,删除对组的权限,在删除所有的其他用户对1.txt的权限,接下来我们实际操作
一下:
[root@localhost ~]# touch 1.txt
[root@localhost ~]# ll
总用量 4
-rw-r–r-- 1 root root 0 7月 28 19:00 1.txt
-rw-------. 1 root root 1418 7月 25 13:53 anaconda-ks.cfg
[root@localhost ~]# getfacl 1.txt
# file: 1.txt
# owner: root
# group: root
user::rw-
group::r–
other::r–
[root@localhost ~]# ll /home
drwx------. 2 chenzhihao chenzhihao 83 7月 27 13:51 chenzhihao
-rw-rw-r–+ 1 root root 49 7月 27 19:40 file.txt
[root@localhost ~]# useradd alice
[root@localhost ~]# useradd jack
[root@localhost ~]# ll /home
总用量 4
drwx------ 2 alice alice 62 7月 28 19:09 alice
drwx------. 2 chenzhihao chenzhihao 83 7月 27 13:51 chenzhihao
-rw-rw-r–+ 1 root root 49 7月 27 19:40 file.txt
drwx------ 2 jack jack 62 7月 28 19:09 jack
[root@localhost ~]# setfacl -m u:alice:rw /home/1.txt
[root@localhost ~]# setfacl -m u:jack:- /home/1.txt
[root@localhost ~]# getfacl /home/1.txt
getfacl: Removing leading ‘/’ from absolute path names
# file: home/1.txt
# owner: root
# group: root
user::rw-
user:alice:rw-
user:jack:—
group::r–
mask::rw-
other::r–
[root@localhost ~]# setfacl -m g:he:rx /home/1.txt
[jack@localhost ~]$ getfacl /home/1.txt
getfacl: Removing leading ‘/’ from absolute path names
# file: home/1.txt
# owner: root
# group: root
user::rw-
user:alice:rw-
user:jack:—
group::r–
group:he:r-x
mask::rwx
other::r–
[root@localhost ~]# setfacl -x g:he /home/1.txt
[root@localhost ~]# setfacl -b /home/1.txt
[root@localhost ~]# getfacl /home/1.txt
getfacl: Removing leading ‘/’ from absolute path names
# file: home/1.txt
# owner: root
# group: root
user::rw-
group::r–
other::r–
2.特殊权限
特殊位:suid
高级权限的类型
suid针对文件/程序时,具备临时获得属主的权限。
分析:root运行是超管的权限,普通用户运行时是普通用户的权限。
root /usr/bin/cat (root) /root/file1.txt OK
alice /usr/bin/cat (alice) /root/file1.txt
示例1
设置suid,使普通用户通过suid临时提权,查看超管root用户的文件
1.为cat程序添加上suid权限。
[root@qianfeng ~]# ll /usr/bin/cat
-rwxr-xr-x. 1 root root 54080 8月 20 2019 /usr/bin/cat
[root@localhost ~]# chmod u+s /usr/bin/cat
[root@localhost ~]# ll /usr/bin/cat
-rwsr-xr-x. 1 root root 54080 8月 20 2019 /usr/bin/cat
2.使用普通用户运行cat。暂时获得root权限
[root@localhost ~]# su - alice
[alice@localhost ~]$ cat /root/file1.txt
结果,普通用户,看到了root的内容。这个行为很危险
请在试验后,将cat的suid权限除去。
[root@localhost ~]# chmod u-s /usr/bin/cat
[root@localhost ~]# ll /usr/bin/cat
特殊位:sgid :让执行文件的用户以该文件所属组的权限去执行
命令语法: chmod g+s file1.txt
特殊位:stick :不能删除或改写别人的文件,只能读
语法:chmod o+t file1.txt
文件属性:chattr :常用于锁定某个文件,拒绝修改。
+ :在原有参数设定基础上,追加参数。
- :在原有参数设定基础上,移除参数。
= :更新为指定参数设定。
i 将无法对文件进行修改,若对目录设置后则仅能修改子文件而不能新建或删除
。
a 仅允许补充(追加)内容.无法覆盖/删除(Append Only)。
S 文件内容变更后立即同步到硬盘(sync)。
s 彻底从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域)。
A 不再修改这个文件的最后访问时间(atime)。
b 不再修改文件或目录的存取时间。
D 检查压缩文件中的错误。
d 当使用dump命令备份时忽略本文件/目录。
c 默认将文件或目录进行压缩。
u 当删除此文件后依然保留其在硬盘中的数据,方便日后恢复。
t 让文件系统支持尾部合并(tail-merging)。
X 可以直接访问压缩文件的内容。
查看文件的特殊属性用lsattr
(注:文件的属性chattr内容{i-X}解释来源于网络http://www.ha97.com/5172.html
)
umask:表示要减掉的权限