php - 通过 php 读取二进制文件并通过 shell 上的 exec 保存它

标签 php linux shell unix

如何通过shell保存二进制内容?

我写的示例不起作用

$f = file_get_contents("my.exe");
exec("echo $f > new.exe");

最佳答案

好吧,也许将来有人会想要这个待办事项,带有 nobody/www-data 的 php 可以写入根文件

function my_file_put_contents($f, $content){
    $rand_file = "/tmp/my_tmp_".uniqid('', true);
    file_put_contents($rand_file, $content);
    exec('sudo cp '.escapeshellarg($rand_file).' '.escapeshellarg($f).' && rm '.escapeshellarg($rand_file));
}

然后使用 visudo 编辑/etc/sudoers

www-data ALL = (ALL) NOPASSWD: /bin/rm
www-data ALL = (ALL) NOPASSWD: /bin/cp

关于php - 通过 php 读取二进制文件并通过 shell 上的 exec 保存它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48450941/

相关文章:

php - 为mysql数据添加前缀

php - Linux、Apache、PHP - 需要文档上传、编辑和版本控制解决方案

bash - 从日志文件中雕刻数据

shell - shell/bash 脚本中使用 cut

python - 使用 python-gstreamer 指定声卡

c - 在 Unix 中如何处理 '<'?

php - 在我的网站中创建一个图片库,其中有包含许多图片的相册

php - 最新的 symfony 安装程序与 Composer

php - 如何解决相似页面的重复页面内容问题

linux - 使用linux计算文本文件中的行数