LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1290|回复: 14

set uid 问题

[复制链接]
发表于 2005-1-26 10:33:51 | 显示全部楼层 |阅读模式
用root用户建一个脚本文件 t.sh
  1. #!/bin/bash
  2. mkdir /root/exs
复制代码
增加执行权限 chmod +x t.sh  并设置 set uid: chmod u+s t.sh 现在t.sh的权限是 rwsr-xr-x
用root用户执行成功,使用普通用户(不属于root组)执行提示:
  1. creating '/root/exs/': Permission denied
复制代码


我的意思是想试验一下 set uid 属性,为什么不行呐
请教,thanks   :thank
发表于 2005-1-26 16:12:05 | 显示全部楼层
普通用户没有权限mkdir /root/exs 很正常阿
试一下把你的shell 改成 echo "asdfsadf"
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-1-27 15:54:18 | 显示全部楼层
Post by onion_gz
普通用户没有权限mkdir /root/exs 很正常阿
试一下把你的shell 改成 echo "asdfsadf"

我是用普通用户执行 set uid 的脚本啊
回复 支持 反对

使用道具 举报

发表于 2005-1-27 15:56:32 | 显示全部楼层
修改/root的读写权限
ex:
su - root -c "chmod a+w /root"
之后,就OK!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-1-27 19:57:17 | 显示全部楼层
Post by DSL
修改/root的读写权限
ex:
su - root -c "chmod a+w /root"
之后,就OK!

用你这个方法的话,设置 set uid 还有什么意义呐 :beat
回复 支持 反对

使用道具 举报

发表于 2005-1-27 20:55:07 | 显示全部楼层
mkdir 并不是set euid 的,所以不行,你可以写一个set euid的c的代码,用system来调用mkdir 不知是否可以?
回复 支持 反对

使用道具 举报

发表于 2005-1-27 20:56:29 | 显示全部楼层
Post by redspider
用root用户建一个脚本文件 t.sh
  1. #!/bin/bash
  2. mkdir /root/exs
复制代码
增加执行权限 chmod +x t.sh  并设置 set uid: chmod u+s t.sh 现在t.sh的权限是 rwsr-xr-x
用root用户执行成功,使用普通用户(不属于root组)执行提示:
  1. creating '/root/exs/': Permission denied
复制代码


我的意思是想试验一下 set uid 属性,为什么不行呐
请教,thanks   :thank

这个提示就是说你可以执行这个脚本,但是你没有对/root目录的写权限!
当然出险错误!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-1-27 22:39:05 | 显示全部楼层
Post by hujk
mkdir 并不是set euid 的,所以不行,你可以写一个set euid的c的代码,用system来调用mkdir 不知是否可以?

我用root写了个perl代码往/root/写入数据,权限设为 4755,用普通用户执行的时候也不行。
回复 支持 反对

使用道具 举报

发表于 2005-1-29 18:29:06 | 显示全部楼层
这个问题我想是关于操作系统如何fork一个子进程,是否复制effective uid给子进程,如果复制则子进程就有了root的权限
回复 支持 反对

使用道具 举报

发表于 2005-1-29 21:19:04 | 显示全部楼层
看看这篇文章,对于脚本进行setuid比对二进制可执行文件进行setuid危险的多,还是寻求其他办法
http://fanqiang.chinaunix.net/a4/b1/20010419/105032.html
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表