Compartir una terminal con múltiples usuarios (con pantalla o de otro modo)

11

Estoy configurando un servidor donde hay múltiples desarrolladores trabajando en múltiples aplicaciones.

He descubierto cómo dar a ciertos desarrolladores acceso compartido a los directorios de aplicaciones necesarios usando setgid bity default ACLspara dar acceso a cualquier persona en un grupo.

Muchas de estas aplicaciones se ejecutan bajo una terminal mientras están en desarrollo para facilitar el acceso. Cuando trabajo solo, configuro un usuario para una aplicación y ejecuto la pantalla como ese usuario. Esto tiene el inconveniente de que cada desarrollador screen sessionnecesita la contraseña y es más difícil mantener separadas las cuentas de usuario y aplicación.

Una forma que podría funcionar es mediante el uso de funciones de pantalla multiusuario. Sin embargo, no funcionan listos para usar, la pantalla se queja de la necesidad suid root. ¿Dar eso tiene alguna desventaja? Tengo mucho cuidado al usar suid rootcualquier cosa. Tal vez hay una razón por la cual no es el valor predeterminado?

¿Debo hacerlo screeno hay alguna otra forma inteligente de hacer lo que quiero?

varesa
fuente

Respuestas:

22

Sí, puedes hacerlo con el screenque tiene soporte multiusuario.

Primero, cree una nueva sesión:

screen -d -m -S multisession

Adjuntar a ella:

screen -r multisession

Active el soporte multiusuario:

Presiona Ctrl-ay escribe

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

Ahora, Ctrl-a dy enumere las sesiones:

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

Ahora tiene una sesión de pantalla multiusuario. Dé el nombre multisessional usuario acl'd, para que pueda adjuntarlo:

screen -x youruser/multisession

Y eso es.

El único inconveniente es que screendebe ejecutarse como suidroot. Pero hasta donde yo sé es la situación normal por defecto.

Otra opción es hacer screen -S $screen_id -X multiuser on,screen -S $screen_id -X acladd authorized_user

Espero que esto ayude.

Scyld de Fraud
fuente
1
Esto es lo que intenté, hasta donde la pantalla se queja de la necesidad suid root. Me di cuenta de que me pregunto si esto fue la manera preferida de hacer las cosas antes de añadir permisos de root a los programas que no tienen ellos de forma predeterminada
Varesa
Extraño. Mi screenes la suidraíz.
Scyld de Fraud
Creo que eso podría ser una cosa dependiente de la distribución.
Probé
Por lo que vale, screentampoco está suid rooten Ubuntu 16.04.
agua helada
66
screen -S $screen_id -X multiuser on, en screen -S $screen_id -X acladd authorized_user lugar de control, los comandos a serían una buena adición a la respuesta
ribamar