Un ami, utilisant une machine distante, s'est connecté sur ma machine et a exécuté le script python suivant:
tandis que (1):
.... imprimer "bonjour le monde"
(ce script imprime simplement «bonjour le monde» en continu).
Je suis maintenant connecté à ma machine. Comment puis-je voir la sortie du script que mon ami exécutait?
si cela aide, je peux «repérer» le script que mon ami utilise:
me @ home: ~ $ ps aux | grep justprint.py
ami 7494 12,8 0,3 7260 3300? SS 17:24 0:06 python TEST_AREA / justprint.py
ami 7640 0,0 0,0 3320800 pts / 3 S + 17:25 0:00 grep --color = auto juste
quelles mesures dois-je prendre pour afficher les messages "bonjour le monde" sur mon écran?
Réponses:
Vous ne pouvez généralement pas voir la sortie du programme d'une autre personne. Voir dans cette colonne où votre commande grep s'exécute sur tty
pts/3
et celle de votre ami?
, ce qui signifie qu'elle est détachée du terminal.Vous pouvez voir où va la sortie
ls -l /proc/7494/fd/
(où 7494 est l'ID de processus du processus de votre ami) - bien que si vous ne vous exécutez pas en tant que root, vous ne pouvez probablement même pas regarder, pour des raisons de sécurité. (Alors essayezsudo ls -l /proc/7494/fd/
.)Il y a des choses horribles, horribles et louches que vous pourriez faire pour changer où va la sortie du programme. Mais en général, vous ne pouvez pas et ne devriez pas.
Si votre ami veut partager la sortie avec vous, et l'approche serait de rediriger la sortie du programme vers un fichier, puis de rendre ce fichier lisible par vous:
(Où dans ce cas, "lisible par vous" est "lisible par tout le monde"; avec un peu plus de travail, vous pouvez créer un groupe partagé afin que vous puissiez échanger la sortie uniquement.)
(Et sachez que les tampons python sortent par défaut - désactiver cela est à quoi cela
-u
sert.)la source
Si vous avez un accès root sur la machine et que votre ami souhaite exécuter certaines commandes, il est possible:
screen
doit être setuid root :chmod u+s /usr/bin/screen
screen
, il peut donner un nom à la session, ça facilite:screen -S "shared_session"
Ctrl-a :multiuser on
Ctrl-a :acladd you
Ctrl-a :aclchg you -w "#"
screen -x friend/shared_session
La racine setuid est peut-être un peu dangereuse ...
la source
suid
?Must run suid root for multiuser support.
screen
sans droits suid / root, pouvez-vous expliquer cela plus en détail?