linux so setuid,随记:关于linux setUID

setuid的优点:

1、 使用SetUID可以灵活的调整所有文件所有者权限

例如:

如果我们以普通用户

[root@localhost ~]# su xiweina

进入执行新建文件

[xiweina@localhost root]$ touch file

则出现

touch: 无法触碰 “fil“权限不够

而当我们执行查找touch所在的目录

[root@localhost ~]# ls -l `which touch`

-rwxr-xr-x 1 root root 42284 2009-07-13 /bin/touch

设置uid

[root@localhost ~]# chmod u+s /bin/touch

查看效果

[root@localhost ~]# ls -l `which touch`

显示s将x替换,现在的s即代表x也代表s有两者功能

-rwsr-xr-x 1 root root 42284 2009-07-13 /bin/touch

此时就可以建立了

[xiweina@localhost /]$ touch file

查询效果

[xiweina@localhost /]$ ls -l file

显示效果为

-rw-rw-r-- 1 root xiweina 0 12-15 19:05 file

通过上面我们可以再诠释下SetUID的定义,

当一个可执行文件(命令touch)设置SetUID权限后,当普通用户xiweina执行touch创建新文件时,实际上是以touch命令所有者root的身份在执行此操作,既然是以root身份执行,当然新建文件的所有者为root ,这就是SetUID的作用

setuid的缺点:

1 、为系统的安全性带来了隐患,如果Root用户为指定的程序文件配置过大的SetUID权限,那么就会为***或者非法用户打开了侵入系统的大门。

2、如果vi编辑器被设置了u+s,就更危险了,普通用户可以使用vi编辑/etc/shadow文件,因为具备root身份,可以进行任意读写操作(比如可以把任何一个用户密码位清空,则用户登录不需要输入密码)。但是使用more、cat等命令仍然无法查看文件/etc/shadow的内容,只有被授予了SetUID的vi可以查看和修改。同样,vi如果具有了SetUID权限,普通用户可以vi编辑/etc/passwd文件把自己的UID改为0 ,则他的权限就和root一样;可以vi编辑/etc/inittab文件把缺省运行级别改成6 ,则Linux会开机后不停的重启…,更可恶的是可以vi编辑/etc/inittab文件把缺省运行级别改成1,这时不太懂得人会以为机子坏了。

如果kill被授予setid权限,当普通用户执行kill时,因为kill被授予了SetUID权限,在执行的一瞬间具有了root权限,只要用户不爽想关闭任何服务都可以!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值