[英]How do I drop a bash shell from within Python?
我正在使用python tcp shell; 我希望能夠遠程登錄到端口,並用shell提示我:例如。
$ telnet localhost 5555
Connected to localhost.
Escape character is '^]'.
$
下面的答案對幫助我前進很有幫助。 這是工作代碼。
import SocketServer, os, subprocess
class EchoRequestHandler(SocketServer.BaseRequestHandler ):
def setup(self):
print self.client_address, 'connected!'
self.request.send(str(self.client_address) + '\n')
self.request.send(os.system('sh'))
def handle(self):
data = 'dummy'
while data:
data = self.request.recv(1024)
self.request.send(os.popen(data.strip()).read())
if data.strip() == 'bye':
return
def finish(self):
print self.client_address, 'disconnected!'
self.request.send('bye ' + str(self.client_address) + '\n')
server = SocketServer.ThreadingTCPServer(('', 7784), EchoRequestHandler)
server.serve_forever()
import os
os.system('sh') # or bash, tcsh, zsh, whatever. :-P
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.