Pregunta

Estoy tratando de crear un Servidor de Telnet usando Python en Ubuntu 12.04.Con el fin de ser capaz de ejecutar comandos como un usuario diferente, tengo que usar el su comando, que luego se le pedirá la contraseña.Ahora, yo sé que el mensaje es enviado a la STDERR corriente, pero no tengo idea de que arroyo se supone que debo enviar la contraseña.Si trato de enviar a través de STDIN, me sale el error: su: must be run from a terminal.¿Cómo debo proceder?

¿Fue útil?

Solución

Si usted realmente desea utilizar el sistema de su el programa, usted tendrá que crear una terminal de par, ver man 7 pty, en python que pty.openpty la llamada que le devuelve un par de descriptores de archivo, uno para ti y uno para la ub.Entonces usted tiene que el tenedor, al niño en el proceso de cambio stdin/out/err esclavo fd y el exec de la ub.En el proceso primario de enviar y recibir datos desde el maestro de fd.El kernel de Linux se conecta esos juntos.

Alternativamente, usted quizás podría emular su en su lugar?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top