Linux 特殊权限位setuid setgid

setgid g+s


这里还有一个setgid的权限,对应的数字是2。概念和setuid是一样的。当一个程序具有setgid的时候,当一个用户执行这个程序的时候会以这个程序所属组的身份去执行。

授予的命令是chmod g+s。或者chmod 2755。

 

如果要同时授予setuid和setgid的权限就可以使用chmod 6755。下面的实验和上面的一样

[root@desktop0 ~]# ls -l /usr/bin/touch

-rwxr-xr-x. 1 root root 62432 Jan 25  2014 /usr/bin/touch

[root@desktop0 ~]# chmod g+s  /usr/bin/touch

[root@desktop0 ~]# ls -l /usr/bin/touch

-rwxr-sr-x. 1 root root 62432 Jan 25  2014 /usr/bin/touch

[root@desktop0 ~]# su - student

Last login: Mon Apr  9 18:14:15 CST 2018 on pts/2

[student@desktop0 ~]$ touch newtest

[student@desktop0 ~]$ ls -l newtest --可以看到所属组是root,因为touch命令被授予的setgid的权限。

-rw-rw-r--. 1 student root 0 Apr  9 18:32 newtest

 

很多命令不适合授予setuid的权限,比如vim/vi这些命令,如果设置为setuid权限就相当于给黑客留留一个后门,如果vi授予了setuid权限,那么随便切换到一个普通用户下面,那么就可以使用vi编辑/etc/passwd,将普通用户的uid改为0,这样普通用户登入就是以1root身份登入,所以不要随便将一个命令授予setuid权限。

 

 

在linux那些命令被授予了setuid权限呢?

[root@desktop0 ~]# find / -perm -4000 -o -perm -2000  -- -o代表了或者

find: ?.proc/4649/task/4649/fd/6?. No such file or directory

find: ?.proc/4649/task/4649/fdinfo/6?. No such file or directory

find: ?.proc/4649/fd/6?. No such file or directory

find: ?.proc/4649/fdinfo/6?. No such file or directory

/run/log/journal

/run/log/journal/946cb0e817ea4adb916183df8c4fc817

/usr/bin/wall

/usr/bin/write

/usr/bin/mount

/usr/bin/chage

[root@desktop0 ~]# ls -l  /usr/bin/mount

-rwsr-xr-x. 1 root root 44232 Mar 28  2014 /usr/bin/mount

 

 

o+t 

上面介绍了权限位第一位的两个特殊权限,还剩下一个特殊权限,这个权限是粘着位,这一位的权限是1。

[root@desktop0 ~]# mkdir -p /test

[root@desktop0 ~]# chmod 777 /test --如果一个目录有写权限,那么就可以对目录里面文件进行删除和创建

[root@desktop0 ~]# touch /test/mytest

[root@desktop0 ~]# su - student

Last login: Mon Apr  9 18:32:40 CST 2018 on pts/2

[student@desktop0 ~]$ rm -rf /test/mytest

[student@desktop0 ~]$ ls /test

[student@desktop0 ~]$

上面可以看出,root创建的文件,在普通用户下可以删除。

有没有一个目录,每一个用户都可以在该目录下面创建文件,但是每一个用户不能删除其他用户创建的文件。答案是有的,这个目录就是/tmp目录。

[hellow@server0 test]$ ls -ld /tmp
drwxrwxrwt. 9 root root 4096 Apr 10 02:03 /tmp
[hellow@server0 test]$ touch /tmp/hellow.txt
[hellow@server0 test]$ su - test
Password: 
Last login: Tue Apr 10 02:03:15 CST 2018 on pts/0
[test@server0 ~]$ rm -rf /tmp/hellow.txt  --可以看到虽然tmp目录的其他人对目录具有rwx权限,但是test用户不能对hellow用户创建的文件进行删除,因为这里有一个粘着位t。
rm: cannot remove ?.tmp/hellow.txt?. Operation not permitted

 

总结:

特殊权限
u+s
[root@localhost tmp]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root test 27832 Jan 29 2014 /usr/bin/passwd
x:以用户自身的权限去执行的
s:是以文件所有者 形式去执行的(root
[root@localhost tmp]# ll /etc/passwd
-rw-r--r--. 1 root root 2333 Aug 4 22:42 /etc/passwd

t---粘滞位
o+t
仅文件所有者(和root)可以删除目录中的文件,没有权限去删除其他用户的文件
[root@localhost tmp]# ll -d /tmp
drwxrwxrwt. 10 root root 4096 Aug 4 23:57 /tmp

 

希望目录下创建文件、目录 继承父目录的组设置(RHCSA)

g+s
用符号表示: setuid = u + s; setgid = g + s sticky = o + t
用数值表示(第四位):setuid = 4; setgid = 2 sticky = 1
X760 

 

特殊权限

对文件的影响

对目录的影响

u+s

以拥有文件的用户身份,而不是以
运行文件的用户身份执行文件

无影响

g+s

以拥有文件的组身份执行文件

在目录中最新创建的文件将其组所有者设置为目录的组所有者

o+t

无影响

对目录具有写入权限的用户仅可以删除其所拥有的文件,而无法删除其他用户拥有的文件

 

特殊权限位的在RAC安装时候的作用请参考: RAC 安装用户组和权限设置

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值