¿Qué hace 'script / dev / null'?

21

Cada vez que inicio sesión en una máquina virtual con root, suen una cuenta de usuario e intento usarla screen, aparece un error:

Cannot open your terminal '/dev/pts/0' - please check.

Una publicación de Stack Overflow dijo que necesitaba usarlo script /dev/nullpara solucionarlo, y funciona, pero aún no explica por qué necesito escribir script /dev/null. Me gustaría entender qué hace y por qué necesito escribirlo.

CJL
fuente
2
> Una publicación de Stack Overflow dijo : podría ser útil si también agrega un enlace a esa publicación, tal vez en un comentario.
törzsmókus
Podría haber sido stackoverflow.com/a/44244425/340790 , por ejemplo.
JdeBP

Respuestas:

27

No puede abrir /dev/pts/0porque es propiedad de root, y después de ingresar a otro usuario ya no puede abrirlo a través de su ruta, pero aún puede usarlo a través del controlador abierto, que fue heredado del proceso padre.

script /dev/null creará otra pty, propiedad del usuario actual.

De todos modos, ese error / limitación parece haberse solucionado en versiones recientes de screen(por ejemplo, 4.99.0), que enviará correctamente el identificador al terminal actual a través del SCM_RIGHTSmensaje auxiliar en un socket de dominio Unix, en lugar de enviar solo el nombre de el terminal y haga que el screenservidor intente abrirlo (y falle). Lo mismo con tmux.

Mosvy
fuente