Jedes Mal, wenn ich mich bei einer VM mit root anmelde, su
bei einem Benutzerkonto und versuche, screen
es zu verwenden , wird ein Fehler ausgegeben:
Cannot open your terminal '/dev/pts/0' - please check.
In einem Stapelüberlaufpost wurde angegeben, dass ich das Problem script /dev/null
beheben muss, und es funktioniert, aber es erklärt immer noch nicht, warum ich etwas eingeben muss script /dev/null
. Ich würde gerne verstehen, was es macht und warum ich es tippen muss.
terminal
gnu-screen
su
pty
CJL
quelle
quelle
Antworten:
Sie können es nicht öffnen,
/dev/pts/0
da es Eigentum von root ist, und nachdem Sie sich bei einem anderen Benutzer angemeldet haben, können Sie es nicht mehr über seinen Pfad öffnen, aber Sie können es weiterhin über das geöffnete Handle verwenden, das geerbt wurde aus dem übergeordneten Prozess.script /dev/null
erstellt eine weitere Pty, die dem aktuellen Benutzer gehört.Wie auch immer, dieser Fehler / diese Einschränkung scheint in neueren Versionen von
screen
(z. B. 4.99.0) behoben worden zu sein, die das Handle korrekt über dieSCM_RIGHTS
Zusatznachricht auf einem Unix-Domain-Socket an das aktuelle Terminal senden , anstatt nur den Namen von zu senden Das Terminal und derscreen
Server versuchen, es zu öffnen (und scheitern). Gleiches mittmux
.quelle