Ermöglichen Sie den Zugriff auf die Linux-Konsole


8

Angenommen, einer führt eine SSHSitzung in einer GNU/LinuxBox eines Clients aus und fordert Sie auf, zu sehen, was Sie tun. Wie können Sie dieser anderen Partei erlauben, zu sehen, was in Ihrer Sitzung vor sich geht?

Antworten:


12

Sie können versuchen, den Befehl " screen " zu verwenden. Auf diese Weise können Sie eine Mehrbenutzersitzung ausführen, die zwei Benutzer verbinden und gemeinsam nutzen können. Zuerst müssen Sie das Suid-Bit setzen. Der Bildschirm ist ausgeschaltet und für den Mehrbenutzermodus erforderlich:

sudo chmod +s /usr/bin/screen
sudo chmod 755 /var/run/screen

Der erste Benutzer stellt eine Verbindung her

screen -S shared

Das "-S" gibt der Sitzung nur einen einfach zu verwendenden Namen. Um den Mehrbenutzerzugriff zuzulassen, verwenden Sie "STRG + A", um Bildschirmbefehle auszuführen:

CTRL+A
:multiuser on
:acladd otheruser

Wenn der andere Benutzer eine Verbindung über ssh herstellt, muss er nur ausgeführt werden

screen -x firstuser/shared

an der Sitzung teilnehmen


2
Wenn eine der Parteien in der Lage ist, su/sudoder andere Benutzer zu werden, müssen Sie sich überhaupt nicht mit der Setuid oder den Berechtigungen herumschlagen. Verwenden Sie einfach su, damit beide Parteien dasselbe Konto verwenden. Der erste Benutzer wird ausgeführt screen, und der und wird dann ausgeführt screen -x.
Zoredache

In der Antwort wird dies nicht explizit angegeben, aber der zweite Benutzer kann nur sehen, was in der Bildschirmsitzung ausgeführt wird. dh der erste Benutzer muss den Bildschirm ausführen, bevor er das "interessante" Bit ausführt. Auch wenn die Terminalgrößen nicht übereinstimmen, kann die Erfahrung des zweiten Benutzers ... interessant sein.
David Mackintosh

@ Zoredache: Auf diese Weise können Probleme mit tty-Berechtigungen auftreten
Ptman

2

Lief wie am Schnürchen.

Ich erhielt auch einen Offline-Hinweis von einem Mann, mit dem ich mich unterhalten hatte, um eine alternative Lösung vorzuschlagen:

Benutzer, der teilen möchte, verwendet "w", um anzuzeigen, wo der andere arbeitet ...

# w
 16:27:10 up 30 days,  8:37,  3 users,  load average: 0,99, 0,94, 0,89
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     -                26Apr10  9days  0.04s  0.01s login -- root
root     pts/0    192.168.2.25     15:31   54:29   0.04s  0.00s script
root     pts/1    192.168.2.235    16:21    3:29   0.05s  0.05s -bash

Jetzt, wo wir jetzt waren, arbeitet der andere:

# script | tee /dev/pts/1 

Diese Methode hat Nachteile gegenüber der von katriel vorgeschlagenen, da dies nur eine Möglichkeit ist. Wenn Sie vergessen, den Exit zu verwenden, um die Verbindung zu trennen, erhalten die anderen Punkte weiterhin Daten, auch wenn sich der Benutzer abmeldet, was eine potenzielle Sicherheitsbedrohung darstellt. Aber ich fand es erwähnenswert.

Trotzdem danke an Katriel und die anderen.


1

Führen Sie einfach einen VNC-Server auf Ihrer Workstation aus und lassen Sie ihn eine Verbindung dazu herstellen. Billig und einfach :)


VNC ist für X-Sitzungen in Ordnung, jedoch nicht für eine Konsolensitzung.
Cristian Ciupitu

Wenn Ihr SSH-Client von einer X-Sitzung aus gestartet wird, ist dies kein Problem.
Apenwarr

1

Ich habe ein kleines Open-Source-Projekt, das (ich hoffe) diesen Bedarf perfekt erfüllt : Termbeamer .

Sie können eine Terminalsitzung starten und über das Internet an eine oder mehrere andere Personen senden. Es funktioniert hinter Firewalls und NAT und verfügt über eine Fernbedienungsoption, wenn Sie die andere Person "fahren" lassen möchten - gut für die Paarprogrammierung.


0

Apenwarr hat einen guten Vorschlag, aber ich habe TeamViewer kürzlich nur für diesen Zweck verwendet. Es ähnelt VNC, erfordert jedoch an beiden Enden die Installation NULL. Keine Serverinstallation, keine Clientinstallation erforderlich. Es führt sogar NAT-Traversal ohne Konfiguration durch ... etwas, das VNC nicht kann.

http://teamviewer.com/

Probieren Sie es aus, Sie werden sich verlieben.


Außerdem kostet es eine Million Dollar.
Apenwarr

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.