8 votes

Partager une session d'écran avec des utilisateurs du même groupe (Linux)

Je peux créer une session d'écran détachée à l'aide de la commande suivante :

[user1@host-pc ~]$ screen -d -m -S sname program

...et reprenez-le à l'aide de cette commande :

[user1@host-pc ~]$ screen -r sname

Existe-t-il un moyen de permettre aux utilisateurs qui font partie du même groupe que user1 accéder à la session ?

Edit : J'ai lu la page de manuel, et je connais le mode multi-utilisateurs. Ma question porte spécifiquement sur la possibilité de partager des sessions d'écran par groupes d'utilisateurs (/etc/group).

c'est-à-dire tous les utilisateurs du groupe users sont autorisés à partager la session sname . Sans ajouter manuellement chaque utilisateur à l'écran.

0 votes

La réponse semble être "non, vous ne pouvez pas (sans script ou modification du code source)". Screen (au moins les versions récentes) comporte de nombreuses vérifications intégrées pour empêcher l'altération des permissions sur les sockets en /var/run/screen en dehors de son acladd y aclgrp et vous obtiendrez des messages tels que Directory /var/run/screen/S-username must have mode 700 si vous avez modifié ces autorisations manuellement.

7voto

Vladimir Blaskov Points 6013

Oui, c'est possible, mais votre écran doit être équipé d'un bit suid et cela a des implications en termes de sécurité. En principe, vous devez procéder comme suit pour pouvoir partager une session d'écran :

chmod u+s /usr/bin/screen

Ensuite, en tant qu'utilisateur (supposons que son nom d'utilisateur soit utilisateur1 ), vous devez lancer screen et y exécuter les deux commandes suivantes :

<ctrl+a>:multiuser on
<ctrl+a>:acladd user2

Enfin, utilisateur2 devrait pouvoir se connecter à la session à l'aide de la commande suivante :

screen -x user1/

Vous pouvez trouver plus d'informations aquí .

0 votes

C'est un très bon résumé du mode multi-utilisateur (et merci !), mais malheureusement il ne répond pas à la question du PO sur la façon d'ajouter directement un entière /etc/group groupe pour accéder à la session multi-utilisateurs.

3voto

baptr Points 56

Vous pouvez activer le mode multiutilisateur soit via .screenrc, soit au sein de la session en utilisant Ctrl+a : avec multiuser on . L'accès peut ensuite être contrôlé par l'ajout d'utilisateurs individuels dotés d'un acladd user2 ou en recréant des listes de groupes dans les acls d'écran ( aclgrp ).

Je ne crois pas qu'il existe un moyen d'utiliser directement les groupes Unix pour les ACL multi-utilisateurs.

Voir man screen o http://aperiodic.net/screen/multiuser

0 votes

Voici un Wayback Machine capture de cette page sur aperiodic.net avant que la pourriture ne s'installe.

0voto

TheDudeAbides Points 151

Bonjour de l'année 2020 ! La réponse semble toujours être "non, vous ne pouvez pas (sans script ou modification du code source)".

Je soupçonne (mais seulement) qu'il pourrait s'agir d'une de ces circonstances où Attendre -a un outil d'automatisation Unix étonnamment sous-estimé -peut s'avérer utile.

Screen, du moins dans ses versions récentes, comporte de nombreuses vérifications intégrées afin d'éviter toute altération des permissions sur les sockets en /var/run/screen en dehors de son acladd y aclgrp l'installation.

Si vous essayez de modifier les autorisations sur /var/run/screen/S-username plus permissive (pour donner l'accès à un autre groupe Unix), vous obtiendrez toujours un message d'erreur du type

Must run suid root for multiuser support.

si vous tentez de screen -r username/ avec une prise existante.

Si vous sudo chmod u+s /usr/bin/screen vous obtiendrez le message d'erreur suivant

Directory /var/run/screen/S-username must have mode 700

si vous avez modifié ces autorisations manuellement, ce qui semble exclure l'utilisation de l'option chmod o setfacl pour définir les autorisations sur la socket au niveau du système de fichiers. Si vous avez répondu aux attentes de Screen en ce qui concerne les permissions du système de fichiers, mais que vous n'avez pas explicitement ajouté l'utilisateur essayant d'accéder à la socket à la liste d'accès avec la commande Ctrl + A :acladd vous obtenez le message d'erreur suivant

Access to session denied.

A priori, je ne connais pas de solution facile à votre problème proposée par tmux non plus, mais wemux semble être une enveloppe populaire pour faciliter l'utilisation des sessions partagées multi-utilisateurs, et pourrait vous aider à atteindre vos objectifs.

編集部 : Cette information provient de aperiodic.net/screen/multiuser ( Capture Wayback ) donne l'impression que l'on pourrait script les :acladd tout en itérant sur l'appartenance à un groupe particulier à partir de /etc/group en transmettant d'abord la séquence d'échappement suivante :

l'écran peut permettre à des programmes de lui envoyer des commandes par le biais de la séquence d'échappement ESC ] 83 ; cmd ^G; Pour que cela fonctionne, le pseudo-utilisateur :window: doit exister et disposer des autorisations nécessaires à l'exécution de la commande fournie.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X