Z nějakého -- mně neznámého -- důvodu mi začalo gdm, resp. jím spuštěné Gnome, používat místo $HOME/.Xauthority soubor v /tmp (pokaždé jiný, pojmenovaný /tmp/.gdmXXXX, kde X jsou čísla). Tudíž mi přestalo fungovat (v .bashrc pro roota uvedené):
xauth merge /home/censored/.Xauthority
Nakonec jsem to vyřešil takovým legračním hackem:
# nechapu, co se tady deje, a uz mne s tim pekne serou
# na kazdy pad z nejakoho duvodu uz neni uzivano ~/.Xauthority
# tudiz:
# - zjistime si pid procesu beziciho pod aktualnim X serverem
SESSMAN=$( ps fax | grep [x]-session-manager )
if [ "$SESSMAN" != "" ]; then
SMPID=$( echo "$SESSMAN" | sed "s/^ \+\([0-9]\+\).*$/\1/" )
# - a z neho si vytahneme environmentalni promennou s platnou Xauthority
# a hned ji pouzijeme
xauth merge $( cat /proc/$SMPID/environ | xargs -0 | sed "s/^.*XAUTHORITY=\([^ ]\+\).*$/\1/" )
unset SMPID
fi
unset SESSMAN
což sem nepíšu ani tak proto, abych se pochlubil, ale zajímalo by mne, jestli někdo nevíte, jak to řešit standardně. Když jsem totiž zkusil jako root:
su -c "xauth info" - USERNAME
tak mi to vypsalo normálně .Xauthority v domovském adresáři, přestože jako USERNAME mi "xauth info" vypsalo ten soubor v /tmp. |