当前位置: 技术问答>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权限。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。