当前位置: 技术问答>linux和unix
请问用c语言写的CGI程序能否实现远程关机及重起计算机?
来源: 互联网 发布时间:2015-03-22
本文导语: 我在cgi程序中调用了 system("reboot"); 或者system("shutdown -r now"); 编译好了之后,我在linux控制台下敲 ./my.cgi可以重起机器, 但是我在另外一台机器上用ie浏览器访问 http://IP/cgi-bin/my.cgi 那台LINUX机器没反应,不能重起计算...
我在cgi程序中调用了
system("reboot"); 或者system("shutdown -r now");
编译好了之后,我在linux控制台下敲 ./my.cgi可以重起机器,
但是我在另外一台机器上用ie浏览器访问 http://IP/cgi-bin/my.cgi
那台LINUX机器没反应,不能重起计算机,真苦恼!
谁写过这种程序,请指教!谢谢
system("reboot"); 或者system("shutdown -r now");
编译好了之后,我在linux控制台下敲 ./my.cgi可以重起机器,
但是我在另外一台机器上用ie浏览器访问 http://IP/cgi-bin/my.cgi
那台LINUX机器没反应,不能重起计算机,真苦恼!
谁写过这种程序,请指教!谢谢
|
你的权限问题,呵呵
|
你的cgi中实行关机的那个命令需要特权,比如说是exec(shutdown),web服务器有特权
执行cgi,(他的权限都777了)。但是执行到exec的地方,问题来了,没有权限执行 shutdown.因为这个时候的进程uid需要表明你是系统的超级用户,可你仅仅以一个web访问者
的账号运行这个cgi
你需要为这个cgi设置SUID
执行cgi,(他的权限都777了)。但是执行到exec的地方,问题来了,没有权限执行 shutdown.因为这个时候的进程uid需要表明你是系统的超级用户,可你仅仅以一个web访问者
的账号运行这个cgi
你需要为这个cgi设置SUID
|
cgi程序的启动用户(nobody)可能没有reboot权限。