variável de ambiente XAUTHORITY definida repetidamente em cada login

6

Estou executando um sistema Suse Linux 11.04. Meu problema é que quando eu faço um novo login em um shell como root, um novo arquivo Xauthority do formulário xauth***** é criado no diretório /root/ . Ao sair do shell, alguns arquivos .xauth permanecem para trás. Eu tentei em outros sistemas, mas isso não acontece. Além disso, por que a variável de ambiente XAUTHORITY está definida apenas para root e não para meus outros usuários no sistema?

man xdm diz o seguinte sobre a variável de ambiente XAUTHORITY

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.

Então, no meu sistema, faço isso:

xauth

Usando o arquivo de autoridade /root/.xauthPpRsfU

xauth> 

Eu saio de [Ctrl+d] e faço login novamente, vejo que agora ele está começando a usar um arquivo .xauth* diferente.

xauth

Usando o arquivo de autoridade /root/.xauthq1xt4z

xauth>

Por que é necessário continuar criando um arquivo xauth diferente sempre que faço login? Além disso, por que é na raiz quando o local padrão é /tmp/ ? Eu não defini .DisplayManagaer.DISPLAY.userAuthDir para /tmp no arquivo de configuração xdm .

Eu não vejo esse comportamento em nenhum outro sistema. No RHEL e no Ubuntu tudo está bem.

Para os ponteiros, não sou o único que enfrenta esse problema. Eu acho que este post é semelhante: '$ XAUTHORITY' aparece em 'nowhere' on + tmux .

Alguém sabe como posso consertar isso?

    
por user1039494 06.12.2011 / 12:45

2 respostas

1

Se você estiver usando su para fazer o login como root, é provável que seja devido ao uso de pam_xauth para configurar um novo arquivo xauthority para essa sessão, conforme descrito em thread de e-mail antigo .

    
por 02.06.2013 / 06:41
0
Muito tempo atrás, eu fiz a mesma pergunta. Quem exporta / tem essa variável definida em seu ambiente de processo. Felizmente, fui ensinado a ter um script de shell. Isso funciona no Solaris. No Linux, pode ser um pouco diferente analisar o ambiente pai do processo.

Eu poderia até mesmo dar a você a conversa: link

envtrace(){ 
ptree $$ | 
while read pid prog 
do 
  /usr/ucb/ps eww $pid 
done | 
sed -n ' 
s/^ *// 
/^[^0-9]/d 
h 
s/ .*/:/p 
g 
s/^.* \('"$1"'=[^ ]*\).*//p 
g 
/^'"$$"' /q' 
} 

PATH de envtrace envtrace OSTYPE

    
por 06.12.2011 / 12:53

Tags