XAUTHORITY environment variable set repeatedly on every login

6,647

If you're using su to login as root, then it’s likely due to the use of pam_xauth to set up a new xauthority file for that session, as described in this old e-mail thread.

Share:
6,647

Related videos on Youtube

user1039494
Author by

user1039494

Updated on September 18, 2022

Comments

  • user1039494
    user1039494 over 1 year

    I am running a Suse Linux 11.04 system. My problem is that when I do a fresh login into a shell as root, a new Xauthority file of the form xauth***** gets created in the /root/ directory. Upon exiting from the shell, a few .xauth files remain behind. I tried it on other systems but this does not happen. Also, why is the XAUTHORITY environment variable set only for root and not for my other users in the system?

    man xdm says the following about the XAUTHORITY environment variable

    DisplayManager.DISPLAY.userAuthDir

    When xdm is unable to write to the usual user authorization file ($HOME/.Xauthority), it creates a unique file name in this directory and points the environment variable XAUTHORITY at the created file. It uses /tmp by default.

    So in my system I do this:

    xauth
    

    Using authority file /root/.xauthPpRsfU

    xauth> 
    

    I exit [Ctrl+d] and I log back in, I see that now it is starting to use a different .xauth* file.

    xauth
    

    Using authority file /root/.xauthq1xt4z

    xauth>
    

    Why does it need to keep on creating a diffent xauth file every time I login? Also, why is it in root when the default location is /tmp/? I have not set .DisplayManagaer.DISPLAY.userAuthDir to /tmp in the xdm configuration file.

    I don't see this behaviour on any other system. In RHEL and Ubuntu all is fine.

    For pointers I am not the only one who faces this issue. I guess this post is similar: `$XAUTHORITY` appears from 'nowhere' on su+tmux.

    Does anyone know how I can fix this?

  • Gilles 'SO- stop being evil'
    Gilles 'SO- stop being evil' over 12 years
    On Linux: grep -lsz '^AUTHORITY=' /proc/[0-9]*/environ | cut -d / -f 3
  • user1039494
    user1039494 over 12 years
    i believe that your command above gives me the pid of the process that has changed / updated the XAUTHROTIY environment variable . Could be help me with the logic behind this kind of usage . Seems a handy command .