当前位置: 技术问答>linux和unix
shell的cgi程序无法执行系统命令如killall这种的
来源: 互联网 发布时间:2016-10-19
本文导语: 我用shell写的test.cgi程序如下 #!/bin/sh echo "" echo "" echo "" echo "" ls -l mkdir a dnsmasq #是一个自己写的可执行程序 echo "" 在程序中,程序单独是可以运行的,同时ls -l和mkdir a都可以执行,但是dnsmasq这个是无法执...
我用shell写的test.cgi程序如下
#!/bin/sh
echo ""
echo ""
echo ""
echo ""
ls -l
mkdir a
dnsmasq #是一个自己写的可执行程序
echo ""
在程序中,程序单独是可以运行的,同时ls -l和mkdir a都可以执行,但是dnsmasq这个是无法执行的,找了一些网页,说在shell中有一些命令是需要权限的,我现在的身份和用户组都是root,同时dnsmasq也是属于root的,另外在apache中user 是daemon,group也是daemon,我曾经修改过2者,修改为root但是依然无法启动dnsmasq,不知道大家有没有遇到过类似的问题,对了,还有像reboot这样的命令也不能执行
后来我又修改chmod 4775 test.cgi,chown root:root test.cgi
但是依然无法运行命令,不知道大家还有没有好办法呢?
#!/bin/sh
echo ""
echo ""
echo ""
echo ""
ls -l
mkdir a
dnsmasq #是一个自己写的可执行程序
echo ""
在程序中,程序单独是可以运行的,同时ls -l和mkdir a都可以执行,但是dnsmasq这个是无法执行的,找了一些网页,说在shell中有一些命令是需要权限的,我现在的身份和用户组都是root,同时dnsmasq也是属于root的,另外在apache中user 是daemon,group也是daemon,我曾经修改过2者,修改为root但是依然无法启动dnsmasq,不知道大家有没有遇到过类似的问题,对了,还有像reboot这样的命令也不能执行
后来我又修改chmod 4775 test.cgi,chown root:root test.cgi
但是依然无法运行命令,不知道大家还有没有好办法呢?
|
因为那些命令是root才有权限执行
而从web访问的用户对于linux系统来说都是nobody身份 当然不能执行。 要是不关啥命令 普通用户都能执行 还要root干什么?
不过
chmod 4775 test.cgi
chown root:root test.cgi
这样后 还不能执行? 你把命令加上全路径试试 比如/sbin/reboot
而从web访问的用户对于linux系统来说都是nobody身份 当然不能执行。 要是不关啥命令 普通用户都能执行 还要root干什么?
不过
chmod 4775 test.cgi
chown root:root test.cgi
这样后 还不能执行? 你把命令加上全路径试试 比如/sbin/reboot