用c写cgi程序,不能在cgi程序中执行shell命令???

dingyuanpu 2010-09-18 09:33:54
我用c写的cgi程序,想再cgi程序中用system执行一个shell命令,在后台直接运行可以执行,但是从网页点击按钮来触发这个cgi程序,发现system不能执行shell命令,这是为什么?请各位大侠指点
...全文
471 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xu1fei2 2013-06-08
  • 打赏
  • 举报
回复
system(“ifconfig”)正常执行。 system("ifconfig eth0 172.16.54.65")执行失败! 哪个高手帮忙分析下...
xu1fei2 2013-06-08
  • 打赏
  • 举报
回复
怎么都不行,我晕
iGarlic 2012-10-30
  • 打赏
  • 举报
回复
我也遇到了,不好使啊……
dingyuanpu 2010-09-18
  • 打赏
  • 举报
回复
自己顶一下,在线等待……
wwwunix 2010-09-18
  • 打赏
  • 举报
回复
原因主席已经讲过了。我就给你个解决方法吧:
把所有要执行的system()写到库函数中。然后让cgi程序调用这个库函数就可以了。
注意库函数文件需要有相应的权限。
例如:
把函数

void ls(char *path) {
char cmd[1024];
sprintf(cmd,"ls %s",path);
system(cmd);
}

编译成libmysystem.so文件。在CGI程序中这样使用:

int main(int argc,char **argv) {
printf("Content-type:text/html\n\n");
printf("<html>");
printf("<body>");
ls("/usr");
printf("</body>");
printf("</html>");
}

然后编译:
gcc cgi.c -o cgi -lmysystem
dingyuanpu 2010-09-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 steptodream 的回复:]
我估计这样是可以的 比如在系统里username用户可以执行your-cgi
#chown username.username your-cgi
#chmod a+x your-cgi
#chmod u+s your-cgi
[/Quote]

我的cgi程序中只有system函数不能执行,其他的能执行,比如sleep、strcmp等函数都能执行,
这是怎么回事呢?请大侠指教
steptodream 2010-09-18
  • 打赏
  • 举报
回复
我估计这样是可以的 比如在系统里username用户可以执行your-cgi
#chown username.username your-cgi
#chmod a+x your-cgi
#chmod u+s your-cgi
steptodream 2010-09-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 dingyuanpu 的回复:]

引用 3 楼 steptodream 的回复:
从网页上访问执行的人的权限属于nobody
如果nobody用户没有执行权限的话 当然是执行不了。


我的bon.conf:
User root
Group root
并不是nobody
[/Quote]
你最好再去了解一下这块。
按你的意思 我在apache的httpd.conf里改成
User root
Group root
那所有访问该网站的人都具有了root权限?你试试就知道了 事实上不是那样!
按我知道的 这样指定用户 一般都是以该用户来启动或者调度该程序
和你从外界访问不是一回事
dingyuanpu 2010-09-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 steptodream 的回复:]
从网页上访问执行的人的权限属于nobody
如果nobody用户没有执行权限的话 当然是执行不了。
[/Quote]

我的bon.conf:
User root
Group root
并不是nobody
steptodream 2010-09-18
  • 打赏
  • 举报
回复
从网页上访问执行的人的权限属于nobody
如果nobody用户没有执行权限的话 当然是执行不了。
lkncjy 2010-09-18
  • 打赏
  • 举报
回复
用shell语言写吧。。

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧