ACL&sudo&chattr等权限

ACL&sudo&suid&chattr&rwx&umask07

标签(空格分隔): linux

1.ACL权限

1.ACL概述

用于解决用户对文件身份不足的问题
如:老师为文件所有者,学生在文件所属组中,,文件权限770。此时来了一个试听的学生,文件权限变成775,那么不仅这个试听的学生可以操作文件,其他用户也可以操作文件,不合理,此时需要使用ACL权限,进行管理

方法/思路:不在考虑用户的所属,而是直接赋予用户权限,可以使用文件

2.开启ACL

默认是支持的
# dumpe2fs -h /dev/根分区
Default mount options: user_xattr acl

临时:mount -o remount acl /
永久:vi /etc/fstab
UUID=xxxxxxxx / ext4 defaults,acl 
mount -o remount / 

3.ACL基本命令

getfacl 文件名 查询文件的acl权限

setfacl 选项 文件名 设定acl权限
-m 设定acl权限
-b 删除所有acl权限
-x u:用户名 删除单个用户的acl权限

setfacl -m u:用户名:权限 文件名
setfacl -m g:组名:权限 文件名

setfacl -m u:aaa:7 /test 给test目录赋予aaa是读写执行的acl权限
-R:递归,只针对已经存在的文件生效
setfacl -m d:u:aaa:7 -R /test
此命令只对以后新建的文件生效

卡在两条命令中间创建的文件,依旧没有生效

acl权限,一旦递归之后,不可避免的出现权限溢出。赋予目录5权限后,对于目录可以cd,同时目录下的文件也拥有了5权限,而对于文件来说,执行权限是最大权限,存在风险,所以不建议使用此命令代替chmod。一旦文件目录存在过多,更改起来也是一个繁杂的任务。

1.mask最大权限

赋予权限时,与mask进行与预算,有0则0,同时拥有权限,才有权限。
setfacl /test/ 查看mask权限
更改:setfacl -m m:6 /test/
一般不改,默认就行

2.sudo授权

给普通用户赋予部分管理员权限
/sbin/ 此目录下的命令只有超级用户才能使用
/usr/sbin

赋子的权限越详细,普通用户得到的权限越小
赋手的权限越简单,普通用户得到的权限越大

/etc/sudoers

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

%wheel ALL=(ALL) ALL
组名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
多条命令,使用逗号隔开
案例:授权用户user1可以重启

# vim /etc/sudoers 
user1 ALL=/sbin/shutdown -r now 
$ sudo -l 查看可用的授权
user1 ALL=/etc/init.d/http configtest 
user1 ALL=/usr/bin/vim /etc/http/conf/httpd.conf,vim后一定加文件名,不然危险

案例:授权aaa用户可以添加其他普通用户
aaa ALL=/usr/sbin/useradd
aaa ALL=/usr/bin/passwd
需要取消对root的密码修改

aaa ALL=/usr/bin/passwd [A-Za-z]*,  !/usr/bin/passwd "",  !/usr/bin/passwd root

[A-Za-z]*:写什么都行,任意字母重复多次
!取反,不能加空,不能加root
直接加空,也等于修改root密码

3.文件特殊权限

SetUID SetGIDS Sticky BIT

1.SUID

\# ll /usr/bin/passwd
  • 针对执行文件,使用该权限,用户需要对文件有执行权限。
  • 命令执行者在执行该程序时获得该程序文件属主的身份。

/passwd文件有SUID权限,普通用户在修改密码时,身份会成为root,从而可以修改密码

  • 一般不自己赋予文件SUID权限

脚本校测SUID和GUID文件P84 11min

定时检查有没有本身自带之外的被设置SetUID权限的文件

2.SGID

\# ll /var/lib/mlocate/mlocate.db数据库
-rw-r-----
\# ll /usr/bin/locate
-rwx--s--x root locate
 其他用户并没有权限,但是可以执行locate命令,进行搜索

对文件,风险大。

  • 命令执行者在执行该程序时获得该程序文件所属组的身份。(使用locate时,临时变成locate组的身份)
  • 可以针对执行文件,也可以针对目录文件。针对目录风险小
  • 对文件拥有执行权限

对目录,风险不大,问题在于只有给目录7权限,其他用户才能在目录下创建文件。

  • 普通用户对目录有读执行权限,才能进入目录
  • 普通用户在此目录中的有效组会变成此目录的属组
  • 在普通用户对此目录有w权限时,新建的文件的默认属组是这个目录的属组
    目录拥有SGID权限后,其他用户在目录下新建的文件的所属组,会成文目录的所属组

3.SBIT(黏着位)

只能针对目录,针对目录风险小

  • 普通用户对目录拥有wx权限。对目录有写入权限
  • 如果没有黏着位,因为普通用户有w权限,可以删除此目录下的所有文件。有了之后,除了root可以删除所有文件,普通用户有w权限,也只能删除自己的文件,不能删除其他用户创建的文件

如 /tmp目录
对目录,风险不大,同样问题在于只有给目录7权限,其他用户才能在目录下创建文件。

4.文件系统属性chattr权限容易忘

命令格式

\# chattr [+-=] [选项] 文件或目录名
chattr +i file
lsattr file 查看

i:i属性,不允许对文件进行删除,改名,也不能添加和修改数据。(无法执行操作)
如果对目录设置i属性,那么只能修改目录下文件的数据,但不允许建立和删除文件。

lsattr dir 看不出目录是否设置i属性,看的是dir中的文件。
lsattr -d dir 可以看出

a:a属性,只能在文件中增加数据,不能删除也不能修改数据。(可以写,比i属性宽松一点)vi无法使用,echo >>可以。
如果对目录设置a属性,那么只允许在目录中建立和修改文件,但是不允许删除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值