Seorang teman, menggunakan mesin jarak jauh, SSHed ke mesin saya dan menjalankan skrip python berikut:
sementara (1):
.... cetak "halo dunia"
(skrip ini hanya mencetak 'hello world' terus menerus).
Saya sekarang masuk ke mesin saya. Bagaimana saya bisa melihat hasil skrip yang sedang dijalankan teman saya?
jika itu membantu, saya dapat 'melihat' skrip yang digunakan teman saya:
me @ home: ~ $ ps aux | grep justprint.py
teman 7494 12,8 0,3 7260 3300? Ss 17:24 0:06 python TEST_AREA / justprint.py
teman 7640 0.0 0.0 3320 800 poin / 3 S + 17:25 0:00 grep --color = otomatis saja
langkah apa yang harus saya ambil untuk melihat pesan "hello world" di layar saya?
Jawaban:
Anda biasanya tidak dapat melihat hasil program orang lain. Lihat di kolom itu di mana perintah grep Anda berjalan pada tty
pts/3
, dan milik teman Anda?
, yang berarti terlepas dari terminal.Anda bisa melihat ke mana outputnya berjalan
ls -l /proc/7494/fd/
(di mana 7494 adalah ID proses dari proses teman Anda) - meskipun jika Anda tidak berjalan sebagai root, Anda mungkin bahkan tidak bisa melihat, untuk alasan keamanan. (Jadi cobalahsudo ls -l /proc/7494/fd/
.)Ada hal-hal mengerikan, mengerikan, dan tidak menyenangkan yang mungkin dapat Anda lakukan untuk mengubah arah keluaran program. Tetapi secara umum, Anda tidak bisa dan tidak boleh.
Jika teman Anda ingin membagikan output dengan Anda, dan pendekatannya adalah mengarahkan kembali output program ke file, dan kemudian membuat file itu dapat dibaca oleh Anda:
(Di mana dalam hal ini "dapat dibaca oleh Anda" adalah "dapat dibaca oleh semua orang"; dengan sedikit lebih banyak pekerjaan Anda dapat mengatur grup bersama sehingga hanya Anda berdua yang dapat bertukar output.)
(Dan ketahuilah bahwa output python buffer secara default - mematikan itu untuk apa
-u
.)sumber
Jika Anda memiliki akses root pada mesin dan teman Anda bersedia untuk menjalankan beberapa perintah, dimungkinkan:
screen
harus setuid root :chmod u+s /usr/bin/screen
screen
, dia bisa memberi nama sesi itu, membuatnya lebih mudah:screen -S "shared_session"
Ctrl-a :multiuser on
Ctrl-a :acladd you
Ctrl-a :aclchg you -w "#"
screen -x friend/shared_session
Akar setuid mungkin agak berbahaya ...
sumber
suid
?Must run suid root for multiuser support.
screen
tanpa hak suid / root, dapatkah Anda menjelaskan lebih lanjut?