请问用c语言写的CGI程序能否实现远程关机及重起计算机?

xrenwu 2003-06-30 01:29:46
我在cgi程序中调用了
system("reboot"); 或者system("shutdown -r now");

编译好了之后,我在linux控制台下敲 ./my.cgi可以重起机器,
但是我在另外一台机器上用ie浏览器访问 http://IP/cgi-bin/my.cgi
那台LINUX机器没反应,不能重起计算机,真苦恼!

谁写过这种程序,请指教!谢谢
...全文
230 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
xrenwu 2003-07-01
  • 打赏
  • 举报
回复
tiejun(21世纪牛顿)大侠,请问怎么转啊?
能不能说的详细点?
tiejun 2003-07-01
  • 打赏
  • 举报
回复
试试用setuid系统调用吧!
tiejun 2003-06-30
  • 打赏
  • 举报
回复
你要在你的cgi中先转到一个有reboot权限的用户,再执行reboot!
tiejun 2003-06-30
  • 打赏
  • 举报
回复
cgi程序的启动用户(nobody)可能没有reboot权限。
luoda 2003-06-30
  • 打赏
  • 举报
回复
这样好了,在这个cgi中添些调试信息,看问题在哪里
比如,打开一个文件,fp
fopen(...);
fprintf( fp,"before shutdown\n");
fprintf(fp ,"return value is %d\n",sytem(.....));
fprintf(fp,"after shutdown\n you should never see this\n");//其实正确的时候
//中间的fprintf也不应该出现在日志文件中,出错应该显示出错代码
fclose(fp);

blh 2003-06-30
  • 打赏
  • 举报
回复
#include <unistd.h>
#include <sys/reboot.h>

int reboot (int flag);
blh 2003-06-30
  • 打赏
  • 举报
回复
用函数调用
#include <unistd.h>
#include <linux/reboot.h>

int reboot (int magic, int magic2, int flag, void *arg);
xrenwu 2003-06-30
  • 打赏
  • 举报
回复
试过了,机器还是纹丝不动,没有反应
exec("shutdown -r now");我也试了,不行.

我在linux控制台下敲 ./my.cgi却可以.
就是用IE浏览器远程操作不行.
luoda 2003-06-30
  • 打赏
  • 举报
回复
老猫上面的最后一个, chmod+s,你有没有试验过?
xrenwu 2003-06-30
  • 打赏
  • 举报
回复
"你需要为这个cgi设置SUID"

请问怎么设置啊?

luoda 2003-06-30
  • 打赏
  • 举报
回复
原来你用的是system,不过道理是一样的
luoda 2003-06-30
  • 打赏
  • 举报
回复
你的cgi中实行关机的那个命令需要特权,比如说是exec(shutdown),web服务器有特权
执行cgi,(他的权限都777了)。但是执行到exec的地方,问题来了,没有权限执行 shutdown.因为这个时候的进程uid需要表明你是系统的超级用户,可你仅仅以一个web访问者
的账号运行这个cgi

你需要为这个cgi设置SUID
blh 2003-06-30
  • 打赏
  • 举报
回复
把reboot改称shutdown -r实施
xrenwu 2003-06-30
  • 打赏
  • 举报
回复
还是不行啊,大侠快来帮我吧
xrenwu 2003-06-30
  • 打赏
  • 举报
回复
up
xrenwu 2003-06-30
  • 打赏
  • 举报
回复
blh(老猫) 大侠,我按照您的指点做了,可是还是不能重起机器呀,
怎么办?
我在linux控制台下敲 ./my.cgi却可以重起机器.
blh 2003-06-30
  • 打赏
  • 举报
回复
应该是web调用cgi的权限不够
chown root my.cgi
chmod 755 my.cgi
chmod a+s my.cgi
实施
xrenwu 2003-06-30
  • 打赏
  • 举报
回复
请问要怎样设置权限呢?

chmod 777 cgi-bin
chmod 777 my.cgi
我都试过了,还是没有反应啊
blh 2003-06-30
  • 打赏
  • 举报
回复
你的权限问题,呵呵

23,222

社区成员

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

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