Cosa fa 'script / dev / null'?


21

Ogni volta che accedo a una VM con root, sua un account utente e provo a usarlo screengenera un errore:

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

Un post di Stack Overflow diceva che dovevo usarlo script /dev/nullper risolverlo, e funziona, ma non spiega ancora perché devo digitare script /dev/null. Vorrei capire cosa fa e perché devo scriverlo.


2
> Ha detto un post di Stack Overflow: potrebbe essere utile se aggiungi anche un link a quel post, magari in un commento.
törzsmókus

Potrebbe essere stato stackoverflow.com/a/44244425/340790 , ad esempio.
JdeBP,

Risposte:


27

Non puoi aprirlo /dev/pts/0perché è di proprietà di root, e dopo aver eseguito il login in un altro utente non puoi più aprirlo tramite il suo percorso, ma puoi comunque usarlo tramite l'handle aperto ad esso, che è stato ereditato dal processo genitore.

script /dev/null creerà un altro pty, di proprietà dell'utente corrente.

Comunque, quel bug / limitazione sembra essere stato corretto nelle ultime versioni di screen(es. 4.99.0), che invierà correttamente l'handle al terminale corrente tramite il SCM_RIGHTSmessaggio accessorio su un socket di dominio unix, invece di inviare solo il nome di il terminale e far screententare al server di aprirlo (e fallire). Stessa cosa con tmux.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.