Linux学习---文件特殊权限(SUID)

SetUID的功能

1.    只有可执行的二进制程序或者shell程序才能设定SUID权限

2.    命令执行者要对该程序(命令)拥有x(执行)权限

3.    命令执行者在执行该程序时获得该程序文件owner的身份(在执行程序的过程中灵魂附体为文件的owner)

4.    SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效

 

以passwd命令举例

ls –l /usr/bin/passwd #passwd命令,不是/etc/passwd配置文件

bl@ubuntumma:~$ ls -l /usr/bin/passwd

-rwsr-xr-x 1 root root 47032 Jul 16  2015 /usr/bin/passwd

 

bl@ubuntumma:~$ ls -l /etc/shadow

-rw-r----- 1 root shadow 1292 Aug 25 16:56 /etc/shadow

   以上可以看出,

(1)passwd命令的权限中,有s。

(2)shadow文件的权限普通用户没有w权限,root用户有w权限

(3)因为passwd命令有s(即设置了suid功能),那么bl用户在执行passwd命令时,就会暂时获得命令owner(root)的权限,而root对shadow文件有w权限,所以,普通用户bl此时也有了w权限,在执行passwd时是可以修改密码的(即修改shadow文件)。

 

设定SUID

4代表SUID

chmod 4764

chmod u+s

bl@ubuntumma:~$ ls -l test

-rwxrw-r-- 1 bl bl 0 Aug 26 12:43 test

 

bl@ubuntumma:~$ chmod 4764 test

bl@ubuntumma:~$ ls -l test

-rwsrw-r-- 1 bl bl 0 Aug 26 12:43 test

 

删除SUID,直接设置权限即可

bl@ubuntumma:~$ chmod 664 test

bl@ubuntumma:~$ ls -l test

-rw-rw-r-- 1 bl bl 0 Aug 26 12:43 test

这时,再次设置SUID会出现什么情况呢

bl@ubuntumma:~$ chmod u+s test

bl@ubuntumma:~$ ls -l test

-rwSrw-r-- 1 bl bl 0 Aug 26 12:43 test

S变成大写了,这说明SUID设置出错,因为644权限里的owner本身就没有x权限,所以无法设置SUID

 

注:SetUID很危险,如果把vim命令设置了SUID,那么普通用户就可以用vim修改系统所有配置文件,比如把/etc/passwd文件中自己的用户分类修改成0(超级用户)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值