
Wir versuchen, einen drakonischen Bildschirmsitzungskiller für Benutzer neu zu schreiben, die ihre Bildschirmsitzungen übermäßig lange aktiv lassen und auf die eine oder andere Weise unsere Sitzungstimeouts umgangen haben.
Die aktuelle Methode besteht darin, die PID für den Bildschirm zu finden und ihn zu beenden. Es sieht so aus, als wäre das Bildschirmprogramm so geschrieben, dass Sie sich in die Sitzungen anderer Benutzer einklinken können, aber wenn ich versuche, als Root etwas zu tun, ist das Bildschirmverzeichnis ein anderes Verzeichnis. Ich vermute, dies ist aus Sicherheitsgründen, aber gibt es eine Möglichkeit, dies absichtlich zu überschreiben, sodass ich einfach so etwas wie screen -r somedude/33333 -d -X quit
? als Root tun kann?
Antwort1
Standardinstanzen screen
sind singleuser
, d. h. auf jede Instanz kann nur der Benutzer zugreifen, der sie erstellt hat.
Um eine Mehrbenutzerinstanz zu ermöglichen screen
, möchten Sie möglicherweise diese Befehle hinzufügen:
multiuser on
addacl root,<user1>,<user2>,...
zu Ihrer globalen screen
Konfiguration, d. h /etc/screenrc
. .
Alle screen
nachfolgenden Instanzen sollten für mehrere Benutzer geeignet sein screen
, d. h. sie können von einem anderen in angegebenen Benutzer angehängt werden addacl
, es sei denn, sie werden durch benutzerspezifische Befehle überschrieben.
Sie können Benutzerbildschirme auflisten mit
$ find /var/run/screen -type s
/var/run/screen/S-<user>/<pid>.<tty>.<host>
und an den Bildschirm eines anderen Benutzers anhängen mit
$ screen -d -r <user>/<pid>
Überprüfenman screen
, Abschnitt „Anpassung“ für weitere Informationen zu screenrc
.
Beachten Sie, dass jeder Benutzer der Datei auch seine eigenen benutzerspezifischen screenrc
Befehle hinzufügen $HOME/.screenrc
und so den Mehrbenutzer-Bildschirm für seinen Benutzer deaktivieren kann.