我有两台Linux服务器,在一台服务器上有test.py脚本,其中包含pexpect模块,在另一台Linux机器上有test.py脚本ssh并执行命令。 现在,当我从cli运行它时,它工作正常,但是当我从浏览器中通过php页面运行它时,它就无法工作。请帮忙!!
#!/usr/bin/env python3
import sys
import pexpect
import os
import imp
import time
#uname = sys.argv[1]
#passwd = sys.argv[2]
try:
child = pexpect.spawnu('ssh username@reporter')
child.expect('\?')
child.sendline('yes')
child.expect('password:')
child.sendline('passs@123')
child.expect('\$')
child.sendline('sudo su - tftp')
child.expect('\$')
child.sendline('uname -a')
child.expect('\$')
sys.stdout.write(child.before)
f = open('j.txt','a')
f.write(child.before)
except Exception as e:
print(e)
那是test.py
<!DOCTYPE html>
<html>
<body>
<?php
chdir('/home/WHOIS');
$cmd = "python3 test.py";
while (@ ob_end_flush()); // end all output buffers if any
$proc = popen($cmd, 'r');
echo '<pre>';
while (!feof($proc))
{
echo fread($proc, 4096);
@ flush();
echo '<br>';
}
?>
</body>
</html>
这是php代码。 我已经检查了权限,它们很好。
文件权限。
-rw-rw-r-- 1 www-data www-data 294 Sep 5 12:31 test.php
-rwxrwxr-x 1 www-data www-data 514 Sep 5 13:30 test.py