SUID、SGID、Sticky Bit介绍

那么如何设置SUID呢?

其实很简单,用chmod命令就可以了,chmod有两种配置权限的形式,一种是数字形式,一种是字符形式,数字形式通常用于全量权限的配置,而字符的可以更方便的做单个属性的加减,因此,这里就用字符形式来配置。

如果你要在拥有者那里增加SUID权限,那么用chmod u+s就可以,如果要去掉这个属性,那么用chmod u-s就可以完成。

这里还是用passwd来做测试

[root@VM-0-14-centos ~]# ls -l /usr/bin/passwd

-rwsr-xr-x. 1 root root 30768 11月 24 2015 /usr/bin/passwd

[root@VM-0-14-centos ~]# ls -l /usr/bin/passwd

-rwxr-xr-x. 1 root root 30768 11月 24 2015 /usr/bin/passwd

[jack@VM-0-14-centos root]$ passwd

新的 密码:

重新输入新的 密码:

passwd: 鉴定令牌操作错误

[jack@VM-0-14-centos root]$

可见,一旦把passwd命令的SUID给去掉了,那么用户就无法更改密码了,赶快改回去。。

[root@VM-0-14-centos ~]# chmod u+s /usr/bin/passwd

[root@VM-0-14-centos ~]# ls -l /usr/bin/passwd

-rwsr-xr-x. 1 root root 30768 11月 24 2015 /usr/bin/passwd

以上就是关于SUID的解释,接下来看看SGID。其实,理解了SUID,SGID就很容易理解。SGID的英文是set group id,就是说设置组id,那是设置谁的组id呢?按照SUID的类似的,就是把命令、可执行文件的组id临时设置给调用它的用户,让这个用户具有这个命令、可执行文件的组id,从而在命令、可执行文件执行期间,这个用户的组id临时变成这个命令、可执行文件的组id,即改变调用者的有效用户组。

跟改变SUID类似,你也可以用chmod命令来改变可执行文件的SGID:

chmod g+/-s executable_file

除了可以用在可执行文件外,这个SGID也可以用在文件夹,如果用在文件夹,那么一旦用户进入这个文件夹后,所创建的任何内容的组id都是当前文件夹的组id

[jack@VM-0-14-centos tmp]$ mkdir setdir

[jack@VM-0-14-centos tmp]$ ls -ld setdir

drwxrwxr-x 2 jack jack 4096 1月 31 22:01 setdir

[root@VM-0-14-centos tmp]#chmod g+s setdir

[root@VM-0-14-centos tmp]# ls -dl setdir

drwxr-sr-x 2 jack jack 4096 1月 31 22:01 setdir

[root@VM-0-14-centos tmp]# chown jack:rock setdir

[root@VM-0-14-centos tmp]# ls -ld setdir

drwxr-sr-x 2 jack rock 4096 1月

[jack@VM-0-14-centos setdir]$ touch afile

[jack@VM-0-14-centos setdir]$ ls -l

总用量 0

-rw-rw-r-- 1 jack rock 0 1月 31 22:17 afile

以上就是关于SGID的介绍,接下来在介绍sticky bit。这个属性比较简单,只用于文件夹,一旦被设置,那么用户只能删除文件夹中属于自己的东西,其他人的东西无法删除,改变这个属性也是用chmod,命令是 chmod o+t。

[root@VM-0-14-centos tmp]# chmod 777 setdir

[root@VM-0-14-centos tmp]# ls -dl setdir

drwxrwsrwx 2 root root 4096 1月 31 22:17 setdir

[rock@VM-0-14-centos setdir]$ touch rockfile

[rock@VM-0-14-centos setdir]$ su jack

[jack@VM-0-14-centos setdir]$ touch jackfile

[jack@VM-0-14-centos setdir]$ ls -l

总用量 0

-rw-rw-r-- 1 jack rock 0 1月 31 22:17 afile

-rw-rw-r-- 1 jack rock 0 1月 31 22:26 jackfile

-rw-rw-r-- 1 rock rock 0 1月 31 22:26 rockfile

[jack@VM-0-14-centos setdir]$

[root@VM-0-14-centos setdir]# chmod o+t ../setdir

[root@VM-0-14-centos setdir]# ls -ld ../setdir

drwxrwxrwt 2 root root 4096 1月 31 22:26 ../setdir

[jack@VM-0-14-centos setdir]$ rm rockfile

rm:是否删除有写保护的普通空文件 "rockfile"?y

rm: 无法删除"rockfile": 不允许的操作

总结一下

SUID

  1. 这个属性仅仅对二进制文件有用

  1. 这个属性仅仅在程序运行的时候才有用

  1. 使用这在运行这个程序的过程中,可以获得程序拥有者的权限

  1. 要这个属性生效,首先要获得x属性,如果没有获得x属性,那么这个s属性会变成大写,表示无效

SGID

  1. 对于可执行文件。这个权限是用在二进制文件里头的,当你运行这个二进制文件的时候,所获得的权限(我觉得是身份,而不是权限)就是这个组的权限,即以这个组的权限来运行这个程序。

2.对于文件夹。如果你能够进入这个文件夹,那么你的有效群组就会变成当前文件夹的群组,如果你对文件夹有w权限,那么你创建的任何东西的群组就是这个文件夹的群组。

Sticky Bit

一旦配置了这个属性,里面所创建的东西只有创建者或者root用户才能够删除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值