GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ein Grafikprogramm auf dem Desktop eines anderen Benutzers als Root starten?

Es folgen weitere Fragen, die ich meiner Meinung nach wissen muss:

  • Aus einer Nicht-X-Session? (was bedeutet, dass root nicht bei X angemeldet ist)

  • Wenn mehrere Personen bei X angemeldet waren, könnte ich dann automatisch erkennen, wer sich auf welchem ​​Bildschirm befand, und somit programmgesteuert erkennen, auf welchem ​​Bildschirm ich die App starten muss?

  • Kann ich die App als Benutzer starten? (ok, ich bin mir zu 99,999 % sicher, dass dies ein Ja ist)

  • Kann ich erkennen, ob Benutzer der Gruppe X bei X angemeldet sind?

Akzeptierte Antwort:

Um ein grafisches Programm auf dem Desktop eines Benutzers zu starten, müssen Sie zwei Dinge herausfinden:auf welcher Anzeige sich der Desktop des Benutzers befindet (die Adresse) und welches Autorisierungs-Cookie verwendet werden soll (das Passwort).

Der folgende Befehl sollte auf den meisten Unices die lokalen Anzeigen auflisten, an denen der Benutzer angemeldet ist (eine pro Zeile):

who | awk -v user="$target_user" '$1 == user && $2 ~ "^:" {print $2}'

Das Auffinden des Autorisierungs-Cookies ist etwas schwieriger. Sie müssen nach der Cookie-Datei des Benutzers suchen, die ~/.Xauthority ist standardmäßig (alles, was Sie brauchen, ist der Speicherort der Cookie-Datei, Sie müssen das Cookie nicht daraus extrahieren). Das funktioniert auf vielen Systemen, aber nicht auf allen; Es hängt vom Display-Manager und seiner Einrichtung ab, und insbesondere hat Gdm (der Standard bei Ubuntu) nicht den Standardspeicherort verwendet, als ich zuletzt nachgesehen habe. Ich kann mir keinen tragbaren Weg vorstellen, um die tatsächliche X-Cookie-Datei herauszufinden. Der genaueste Weg, dies herauszufinden, besteht darin, die PID des X-Prozesses herauszufinden und nach dem Argument für -auth zu suchen Möglichkeit. Eine andere Möglichkeit besteht darin, einen Prozess zu finden, der auf diesem X-Server läuft, und sich seine XAUTHORITY zu schnappen Umgebungsvariable. Wenn Sie Probleme haben, die Cookie-Datei zu finden, finden Sie weitere Informationen unter Öffnen eines Fensters auf einem entfernten X-Display (warum „Display kann nicht geöffnet werden“)?

Sobald Sie beide Informationen haben, legen Sie die gewählte Anzeige in DISPLAY Umgebungsvariable, die gewählte X-Autoritäts-Cookie-Datei in XAUTHORITY Umgebungsvariable, und schon sind Sie fertig. Es spielt keine Rolle, unter welchem ​​Benutzer das Programm läuft; kombinieren mit su wenn du magst.


Linux
  1. Wie kann ich mit dem Fenstermanager ein Programm als root starten?

  2. GUI-Apps ohne grafischen Desktop

  3. So richten Sie passwortloses SSH mit RSA-Schlüsseln ein

  4. Benötigen Sie eine kleine Distribution ohne Desktop- oder Windows-Manager, nur um eine einzelne grafische App auszuführen

  5. Wie kann ein Dateimanager ein Laufwerk ohne Root mounten?

Zwei grafische Tools zum Bearbeiten von PDFs auf dem Linux-Desktop

Benutzerbewertung zu Linux Lite 3.0 – Einfacher, schneller und kostenloser Linux-Desktop

Aktualisieren von ISPConfig 3.1 auf ISPConfig 3.2

Gotop – Noch ein weiterer grafischer Aktivitätsmonitor von TUI, geschrieben in Go

Terminal immer als Root-Benutzer (sudo) in Ubuntu starten

Wie kann ich einem Benutzer erlauben, mit einem anderen zu su, ohne Root-Zugriff zuzulassen?