Un amigo, usando una máquina remota, SSHed a mi máquina y ejecutó el siguiente script de Python:
mientras que (1):
.... imprimir "hola mundo"
(este script simplemente imprime 'hello world' continuamente).
Ahora estoy conectado a mi máquina. ¿Cómo puedo ver el resultado del script que estaba ejecutando mi amigo?
si ayuda, puedo 'detectar' el script que mi amigo está usando:
yo @ home: ~ $ ps aux | grep justprint.py
amigo 7494 12.8 0.3 7260 3300? Ss 17:24 0:06 python TEST_AREA / justprint.py
amigo 7640 0.0 0.0 3320 800 pts / 3 S + 17:25 0:00 grep --color = auto solo
¿Qué pasos debo seguir para ver los mensajes de "Hola mundo" en mi pantalla?
Respuestas:
Por lo general, no puede ver la salida del programa de otra persona. Vea en esa columna dónde se ejecuta su comando grep en tty
pts/3
, y el de su amigo?
, lo que significa que está desconectado de la terminal.Podrías ver hacia dónde va la salida
ls -l /proc/7494/fd/
(donde 7494 es el ID del proceso del proceso de tu amigo), aunque si no estás ejecutando como root, probablemente no puedas mirar, por razones de seguridad. (Así que inténtalosudo ls -l /proc/7494/fd/
)Hay cosas horribles, horribles y groseras que podrías hacer para cambiar el destino del programa. Pero en general, no puedes y no debes.
Si su amigo quiere compartir la salida con usted, y el enfoque sería redirigir la salida del programa a un archivo, y luego hacer que usted pueda leer ese archivo:
(Donde en este caso "legible por usted" es "legible por todos"; con un poco más de trabajo puede configurar un grupo compartido para que solo ustedes dos puedan intercambiar resultados).
(Y tenga en cuenta que python amortigua la salida de forma predeterminada; desactivar eso
-u
es para qué sirve).fuente
Si tiene acceso de root en la máquina y su amigo está dispuesto a ejecutar algunos comandos, es posible:
screen
tiene que ser setuid root :chmod u+s /usr/bin/screen
screen
, puede darle un nombre a la sesión, lo hace más fácil:screen -S "shared_session"
Ctrl-a :multiuser on
Ctrl-a :acladd you
Ctrl-a :aclchg you -w "#"
screen -x friend/shared_session
La raíz de setuid es quizás un poco peligrosa ...
fuente
suid
?Must run suid root for multiuser support.
screen
sin derechos de suid / root, ¿puede explicarlo más?