Autoriser l'accès à la console Linux


8

Supposons que l'on exécute une SSHsession dans une GNU/Linuxboîte d'un client et qu'il vous demande de voir "ce que vous faites". Comment pouvez-vous permettre à cette autre partie de voir ce qui se passe dans votre session?

Réponses:


12

Vous pouvez essayer d'utiliser la commande " screen ". Cela vous permettra d'exécuter une session multi-utilisateurs que 2 utilisateurs peuvent se connecter et partager. Vous devez d'abord définir le bit suid. l'écran est éteint, et il est nécessaire pour le mode multi-utilisateur:

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

Le premier utilisateur se connecte, en cours d'exécution

screen -S shared

Le "-S" donne simplement à la session un nom facile à utiliser. Pour autoriser l'accès multi-utilisateur, utilisez "CTRL + A" pour exécuter les commandes d' écran :

CTRL+A
:multiuser on
:acladd otheruser

Quand un autre utilisateur se connecte via ssh, il n'a qu'à exécuter

screen -x firstuser/shared

rejoindre la session


2
Si l'une des parties peut utiliser su/sudopour devenir l'autre utilisateur, vous n'avez pas du tout besoin de jouer avec le setuid ou les autorisations. Utilisez simplement su pour que les deux parties utilisent le même compte. Le premier utilisateur s'exécute screen, puis s'exécute screen -x.
Zoredache

Ce n'est pas explicitement indiqué dans la réponse, mais le deuxième utilisateur ne peut voir que ce qui se passe dans la session écran; c'est-à-dire que le premier utilisateur doit exécuter l'écran avant de faire le bit "intéressant". De plus, si la taille des terminaux ne correspond pas, l'expérience du deuxième utilisateur peut être ... intéressante.
David Mackintosh

@zoredache: de cette façon, vous pouvez rencontrer des problèmes avec les autorisations tty
ptman

2

A fonctionné comme un charme.

J'ai également reçu un indice hors ligne d'un gars avec qui j'ai discuté proposant une solution alternative:

l'utilisateur souhaitant partager utilise "w" pour voir où travaille l'autre gars ...

# 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

maintenant que nous étions maintenant l'autre gars travaille, nous émettons ceci:

# script | tee /dev/pts/1 

Cette méthode présente des inconvénients par rapport à celle proposée par katriel, car elle est à sens unique et si vous oubliez d'utiliser exit pour interrompre la connexion, les autres points continuent de recevoir des données même si l'utilisateur se déconnecte, ce qui constitue une menace potentielle pour la sécurité. Mais j'ai pensé que cela valait la peine d'être mentionné.

Quoi qu'il en soit, merci à Katriel et aux autres.


1

Exécutez simplement un serveur VNC sur votre poste de travail et laissez-le se connecter à cela. Pas cher et facile :)


VNC convient pour les sessions X, mais pas pour une session console.
Cristian Ciupitu

Si votre client ssh est lancé à partir d'une session X, ce n'est pas un problème.
apenwarr

1

J'ai un petit projet open source qui (j'espère) répond parfaitement à ce besoin: Termbeamer .

Il vous permet de démarrer une session de terminal et de l'envoyer à une ou plusieurs autres personnes sur Internet. Il fonctionne derrière les pare-feu et NAT et dispose d'une option de télécommande si vous souhaitez laisser l'autre personne "conduire" - bon pour la programmation par paire.


0

Apenwarr a une bonne suggestion, mais j'ai récemment utilisé TeamViewer dans ce but. Il est similaire à VNC, mais nécessite une installation ZERO, aux deux extrémités. Aucune installation de serveur, aucune installation de client requise. Il fait même une traversée NAT sans configuration ... quelque chose que VNC ne peut pas faire.

http://teamviewer.com/

Essayez-le, vous tomberez amoureux.


En outre, cela coûte un milliard de dollars.
apenwarr

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.