
Normalerweise mache ich das auf ssh, um eine X-Anwendung zu erhalten mitsudo su
ssh -X server
OKI Anmeldung
xauth list $DISPLAY
die zu mir zurückkehrt
server/unix:10 MIT-MAGIC-COOKIE-1 blablablablabla
Dann mach ich
sudo su
xauth add server/unix:10 MIT-MAGIC-COOKIE-1 blablablablabla
Und nachdem ich eine X-Anwendung ausgeführt habe, verstehe ich es, es ist richtig.
Das Problem ist auf Centos7, ich
xauth list $DISPLAY
Und es gibt nichts zurück. Ich versuche, MIT Magic Cookies hinzuzufügen, die von
xauth list
Aber natürlich funktioniert es nicht. Das normale X-Forwarding über ssh, ohne sudo funktioniert.
Die Einstellungen von sshd sind auf 3 Servern gleich:
- SlackwareWERKE
- hpux WERKE
- centos7 FUNKTIONIERT NICHT
Antwort1
Eine andere Lösung besteht darin, die .Xauthority-Datei des aktuellen Benutzers mit der des Root-Benutzers zusammenzuführen.
ssh user@host
- Ändern Sie die Berechtigungen der .Xauthority-Datei, sodass auch Root darauf zugreifen kann.
sudo su - root
xauth merge /home/users/user/.Xauthority
Prüfen
gedit somefile.log
Es sollte ein Gedit-Fenster öffnen.
Antwort2
Um die Lösung dauerhaft zu machen, können Sie die .bashrc
Datei des Login-Benutzers ändern und hinzufügen
if [ -z "$XAUTHORITY" ]; then
export XAUTHORITY=$HOME/.Xauthority
fi
außerdem müssen Sie Ihre sudoers
Datei aktualisieren und die Zeile hinzufügen
Defaults env_keep+="DISPLAY XAUTHORITY"
Wenn Root über Leseberechtigung für die .Xauthority
Datei des angemeldeten Benutzers verfügt, können Sie X-Anwendungen verwenden.
Antwort3
Lösung gefunden. Eine alternative Methode, die von diesem kopiert wurdeBlog Mit diesem Skript
userfirst=sshloginuser
usersecond=sudoorsuuser
$usersecond@host$
su - $userfirst -c 'xauth list' |\
grep `echo $DISPLAY |\
cut -d ':' -f 2 |\
cut -d '.' -f 1 |\
sed -e s/^/:/` |\
xargs -n 3 xauth add
Oder melden Sie sich einfach als Benutzer1 an
xauth list
su oder sudo su user2
xauth add OUTPUTOFXAUTHLIST
Antwort4
Ein sehr einfacher allgemeiner Befehl:
sudo xauth merge /home/$USER/.Xauthority
Dadurch wird die Root-Umgebung aktiviert und die XAuth-Informationen des aktuellen (nicht Root-)Benutzers zusammengeführt.
Eine weitere Alternative sollte das in den Kommentaren zu Slackware gemeldete Eigentumsproblem verhindern:
cat ~/.Xauthority | sudo xauth merge -