Řešení 1:
Chcete-li xauth používat selektivně jako uživatel1 spusťte:
xauth list|grep `uname -n`
Tím se vytisknou položky oprávnění hexkey. Mohli byste mít také různé displeje spojené s těmito hostiteli.
Jako uživatel2 nastavte svůj displej (za předpokladu, že výchozí velikost písmen):
DISPLAY=:0; export DISPLAY
Poté spusťte:
xauth add $DISPLAY . hexkey
Všimněte si tečky za $DISPLAY a před hexadecimálním klíčem.
Když již přístup nepotřebujete, jako uživatel2 můžete spustit:
xauth remove $DISPLAY
Řešení 2:
 Vložil jsem svůj .zshrc řádek s export XAUTHORITY=~/.Xauthority a teď jsem schopen spustit sudo -E xcommand . Po dlouhém googlování to pro mě byl nejjednodušší způsob.
Řešení 3:
 Za prvé:Nepoužívejte xhost + , je to dost nejisté (povolení/odepření přikrývky).
Použijte raději mechanismus X-Cookie:
su user2
cp /home/user1/.Xauthority /home/user2/.Xauthority 
export DISPLAY=:0
 Případně, pokud máte sux nainstalovaný, použijte to (viz odpověď ehempel).
V obou případech uživatel2 použije tajný soubor cookie v .Xauthority k autorizaci na X serveru a nikdo jiný k němu nebude mít přístup.
Poznámky:
- V závislosti na vašich oprávněních k souboru možná budete muset zkopírovat .Xauthority jiným způsobem.
- Místo kopírování .Xauthority, můžete také použítxauthextrahovat a zkopírovat autorizační klíč (viz odpověď Randalla). Pokud máte v.Xauthorityvíce klíčů soubor je selektivnější; jinak je to věc vkusu.
Řešení 4:
Za předpokladu, že debian nebo ubuntu (mělo by být podobné na Red Hat / SUSE).
sudo apt-get install sux
sux user -c 'command'
Řešení 5:
Toto vyřeší problém pro všechny uživatele:
cat <<EOF > /etc/profile.d/xauth.sh
#!/sbin/bash
export XAUTHORITY=~/.Xauthority
EOF