Wie man GUI-Anwendung über ssh als anderen Benutzer über sudo ausführt

Ich habe ssh auf meinem server konfiguriert, und manchmal muss ich einige grafische Anwendung auf sie laufen. Es funktioniert super, wenn ich eine Verbindung mit -X Option herstelle. Ich kann zB google-chrome laufen. Allerdings, wenn ich den Benutzer durch sudo -i -u other_user , kann ich keine GUI-Apps als diesen Benutzer ausführen.

Ich nehme an, es ist etwas mit Umgebung und DISPLAY, aber weiß nicht was zu tun ist. Ich habe versucht, -E hinzuzufügen, aber dann bekam ich Fehlermeldung, dass ich es nicht mit -i . Wie kann ich GUI-Apps über ssh als anderen Benutzer ausführen?

One Solution collect form web for “Wie man GUI-Anwendung über ssh als anderen Benutzer über sudo ausführt”

Der einfachste path ist, ssh -X zu verwenden, um Befehle als anderen Benutzer auszuführen. Aber das macht die Applikationen deutlich langsamer, auch lokal.


Die Option -i sagt sudo um die Umgebung neu zu initialisieren. X-Anwendungen erfordern $DISPLAY und (bei einigen Setups) $XAUTHORITY und können andere Umgebungsvariablen wie Gebietsschemaeinstellungen verwenden. Versuchen Sie ohne -i , oder wenn Sie -i , laufen

 sudo -i -u other_user \ env DISPLAY="$DISPLAY" XAUTHORITY="${XAUTHORITY-$HOME/.Xauthority}" \ xapplication 

Auch wenn du dich von -i befreit hast, musst du XAUTHORITY explizit liefern: standardmäßig (wenn die Variable nicht gesetzt ist) ist es .Xauthority im Home-Verzeichnis.

Bisher habe ich davon ausgegangen, dass der andere Benutzer Ihre $XAUTHORITY lesen $XAUTHORITY . Aber das wird nicht der Fall sein, wenn du es nicht machst (zB mit setfacl -m user:other_user:r $XAUTHORITY ).

Alternativ, anstatt den anderen Benutzer lesen Sie Ihre $XAUTHORITY , könnten Sie kopieren Sie das richtige Cookie auf eine andere file, die der Benutzer lesen kann.

 xauth extract -f - "$DISPLAY" | sudo -u other_user xauth -f ~other_user/.Xauthority merge - 

Beachten Sie, dass ein anderer Benutzer Zugriff auf Ihre Anzeige ermöglicht ihm, fast alles mit ihm zu tun, einschließlich Senden von gefälschten buttonnbetätigungen auf Anwendungen. Also, wenn du die Benutzer für die Isolation wechselst, wirst du nicht viel bekommen.

  • Gibt es eine Möglichkeit, Befehl in sudo basierend auf dem aktuellen Arbeitsverzeichnis zu erlauben?
  • Linux: für remote sysadmin eingerichtet
  • Sudo setzt die Umgebungsvariablen zurück
  • Wie kann ich sudo zwingen, das AD-Passwort eines Benutzers auf RHEL6 zu akzeptieren
  • wie man mit sudo -u aussetzt
  • Ssh-agent-Weiterleitung und sudo zu einem anderen Benutzer
  • Lost passwortloser Sudo und kein Wurzelzugang
  • su zwischen regulären Benutzerkonten scheitert mit "su: falsches Passwort"
  • Sudo fragt mich nach Passwort
  • sollte sudo oder nur su root in der serververwaltung verwenden?
  • Wie kann ich Sudo verwenden, wenn ich mich mit einem SSH-Key in PuTTY angemeldet habe?
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.