如何运行 Python 程序以输出其 STDOUT 并将其 STDIN 输入到远程 telnet 客户端/从远程 telnet 客户端输入其 STDIN?
程序所做的只是打印出文本,然后反复等待 raw_input()。我希望远程用户无需 shell 访问即可使用它。它可以是单线程/单用户。
在 Unix 系统上,您可以为此使用inetd 。它将为您打开网络连接,因此您的程序将按原样运行。
将 Python 脚本放入该用户的 shell。(或者如果这不起作用,请将其包装在 bash 脚本甚至可执行文件中)。
(您可能必须将其放在 /etc/shells (或等效项)中)
如果你不需要完整的 telnet 功能,你可以只使用一个套接字。
查看标准 python 库中的Socket Server模块。它将使您能够轻松编写一个程序,该程序将在端口上侦听输入/输出。
它不支持正确的 telnet 协议协商,但你可能不需要它来做你正在做的事情。
您可以创建一个新的 linux 用户并将其 shell 设置为您的脚本。
然后,当他们远程登录并输入用户名/密码时,程序将运行而不是 bash 或任何默认 shell。