当前位置: 技术问答>linux和unix
请问cgi能不能运行system或者其他调用shell命令的函数呢?
来源: 互联网 发布时间:2015-08-15
本文导语: 我写了一个shell程序,想通过b/s模式进行调用他,让系统这个shell程序,但发现没有效果 例如: testsystem.cgi 用 c 语言写的 #include int main(void) { printf("Content-type: text/htmlnn"); printf("test run shell"); s...
我写了一个shell程序,想通过b/s模式进行调用他,让系统这个shell程序,但发现没有效果
例如:
testsystem.cgi 用 c 语言写的
#include
int main(void)
{
printf("Content-type: text/htmlnn");
printf("test run shell");
system("ifconfig > /usr/info.txt");
}
该程序,直接在freebsd下面 ./testsystem.cgi 可以通过
但是在web上面运行就没有效果了,是不是有些什么权限要设置?
例如:
testsystem.cgi 用 c 语言写的
#include
int main(void)
{
printf("Content-type: text/htmlnn");
printf("test run shell");
system("ifconfig > /usr/info.txt");
}
该程序,直接在freebsd下面 ./testsystem.cgi 可以通过
但是在web上面运行就没有效果了,是不是有些什么权限要设置?
|
你把apache用户设置为root组中
改HTTPD.CONF文件
找到这一段
USER APACHE
GROUP APACHE
(上面有可能是NOBODY)
修改成:
USER ROOT
GROUP ROOT
重新启动 APACHE 就可以了
改HTTPD.CONF文件
找到这一段
USER APACHE
GROUP APACHE
(上面有可能是NOBODY)
修改成:
USER ROOT
GROUP ROOT
重新启动 APACHE 就可以了
|
首先system可以用,不过在web上看你用什么,如果是apache,记住他的权限是局限于nobody,你在freebsd下的运行权限是root的话,在web上运行就不是了。
其次,你先诊断一下到底是不是system的问题,把system那行注释了,例如apache默认路径是cgi-bin下,你是否放在哪,web上能不能显示没有,如果真是system那行的问题,你先把/usr/info.txt的权限放低,再试试。
其次,你先诊断一下到底是不是system的问题,把system那行注释了,例如apache默认路径是cgi-bin下,你是否放在哪,web上能不能显示没有,如果真是system那行的问题,你先把/usr/info.txt的权限放低,再试试。
|
system 肯定是能用的。是不是得web server 设置的不对。