我现在正在编写一个小脚本来执行gpg
从PHP (FPM)
但不知何故,PHP 不允许我执行任何二进制/shell 脚本并返回退出代码 127。但是如果我在 php-cli 中执行这些,它可以正常工作。
PHP 配置:
PHP: php-fpm
网络服务器:nginx
克鲁特/user/home/php-root
CHDIR /
安全模式Off
禁用exec*
?:否
我尝试了ff:
- 我尝试执行
exec('whoami')
或ls
全部返回 NULL 并给出退出代码 127 -
shell_exec()
所有命令都返回 NULL -
system()
也返回 NULL - 使用完整路径
- 使用
2>&1
返回 NULL - 复制
gpg
,whoami
chrooted-root/bin
- 从
chrooted-root/bin
执行二进制文件
据我尝试,没有任何效果。
有没有人能够让PHP-FPM在chroot环境中执行shell/二进制?
谢谢!
我发现将/bin/sh
复制到chrooted-root/bin
是有效的。还需要依赖项:
$ ldd /bin/sh
linux-vdso.so.1 (0x00007ffc098c6000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f2e92d52000)
/lib64/ld-linux-x86-64.so.2 (0x00007f2e9331e000)
所以我不得不在我的 chroot 目录下复制/lib/x86_64-linux-gnu/libc.so.6
和/lib64/ld-linux-x86-64.so.2
。
我不确定它是否在所有发行版下都/bin/sh
,可能是/bin/bash
或其他什么。