问题标签 [shell-exec]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
11882 浏览

php - 使用 shell_exec('passwd') 更改用户密码

我需要能够通过网页(在受控环境中)更改用户的密码。因此,为此,我正在使用以下代码:

我的问题是这个脚本没有更改用户“testUser”的密码。我究竟做错了什么?

谢谢

0 投票
4 回答
6345 浏览

php - 如何正确处理 PHP Shell_exec 中的空格?

我通过命令行在 win2003 服务器 PHP 526 上运行。

我有一个命令行字符串:

尝试在 php 代码中执行此操作

导致 foo.exe 失败,因为它将 -p arg 解释为“d:\data”。

$cdm但是,复制到 Windows shell cmdline的相同字符串会成功执行。

如何正确处理 PHP 中的空格shell_exec

0 投票
2 回答
2004 浏览

php - php shell_exec() 通过 cygwin

我编写了一个脚本,通过pdftex. 问题是pdftex只能在linux上运行。

我正在使用shell_exec().

我真的没有能力将 linux 机器设置为 Web 服务器。我有我的客户端计算机,但它位于我无法控制的防火墙后面。我确实可以控制我的工作服务器,它运行 SBS 2003 和运行 apache 和 php 的 Windows 2000 虚拟机。据我所知,您无法pdftex在 Windows 中安装,如果可以,它也无法与shell_exec().

有没有办法用cygwin解决这个问题?我可以在 cygwin 中安装 pdftex,然后配置 php 在 cygwin 中运行shell_exec()命令。如果这是可能的,有人能指出我正确的方向吗?

另外,我想知道是否有其他行动方案。我不介意购买主机,但任何共享主机计划都不支持该应用程序。它必须是虚拟或专用托管计划;我买不起的东西。

0 投票
1 回答
2842 浏览

php - Exec() 在 Windows 上的 PHP 中没有打开 cmd.exe 安全漏洞?

我需要一个 web 脚本来执行一个 exe 文件,然后将 exe 上的结果返回给 web 请求。

我可以回显 exe 的结果或修改 exe 以将其结果保存到文件中,然后读取文件以回显 Web 请求。

问题是在 IIS 下使用 php 所有 exec() shell_execute() system() 类型函数会出现“无法分叉”错误,因为 IIS 匿名用户 IUSER_%COMPUTER_NAME% 无权访问 C:\windows\system32\cmd 。可执行程序

这可以通过更改此 IIS 匿名用户对 cmd.exe 的权限来解决,但这会严重削弱安全性(我相信)。

有什么方法可以通过 IIS 下的 PHP 脚本调用 Exe 而不向 IIS 匿名用户打开 cmd.exe 吗?

帮助表示赞赏。

为什么我需要这样做?我有一个序列号生成器,当某人通过信用卡购买我的产品时,我的支付处理器需要调用一个 url,将许可证名称作为参数传递,并返回该许可证名称的序列号。

我的许可证密钥生成器是 WinLicense,我有一个 exe。

我需要运行类似的东西

shell_exec("C:\inetpub\wwwroot\test.com\testLicense.exe \"".$regName."\""); // 或 exec() 或 system()

(testLicense.exe 将结果存储在我的 php 脚本可以回显的文件中)

0 投票
4 回答
3254 浏览

php - 在 PHP 中通过 shell_exec 压缩文件:路径问题

我正在开发一个网络备份服务部分,其中允许用户下载一个 zip 文件,其中包含他们从备份的列表中选择的文件。

压缩过程是通过 shell_exec 命令完成的。为此,我已授予 apache 用户 no-password sudo 对 zip 命令的权限。

我的问题是,因为我不能对包含用户备份文件的文件夹执行“sudo cd /path/to/user/files”,所以我需要指定要压缩的文件的完整绝对路径,然后进入我不想要的 zip 文件。

这就是我的意思:

用户“test1”备份了他们的文件,这些文件存储如下
/home/backups/test1/my pics/pic1.jpg
/home/backups/test1/my pics/pic2.jpg
/home/backups/test1/my图片/pic3.jpg
/home/backups/test1/hello.txt
/home/backups/test1/music/band/song.mp3

当这些文件被压缩时,它们会保留完整的路径,但我只想显示:
my pics/pic1.jpg
my pics/pic2.jpg
my pics/pic3.jpg
hello.txt
music/band/ song.mp3

有没有办法告诉 zip 截断路径,或者为每个文件指定一个自定义路径?
或者有什么方法可以将工作目录更改为用户的根备份文件夹,这样我就可以简单地指定相对文件路径。

感谢您的阅读,希望您能走到这一步,这一切都是有道理的!

0 投票
2 回答
584 浏览

php - 在 PHP 中执行 shell 脚本时出错

我正在尝试通过以下方式执行 shell 命令:

但它没有给出任何输出。可能是什么原因?

尽管它不起作用,但以下行按预期工作:

0 投票
2 回答
6422 浏览

php - 用 PHP 的 shell_exec 调用 bash——慢

我正在使用 PHP 的 shell_exec 函数在我的服务器上调用 bash 脚本。

现在,我以前从 CGI 脚本(“bash -x ...”)运行命令,它更快(即时)。现在,脚本运行(> 10 秒)和生成的页面渲染需要非常缓慢的时间。

有什么想法为什么这么慢?我仍然想从 PHP 而不是 CGI 运行 bash 脚本,因为我的整个站点都被转换为 PHP。也许另一个功能更合适?任何想法,将不胜感激。

0 投票
4 回答
550 浏览

java - 调用依赖于外部库的java程序

我正在尝试在 php 中调用一个 java 程序以将其与 Web 界面一起使用。

Java程序依赖于一个外部库:commons-cli-1.2.jar

所以基本上我需要在调用java程序之前导出它;但如果我先将其导出为:

然后调用java程序为:

我认为它为每个调用创建不同的外壳;那么导出对java程序没有任何影响。还是我错了?

否则,它应该在服务器中输出一个文件。但根本没有。那么,有什么问题呢?任何想法?

编辑:但是可能是因为某些参数(例如 para_i)代表输入文件名,所以我必须为此指定完整路径吗?因为我只是假设如果输入文件在同一个工作目录中,就不会有任何问题,不是吗?

edit-2:当我使用命令行时它正确输出;)

0 投票
1 回答
1352 浏览

php - PHP exec_shell 使用 unrar.exe

我正在运行以下 php 代码;

哪个不起作用...我希望它将文件提取到同一目录中。如果我将 exec 的内容复制到命令行提示符中,它工作得很好,所以有点困惑。

尝试以下;

返回 unrar 帮助文件的最后一行(这是预期的)。

0 投票
3 回答
155 浏览

php - 在 exec() 之前保护字符串

我有一个 PHP 应用程序,它接受用户输入的 $imageurl 并执行以下操作:

现在显然我必须采取一些预防措施来阻止用户执行任意代码。例如,如果用户设置$url";rm -rf *;"根本不好。

所以对于初学者来说,我必须过滤掉",这样无论他们输入什么,他们都不能从他们的输入中逃脱,成为convert. 但是我也应该过滤掉;吗?我见过带有分号的网址......虽然分号在这里确实很危险,但过滤掉"仍然可以保证我的安全,对吗?但是网址可以包含"在其中吗?还有其他我应该注意的角色吗?

也许我应该尝试逃避它们,而不是过滤掉字符。那么我应该尝试转义 shell 专门解释的每个字符吗?或者只是逃避",因为其他一切都是“预先转义”的,因为它在双引号内?

对不起,我漫无目的的困惑,我只是这方面的新手,想保持安全!

谢谢,
马拉