1.ACL权限

1.1 ACL权限简介与开启

xfs文件系统强制开启ACL,如果该分区已格式化为xfs,在使用dumpe2fs会看不到superblocks信息

1.1.1查看分区ACL权限是否开启

  1. dumpe2fs -h 分区路径
  2. #dumpe2fs 命令是查询指定分区详细文件系统信息的命令(适合ext4文件系统)
  3. #xfs文件系统强制开启ACL,如果该分区已格式化为xfs,在使用dumpe2fs会看不到superblocks信息

选项:
-h:仅显示超级块中信息,而不显示磁盘块组的详细信息

image.png

1.1.2临时开启分区ACL权限

mount -o remount,acl /
#重新挂载根分区,并挂载加入ACL权限(适合ext4文件)

此命令的临时生效,如重启系统就失去的作用

1.1.3 永久开启分区ACl权限

vi /etc/fstab
#UUID=bac31b96-20da-4d4f-bed9-84c0114cd7d0 /     xfs   defaults,acl     0 0 
#加入acl
mount -o remount /
#重新挂载文件系统或重启系统,使修改生效

1.2 查看与设定ACL权限

1.2.1 查看ACl命令

getfacle 文件名
#查看acl权限

1.2.2 设定ACL权限命令

setfacl 选项 ug:组或人:权限 文件名
#u:ACL用户
#g:ACL组

选项:
-m:设定ACL权限
-x: 删除指定的ACL权限
-b: 删除所有的ACL权限
-d: 设定默认ACL权限
-k: 删除默认ACL权限
-R: 递归设定ACL权限
image.png

image.png

1.3 最大有效权限与删除ACL权限

1.3.1最大有效权限mask

mask 是用来指定最大有效权限的。如果我给用户赋予了ACL权限,是需要和mask的权限“相与”才能得到用户的真正权限
image.png

1.3.2 修改mask权限

setfacl 选项 m:权限 文件名
#修改mask权限

1.3.3 删除ACl权限

setfacl -x ug:用户名 文件名
#删除指定用户或组的ACL权限
setfacl -b 文件名
#删除文件的所有的ACL权限

1.4 默认ACL权限和递归ACL权限

1.4.1 递归ACL权限

递归是父目录在设定ACL权限时,所有的子文件和子目录也会拥有相同的ACL权限

setfacl -m ug:用户名或组名:权限 -R 文件名(目录也是文件这里只指目录)

1.4.2 默认ACL权限

默认ACL权限的作用是如果给父目录设定了默认ACL权限,那么父目录中所有新建的子文件都会继承父目录的ACL权限

setfacl -m d:ug:用户名或组名:权限 文件名(目录也是文件这里只指目录)

1.4.3 默认和递归的区别

默认只设置未来新增加的文件
递归设置所有已有的文件

2.文件特殊权限

2.1 SetUID

2.1.1 setUID的功能

image.png
image.png
image.png

2.1.2 设定SetUID的方法

4代表SUID

chmod 4755 文件名
chmod u+s 文件名 (必须要满足SUID的基础以上四个)

2.1.3 取消SUID的方法

chmod 755 文件名
chmod u-s 文件名 (必须要满足SUID的基础以上四个)

image.png

image.png

2.1.4 危险的SUID

image.png

2.2 SetGID

2.2.1 SGID 针对文件的作用(与SUID相似)

image.png

2.2.2 SGID 针对目录的作用

image.png

2.2.3 设定SGID

chmod 2755 文件名
chmod g+s 文件名

2.3 Sticky BIT

2.3.1 SBIT粘着位的作用

image.png

2.3.2 设置和取消粘着位

chmod 1755 目录名
chmod 0+t 目录名
chmod 777 目录名
chmod o-t 目录名

3.文件系统属性chattr权限

3.1 chattr 命令格式(可以限制root权限)

限制对系统的误操作

chattr [+-=] [选项] 文件或目录名

+:增加权限
-:删除权限
=:等于某权限
image.png

3.2 查看文件系统属性

lsattr 选项 文件名

选项:
-a 显示所有的文件和目录
-d 若目标是目录,仅列出目录本身的属性而不是子文件

4.系统命令sudo权限

4.1 sudo权限

root 把本来只能超级用户执行的命令赋予普通用户执行
sudo 的操作对象是系统命令

4.2sudo使用

root用户给普通用户的超级命令

visudo
#实际修改的是/etc/sudoers 文件

root ALL=(ALL)    ALL
#用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
#%wheel  ALL=(ALL)   ALL
#%组名  被管理主机的地址=(可使用的身份) 授权命令(绝对路径)

普通用户接受root赋予的命令

sudo -l
#查看root赋予的命令
sudo 命令
#普通用户使用的方法