LinuxSir.cn,穿越时空的Linuxsir!

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

关于提升和降低权限的问题,困惑阿

[复制链接]
发表于 2006-12-30 11:26:53 | 显示全部楼层 |阅读模式
有些东西如部分命令只有root用户能用,以root用户创建文并编辑程序后,想让普通用户也能运行它,可是普通用户执行时发现程序内部部分东西没权限运行,比如sock_raw.怎么改都不行,
谁能给个好办法我用了setuid(geteuid()),可是还不行。

大侠们帮个忙吧。
发表于 2006-12-30 11:57:02 | 显示全部楼层
# chown root <cmd>
# chmod u+s <cmd>
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-30 15:57:20 | 显示全部楼层
-rwxr-xr-x
都这样了还不行啊,哪个用户都能运行,现在关键是让普通用户运行到创建sock_raw时拥有root权限
回复 支持 反对

使用道具 举报

发表于 2006-12-30 18:12:33 | 显示全部楼层
# chown root <cmd>
# chmod u+s <cmd>
你要是运行了这俩命令就不会是这样
回复 支持 反对

使用道具 举报

发表于 2006-12-30 18:21:27 | 显示全部楼层
setuid(geteuid()) 为什么要这样用呢
你直接setuid(要使用的普通用户uid)试试
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-31 13:17:59 | 显示全部楼层
楼上说的是降低权限,这些在程序里面应该没问题,可以降低root为普通用户,但是怎么才能写在代码里面提升为root权限呢?能够让普通用户一运行就能获得root权限,前提程序所有者为root

zhllg 和 khc 说的没问题,可以但我希望的事这个程序无论到哪都能运行不需要chmod,比如说linux里面的ping 到哪都能用,但里面的原始sock_raw 只有root用户才能创建,但是普通用户也可以应用ping,谁能说说它是怎么实现的?
回复 支持 反对

使用道具 举报

发表于 2006-12-31 13:28:54 | 显示全部楼层
$ ls -l /bin/ping
-rwsr-xr-x 1 root root 30804 2006-10-16 10:32 /bin/ping

ping 已經是setuid的了… 你不需要用chmod是因為你系統安裝時已經幫你chmod了

如果隨便就可以有root,系統安全就沒有了
回复 支持 反对

使用道具 举报

发表于 2006-12-31 14:36:03 | 显示全部楼层
-rwsr-xr-x
注意第四个字符是s
-rwxr-xr-x
你之前列出的这个还没有suid位

# chmod u+s command
注意前面的#号
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-31 15:29:44 | 显示全部楼层
好了,就算解决了吧,就chmod吧
斑竹说得太详细了.....
谢谢各位了。
回复 支持 反对

使用道具 举报

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

本版积分规则

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