Partager un terminal avec plusieurs utilisateurs (avec écran ou autre)


11

J'installe un serveur où plusieurs développeurs travaillent sur plusieurs applications.

J'ai compris comment donner à certains développeurs un accès partagé aux répertoires d'application nécessaires à l'aide de setgid bitet default ACLspour donner à tout le monde un accès de groupe.

Beaucoup de ces applications s'exécutent sous un terminal en cours de développement pour un accès facile. Lorsque je travaille seul, je configure un utilisateur pour une application et exécute l'écran en tant qu'utilisateur. Cela présente l'inconvénient que chaque développeur doit utiliser le screen sessionbesoin de connaître le mot de passe et il est plus difficile de séparer les comptes d'utilisateur et d'application.

Une façon qui pourrait fonctionner est d'utiliser les fonctionnalités multi-utilisateurs d'écran. Ils ne fonctionnent pas prêts à l'emploi cependant, l'écran se plaint d'avoir besoin suid root. Donner cela a-t-il des inconvénients? Je fais assez attention à ne suid rootrien utiliser . Peut-être qu'il y a une raison pour laquelle ce n'est pas la valeur par défaut?

Dois-je le faire avec screenou existe-t-il une autre façon intelligente de faire ce que je veux?

Réponses:


23

Oui, vous pouvez le faire avec un screensupport multi-utilisateur.

Créez d'abord une nouvelle session:

screen -d -m -S multisession

Attachez-y:

screen -r multisession

Activez la prise en charge multi-utilisateurs:

Appuyez Ctrl-aet tapez

:multiuser on
:acladd USER ← use username of user you want to give access to your screen

Maintenant, Ctrl-a det listez les sessions:

$ screen -ls
There is a screen on:
    4791.multisession   (Multi, detached)

Vous avez maintenant une session d'écran multi-utilisateur. Donnez le nom multisessionà un utilisateur clcl, afin qu'il puisse le joindre:

screen -x youruser/multisession

Et c'est tout.

Le seul inconvénient est qu'il screendoit s'exécuter en tant que suidroot. Mais pour autant que je sache, c'est la situation normale par défaut.

Une autre option est de faire screen -S $screen_id -X multiuser on,screen -S $screen_id -X acladd authorized_user

J'espère que cela t'aides.


1
C'est ce que j'ai essayé, jusqu'à ce que l'écran se plaint d'avoir besoin suid root. J'ai pensé que je demanderais si c'était la façon préférée de faire les choses avant d'ajouter des autorisations root aux programmes qui ne les ont pas par défaut
varesa

Étrange. Ma screenest la suidracine.
Scyld de Fraud

Je pense que cela pourrait être une chose dépendante de la distribution. J'ai essayé sur CentOS 6 ou 7 (besoin de vérifier)
varesa

Pour ce que ça vaut, screenn'est pas non plus suid rootsur Ubuntu 16.04.
icedwater

6
screen -S $screen_id -X multiuser on, screen -S $screen_id -X acladd authorized_user au lieu de commandes control-a serait un bon ajout à la réponse
ribamar
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.