关于cgi脚本如何以root权限执行的小技巧
(2011-02-25 15:08:42)
最近在想着写一些通过网页启动和关闭服务的CGI脚本, 本来以为直接对python写的CGI脚本进行chmod
4755的setuid位就可以让cgi脚本以root身份运行, 结果发现不行. 在网上搜索了一下, 发现有不少人有同样的困惑,
而且有位兄弟说C语言写的程序可以, perl的脚本就不行. 于是研究了一下, 终于恍然大悟, 其实原因很简单, C语言是编译语言,
最后的可执行binary执行时候是自己的Process里运行, setuid可以正常工作, 而CGI脚本是解释语言,
由解释器比如/usr/bin/python, /usr/bin/perl来执行, setuid就无法正确设置为root,
解决的方法很简单, chmod 4755你的CGI解释器就可以了,比如chmod 4755
/usr/bin/python.不过我的建议是复制一份出来设置成这种特殊的权限位, 当然,
更理想的还是直接用C语言写个setuid执行特定命令的东东, 不然CGI可能会被人当后门用哟...
分享:
喜欢
0
赠金笔
加载中,请稍候......
评论加载中,请稍候...
发评论
登录名: 密码: 找回密码 注册记住登录状态
昵 称:
评论并转载此博文
发评论
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。