我尝试使用 PHP shell_exec 函数运行 su 命令。起初我试过:
<?php
echo(shell_exec('echo \'password\' | su user -c \'whoami\' 2>&1;'));
?>
Run Code Online (Sandbox Code Playgroud)
我得到了:
su: must be run from a terminal
Run Code Online (Sandbox Code Playgroud)
然后我阅读了有关使用 python 的 pty 生成终端并将其放入 shell 代码的内容:
<?php
echo(shell_exec('echo "if [ -t 1 ] ; then echo "terminal found"; fi; echo \'password\' | su user -c \'whoami\'; exit" | python -c \'import pty; pty.spawn("/bin/bash")\' 2>&1;'));
?>
Run Code Online (Sandbox Code Playgroud)
这是输出:
if [ -t 1 ] ; then echo terminal found; fi; echo 'password' | su user -c 'whoami'; exit …Run Code Online (Sandbox Code Playgroud)