php system执行shell程序

shell程序:
#!/bin/bash
mv /root/test.zip /var/www/html
unzip test.zip -d test
chmod 777 test
echo "OK!"
php程序:
<?php

system("/var/www/html/shell.sh",$rs);
print_r($rs);
?>
打印结果: OK! 0
看结果是执行成功了,但是为什么test.zip没有从root目录下移到html下,下面的程序都没有起作用

直接执行shell 程序能否成功~
如果可以成功,就检查php程序的权限,是否能移动root目录下的文件~

像这种情况一般都是权限的问题追问

是权限问题,由于是apache,所以执行用户是apache,没有root权限,而修改/etc/passwd强行将apache用户修改成root的权限,那么apache都起不来

追答

好像使用非root用户去操作 /root 下的东西是比较困难的,我是不知道有什么好方法...
看看有大神指教没有~

温馨提示:内容为网友见解,仅供参考
无其他回答

如何让php执行shell
system() 输出并返回最后一行shell结果。exec() 不输出结果,返回最后一行shell结果,所有结果可以保存到一个返回的数组里面。passthru() 只调用命令,把命令的运行结果原样地直接输出到标准输出设备上。相同点:都可以获得命令执行的状态码 例子:system("\/usr\/local\/bin\/webalizer\/webalizer");

PHP system()函数如何使用?详细点,我要调用一个shell文件,比如a.sh,我...
其实就是一个调用命令的方法 你怎样执行shell的就怎样写 echo '';\/\/确保文件在当前目录执行$last_line = system('a.sh', $retval);echo 'Last line of the output: ' . $last_line . 'Return value: ' . $retval;

菜鸟求助:PHP中调用系统命令为何有些命令总是失败
PHP提供4个专门的执行外部命令的函数:exec(), system(), passthru(), shell_exec()1)exec()原型: string exec ( string $command [, array &$output [, int &$return_var ]] )说明: exec执行系统外部命令时不会输出结果,而是返回结果的最后一行。如果想得到结果,可以使用第二个参数,让...

我在php中执行shell命令不成功,但是直接命令行执行可以。
passthru的返回值是void,所以echo无效 要查看命令的返回值,应设置passthru的第二个参数 你可以试下

命令执行漏洞
system exec shell_exec passthru popen proc_popen 全局搜索这些函数,观察是否可以控制。命令执行漏洞的防御:可控点为待执行的程序 <?php arg = $_GET[‘cmd’];if($arg){ system(“$arg”);} ?> [if !supportLists]l [endif]\/?cmd=id [if !supportLists]l [endif]\/?cmd=...

php 无法执行shell脚本最有效的方法
要确定的是,不是脚本本身的问题,文件目录权限之类的都好了的 1、首先看你的nginx用户叫啥名字  lsof -i:80 2、执行visudo命令 3、给www用户添加root权限并且不需要密码 这样就可以访问了,这个只是解决无权限访问的问题,必须加sudo。

对于php中的shell_exec()函数执行过程的疑问?
exec()系列函数的功能在于替换当前进程的执行环境,包括代码段、初始化数据段、非初始化数据段和栈都会被替换。然而,针对shell_exec的解释却有所不同。它仅通过shell执行命令并将结果作为字符串返回,它并未实现替换当前进程的机制。因此,循环执行命令后,程序依然可以运行到第二轮。尝试执行如下代码,执行...

php写完代码怎么执行(php编写程序)
方法四:反撇号`(和~在同一个键)执行系统外部命令 1 2 3 ???echo`dir`;?知识点:在使用这种方法执行系统外部命令时,你要确保shell_exec函数可用,否则是无法使用这种反撇号执行系统外部命令的。怎样在本地运行PHP1、首先需要在电脑上安装PHPstudy软件和notepad这两个代码编辑软件(如果找到可以...

黑客技术:文件上传漏洞——一句话木马原理
PHP一句木马的代码示例如下:通过HTTP POST方式获取shell变量的值,然后利用eval()函数执行shell内容。eval()函数需要配合system()函数使用,system()函数用于执行外部程序并显示输出,或与蚁剑等工具连接。ASP一句木马的代码形式与PHP类似,都是通过eval函数执行request中的cmd内容,实现对服务器的控制。JSP...

php 执行 shell 命令,权限不足,怎么办
换其他方式吧,php是www用户去访问的,可以执行shell的话,不安全

相似回答