linux 权限管理

ACL权限:是使用在当三种身份不够用的情况下,抛出这三种身份,为指定用户添加某目录或文件的指定权限。
可通过dump2fs命令查看分区是否支持ACL。
在这里插入图片描述
setfacl -m u:user1:rx /project 给用户user1对目录project的rx权限。
setfacl -m g:tgroup:rwx /project 给用户组tgroup对目录project的rwx权限。
getfacl /project 查看目录的acl权限信息。
上面的命令当给一个目录增加acl权限时,对目录下的文件是没有增加acl权限的。
所以我们就需要递归的设置acl权限:setfacl -m u:user1:rx -R /project
这样该project目录下的所有子文件也会有acl权限,但是它仍有一个问题,当在该目录下新增文件时,新增的文件并没有acl权限。所以需要设置默认acl权限,让目录下新建的子文件继承父目录的acl权限:setfacl -m d:u:user1:rx /project
在这里插入图片描述

文件特殊权限:
SetUID
在这里插入图片描述
也就是对于可执行文件(命令)如果具有SetUID权限,那么普通用户再执行这个命令 的时候会被认为是该文件的所属者。
例如linux中,passwd命令就是这样:
在这里插入图片描述
我们可以通过修改文件权限让某个文件具有SetUID权限或者去除该权限。其实文件的权限由4位数字表示,第一位就代表SetUID(4),SetGID(2),Sticky BIT(1)。用例:chmod 4755 文件名:使文件具有SetUID权限。

让一个文件具有这种特殊权限是非常危险的,所以我们非必要不要给文件添加该种权限。例如:如果root不小心给 usr/bin/vim文件赋予了SetUID,那么所有普通用户执行vim命令的时候就被认为是root,那么它可以修改系统里任意的文件了!!这是多么的可怕!
SetGID对于可执行文件的作用是和SetUID很相似的,就是普通用户执行这样的命令,它就会被默认成该命令所属组的成员。
例子:
在这里插入图片描述
我们知道任何用户都可以使用locate命令来搜索文件,locate命令实际上搜索的是mlocate.db这个数据库文件。
在这里插入图片描述
可以看到,普通用户对该文件并没有读权限。我们之所以可以搜索该数据库就是因为locate命令具有SetGID权限,我们在使用过程中相当于slocate用户组的成员,而slocate对mlocate.db具有读权限。

SetGID也可以对目录有效,此时它的作用是普通用户在该目录下创建的文件的所属组是该目录的所属组而不是该用户的初始组。
在这里插入图片描述

chattr修改文件属性权限;
选项:-i 对于文件不能修改,删除,只能查看。对于目录不能创建,删除文件,可以修改文件内容。
-a 对于文件只能通过echo添加和查看。对于目录相比-i也是可以创建新文件。
它的主要作用是防止一些误操作,比如把重要的文件目录设置相关权限,防止误删除。
用法:
在这里插入图片描述
在这里插入图片描述

sudo权限:
root用户可以通过visudo命令赋予普通用户指定的命令权限。
例如:赋给普通用户user1命令:/sbin/shutdown -r now
在这里插入图片描述
su -user1切换成普通用户,可以通过sudo -l查看root赋予了当前用户哪些权限。
在这里插入图片描述
然后,需要在命令前使用sudo来使用root赋予给我们的权限。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值