12.特殊权限

1.SUID权限


SUID是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)。

我们知道用户通过passwd命令修改密码的,密码存在/etc/shadow文件中
[root@Centos7 data]#ll /etc/shadow
———-. 1 root root 1401 Jul 28 08:56 /etc/shadow
但是/etc/shadow普通用户是没有权限的,为什么可以通过passwd可以修改密码呢?
我们来看一下passwd程序的元数据
这里写图片描述
和其他可执行文件不同的是,passwd是红色的,权限中有s在。

如果普通用户chen去执行命令passwd,chen就换成/usr/bin/passwd的所有者身份执行,所有者是root账号,root可以修改/etc/shadow文件,chen用户临时拥有所有者root的权限,这就是SUID权限。

SUID权限是很危险的,假如我们给/usr/bin/vim程序设置SUID权限,那么普通用户就使用vim修改密码文件/etc/shadow
[root@Centos7 data]#which vim
/usr/bin/vim
[root@Centos7 data]#chmod 4755 /usr/bin/vim
[root@Centos7 data]#ll /usr/bin/vim
-rwsr-xr-x. 1 root root 2294256 Apr 11 07:54 /usr/bin/vim

添加SUID权限(只有root添加)
#chmod 4755 /usr/bin/passwd
或者
#chmod u+s /usr/bin/passwd
删掉SUID权限
#chmod u-s /usr/bin/passwd

2.SGID权限


假设我们现在有一组小组,希望每个小组在一个文件夹内可以创建文件,也能修改其他人创建的文件。
用户包含:chen test1 test2
1.创建一个组
#groupadd demo

2.把3个小组用户都加入demo组
#groupmems -g demo -a chen
#groupmems -g demo -a test1
#groupmems -g demo -a test2

3.查看是否加入
#groupmems -g demo -l
chen test1 test2

4.把/data添加SGID权限
#chmod g+s /data
或者
#chmod 2775 /data

通过上面一个例子我们可以知道SGID功能:
在一个目录设置了SGID权限以后,新建文件的所属组就是该目录的所属组。正常情况下,创建一个文件之后,所属组默认是用户本身的主组,但是在设置了SGID的目录下,所属组就是目录的所属组,有个前提就是我们用户是在这个目录所属组里面。

#chmod g+s /usr/bin/passwd
或者
#chmod 2755 /usr/bin/passwd

3.Sticky位(粘滞位)


应用:当对某个目录设置了SBIT粘滞位权限后,那么该目录中的文件就只能被其所有者执行删除操作了。

假如我们用root设置/data目录的权限是777
#chmod 777 /data
这样root用户在/data创建的文件f1,切换chen用户操作,在/data也可以删除root创建的f1文件。
假如现在我需要这样的效果,chen用户只能删除自己创建的文件,不能删除其他用户创建的文件。我们就需要设置Sticky权限
添加Sticky权限
#chmod o+t /data
或者
#chmod 1777 /data
Sticky功能:此目录中的文件,只能被所有者删除,就是自己创建的文件,只能自己删除。

4.特殊权限的总结


SUID(4):作用于二进制程序,功能:当用户执行此程序的时候,用户将继承程序的所有者的权限
SGID(2):作用于二进制程序,功能:当用户执行此程序的时候,用户将继承程序的所有组的权限;
作用在文件夹目录上,功能:当用户在目录下创建新文件时,新文件夹的所属组自动继承此目录的所属组
Sticky(1):作用与目录上,功能:此目录中的文件,只能被所有者删除,就是自己创建的文件,只能自己删除。

5. 特殊权限添加和取消语句


SUID:

添加SUID权限(只有root添加)
 #chmod 4755 文件名(二进制程序)
 #chmod u+s 文件名(二进制程序)
删掉SUID权限
 #chmod u-s 文件名(二进制程序)

SGID:

添加SID权限(只有root添加)
 #chmod 2755 文件名或目录
 #chmod g+s 文件名或目录
删掉SGID权限
 #chmod g-s 文件名或目录

Sticky:

添加Sticky权限:
 #chmod o+t 目录
 #chmod 1777 目录
删掉Sticky权限:
 #chmod o-t 目录

6.chattr命令


应用:chattr命令可以对root进行限制。比如我们要保护/etc/passwd文件,防止root账号误删除。

1.上锁,不可删除,不可修改
#chattr +i /etc/passwd
#lsattr /etc/passwd
—-i———– /etc/passwd
解锁
#chattr -i /etc/passwd

2.-a功能效果是不可删除,但是可以修改
#chattr +a /etc/passwd 锁上
#chattr -a /etc/passwd 解锁

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值