Um amigo, usando uma máquina remota, fez o SSH na minha máquina e executou o seguinte script python:
enquanto (1):
.... imprimir "olá mundo"
(esse script simplesmente imprime 'olá mundo' continuamente).
Agora estou logado na minha máquina. Como posso ver a saída do script que meu amigo estava executando?
se ajudar, posso 'localizar' o script que meu amigo está usando:
me @ 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 apenas
que etapas devo seguir para exibir as mensagens "olá mundo" na minha tela?
Respostas:
Você geralmente não pode ver a saída do programa de outra pessoa. Veja na coluna onde seu comando grep está sendo executado em tty
pts/3
e o de seu amigo?
, o que significa que ele está desconectado do terminal.Você pode ver para onde a saída está indo
ls -l /proc/7494/fd/
(onde 7494 é o ID do processo do seu amigo) - embora se você não estiver executando como root, provavelmente nem poderá procurar, por motivos de segurança. (Então tentesudo ls -l /proc/7494/fd/
.)Existem coisas horríveis, horríveis e arrogantes que você pode fazer para mudar para onde vai a saída do programa. Mas, em geral, você não pode e não deveria.
Se seu amigo deseja compartilhar a saída com você, a abordagem seria redirecionar a saída do programa para um arquivo e, então, tornar esse arquivo legível por você:
(Onde, neste caso, "legível por você" é "legível por todos"; com um pouco mais de trabalho, você pode configurar um grupo compartilhado para que apenas vocês dois possam trocar a saída.)
(E lembre-se de que os buffers python são gerados por padrão - é necessário desativar isso
-u
.)fonte
Se você tiver acesso root na máquina e seu amigo estiver disposto a executar alguns comandos, é possível:
screen
deve ser definido como root :chmod u+s /usr/bin/screen
screen
, ele pode dar um nome à sessão, facilita:screen -S "shared_session"
Ctrl-a :multiuser on
Ctrl-a :acladd you
Ctrl-a :aclchg you -w "#"
screen -x friend/shared_session
A raiz setuid é talvez um pouco perigosa ...
fonte
suid
?Must run suid root for multiuser support.
screen
sem direitos suid / root, você pode explicar isso mais?