我想在Ubuntu 12.04上使用Python創建一個Telnet服務器。爲了能夠以不同的用戶身份執行命令,我需要使用su
命令,然後提示輸入密碼。現在,我知道提示被髮送到STDERR流,但我不知道我應該發送密碼到哪個流。如果我嘗試通過STDIN發送它,則會收到錯誤:su: must be run from a terminal
。我如何繼續?Telnet服務器的Ubuntu - 密碼流
4
A
回答
1
如果您確實想要使用系統的su
程序,您需要在python中創建一個終端對,參見man 7 pty
,這是pty.openpty
調用,返回一對文件描述符,一個給你,一個給su。然後你必須fork,在子進程中改變stdin/out/err到slave fd和exec su。在父進程中,您將數據發送到master fd並從master接收數據。 Linux內核將這些連接在一起。
或者你也許可以效仿su
?
+0
我想到了一個簡單的解決方案,使用mkpasswd -m sha-512 -salt =%s -s
相關問題
- 1. Ubuntu服務器與gitolite密碼
- 2. 印SMTP服務器和Telnet
- 3. ubuntu服務器中默認的mysql密碼16.04
- 4. telnet catch ctrl + c服務器
- 5. 流從移動設備發送加密密碼到服務器
- 6. 從服務器上通過SSH的telnet
- 7. Ubuntu服務器
- 8. 在ubuntu服務器中爲websvn設置密碼?
- 9. Ubuntu服務器上的Mercurial服務器
- 10. Telnet服務器中的換行符
- 11. Ubuntu服務器16.04與dropbear
- 12. 無法使用外部IP,在Ubuntu的Coturn服務器涓流ICE服務器
- 13. 的ubuntu - Ubuntu的16.04服務器
- 14. 流星 - 如何在密碼上使用服務器端驗證
- 15. 流星帳戶設置密碼引發服務器錯誤
- 16. 如何處理與Telnet服務器Telnet會話
- 17. 在C編寫Telnet服務器和Telnet客戶端
- 18. 帶密碼的Sql服務器備份
- 19. 的Ubuntu服務器13.04
- 20. Ubuntu服務器中的Grails
- 21. 從AWS Ubuntu的服務器
- 22. Telnet後臺服務器回覆
- 23. Telnet阻止C#TCP服務器
- 24. 嘗試通過SSH恢復我的服務器的sudo密碼[ubuntu]
- 25. SSH客戶端到telnet服務器JAVA
- 26. Ruby線編輯telnet服務器
- 27. 蟒蛇telnet服務器崩潰
- 28. ssh隧道通過telnet服務器
- 29. 蟒蛇行編輯telnet服務器
- 30. Telnet到谷歌郵件服務器
這聽起來像個壞主意。世界已經轉向SSH以阻止密碼被嗅探出網絡。 這就是說,你有沒有想過以所需用戶的身份運行telnet服務器,或者以root身份運行telnet服務器,並在執行該命令之前執行os.setuid()。 您也可以使用普通的SSH服務器並使用sudo。 –
只要我完成了Telnet的實現,我就可以爲它添加網絡安全層。問題不是以root用戶或該用戶身份運行它。問題是使用遠程用戶提供的密碼登錄系統。 – hackwa
您是否曾用'-S'(stdin)選項使'sudo'代替'su'而導致'sudo'從標準輸入而不是終端設備讀取密碼? –