ACL概述: ACL是用于解决对文件身份不足的问题
dumpe2fs -h /dev/sda3
#dumpe2fs命令是查询指定分区详细文件系统信息的命令
选项:?????????
? ? ? ? -h: 仅显示超级块中信息, 而不显示磁盘块组的详细信息
如果没有开启, 手工开启分区的ACL权限:
mount -o remount, acl /
也可以通过修改/etc/fstab文件, 永久开启ACL权限
vim /etc/fstab
UUID=c2ca6f57-b15c-43ea-bca0-f239083d8bd2? /? ext4? defaults, acl
mount -o remount /
getfacl 文件名: 查询文件的ACL权限
setfacl 选项 文件名: 设定ACL权限
选项:????????
? ? ? ? -m: 设定ACL权限
? ? ? ? -b: 删除ACL权限
? ? ? ? -x:用户? ? ? ?删除单个用户的ACL权限
setfacl -m u:用户名:权限 文件名
setfacl -m g:组名:权限 文件名
setfacl -m d:u:用户名:权限 -R 目录: ACL默认权限, 只对以后新建的文件生效
setfacl -m m:rx 文件/目录
setfacl -x u:用户名 文件或目录: 删除文件或目录的ACL权限
setfacl -b 目录或文件: 删除文件的所有ACL权限
sudo: 给普通用户赋予部分管理员权限
在/usr/sbin/下的命令只有超级用户才能使用, 我们使用这个命令来使普通用户执行部分超级用户才能执行的命令
visudo赋予普通用户权限命令, 命令执行后和vi一样使用
root? ? ? ? ? ?ALL=(ALL)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?ALL
#用户名? ? 被管理主机的地址=(可使用的身份)? ? ?授权命令(绝对路径)
# %where? ? ? ? ? ALL=(ALL)? ? ? ? ? ? ? ? ?ALL
#%组名? ? ? ? ? ? ?被管理主机的地址=(可使用身份)? ? ? 授权命令(绝对路径)
1)授权user1可以重启服务器, 则root用户的操作是:
visudo? ? ? ? 编辑相关文件
user1? ? ?ALL=(ALL) /sbin/shutdown -r now
sudo -l? ? ? ?查看可用的授权
2)授权user1用户可以添加其他普通用户
visudo? ? ? ?编辑相应的文件
user1 ALL=(ALL) /usr/bin/useradd
user1 ALL=(ALL) /usr/bin/passwd [A-Za-z]*, !/user/bin/passwd "", !/usr/bin/passwd root
1)SetUID是什么
SetUID的功能可以这样理解:
2)举例
/usr/bin/passwd命令拥有特殊权限SetUID, 也就是属主的权限位的执行权限上是s. 可以这样这样理解它: 当一个具有执行权限的文件设置SetUID权限后, 用户执行这个文件时将以文件所有者的身份执行. /usr/bin/passwd命令就具有SetUID权限, 所有者为root. 当普通用户使用passwd更改自己密码的时候, 那一瞬间就能以超级用户的身份进行执行, 并修改相应的文件(如果没有SetUID的权限, 用户无法修改文件, 从而无法修改自身的密码), 当命令执行结束后, 身份也会随之消失
3)危险的SetUID
如果我们将/usr/bin/vim中的文件修改成SetUID, 那么其他用户都能修改任何文件, 这是很危险的
4)几点注意事项
1)针对文件的作用
当普通用户(如user1)执行locate命令时, 会发生如下事情:
2)针对目录的作用
Sticky BIT粘着位, 也称为SBIT. 这个只能针对目录
举例: 比如班级的老师创建了一个目录/test, 需要全班的同学(是一组)在这个目录中进行提交, 此时我们只能提交或修改自己的作业, 不能删除其他人的作业
chattr [+-=] [选项] 文件或目录名
选项:
? ? ? ? +: 增加权限
? ? ? ? -: 删除权限
? ? ? ? =: 赋予权限
? ? ? ? i: 如果对文件设置i属性, 那么不允许对文件进行删除, 改名, 也不能添加和修改数据; 如果对目录设置i属性, 那么只能修改目录下文件数据, 但不允许建立和删除文件
? ? ? ? a: 如果对文件设置a属性, 那么只能在文件中增加数据, 但是不能删除也不能修改数据; 如果对目录设置a属性, 那么值允许在目录中建立和修改文件, 但是不允许删除
? ? ? ? e: Linux中绝大多数文件都默认拥有e属性. 表示该文件是使用ext文件系统进行储存的, 而且不能使用"chattr -e"命令取消e属性
lsattr 选项 文件名
[选项]
? ? ? ? -a: 显示所有文件和目录
? ? ? ? -d: 如果是目录, 仅列出目录本身的性质, 而不是子文件的
i属性
a属性