Ein Freund, der einen Remotecomputer verwendet, hat eine SSH-Verbindung zu meinem Computer hergestellt und das folgende Python-Skript ausgeführt:
während (1):
.... drucke "Hallo Welt"
(Dieses Skript druckt einfach "Hallo Welt" fortlaufend).
Ich bin jetzt an meinem Computer angemeldet. Wie kann ich die Ausgabe des Skripts sehen, das mein Freund ausgeführt hat?
Wenn es hilft, kann ich das Skript, das mein Freund verwendet, "erkennen":
me @ home: ~ $ ps aux | grep justprint.py
Freund 7494 12,8 0,3 7260 3300? Ss 17:24 0:06 python TEST_AREA / justprint.py
Freund 7640 0.0 0.0 3320 800 Punkte / 3 S + 17:25 0:00 grep --color = auto just
Welche Schritte muss ich unternehmen, um die "Hallo Welt" -Nachrichten auf meinem Bildschirm anzuzeigen?
Antworten:
Im Allgemeinen können Sie die Ausgabe des Programms einer anderen Person nicht sehen. Sehen Sie in dieser Spalte nach, wo Ihr grep-Befehl auf tty ausgeführt
pts/3
wird und der Ihres Freundes?
, was bedeutet, dass er vom Terminal getrennt ist.Sie können sehen, wohin die Ausgabe geht
ls -l /proc/7494/fd/
(wobei 7494 die Prozess-ID des Prozesses Ihres Freundes ist). Wenn Sie jedoch nicht als Root ausgeführt werden, können Sie aus Sicherheitsgründen wahrscheinlich nicht einmal nachsehen. (Also versuch essudo ls -l /proc/7494/fd/
.)Es gibt schreckliche, schreckliche, klobige Dinge, die Sie möglicherweise tun können, um zu ändern, wohin die Ausgabe des Programms geht. Aber im Allgemeinen können und sollten Sie nicht.
Wenn Ihr Freund die Ausgabe mit Ihnen teilen möchte, besteht der Ansatz darin, die Ausgabe des Programms in eine Datei umzuleiten und diese Datei dann für Sie lesbar zu machen:
(Wo in diesem Fall "für Sie lesbar" "für alle lesbar" ist; mit etwas mehr Arbeit können Sie eine gemeinsame Gruppe einrichten, damit nur Sie beide die Ausgabe austauschen können.)
(Und beachten Sie, dass Python-Puffer standardmäßig ausgegeben werden - das Deaktivieren ist das, wofür das gedacht
-u
ist.)quelle
Wenn Sie Root-Zugriff auf dem Computer haben und Ihr Freund bereit ist, einige Befehle auszuführen, ist Folgendes möglich:
screen
muss setuid root sein :chmod u+s /usr/bin/screen
screen
, er kann der Sitzung einen Namen geben, macht es einfacher:screen -S "shared_session"
Ctrl-a :multiuser on
Ctrl-a :acladd you
Ctrl-a :aclchg you -w "#"
screen -x friend/shared_session
Die Setuid-Wurzel ist vielleicht ein bisschen gefährlich ...
quelle
suid
?Must run suid root for multiuser support.
screen
ohne Suid / Root-Rechte an Benutzer B anhängen kann. Können Sie das weiter erklären?