timeout no arquivo de autoridade de bloqueio (serviço vnc)

1

Existem algumas páginas sobre timeout in locking authority file /root/.xauth , mas eu realmente não entendo qual é a raiz do problema.

Quando começo o serviço vnc, vejo:

root@cluster:mahmood# /etc/init.d/vncserver start
Starting VNC server: 1:vahidms xauth:  timeout in locking authority file /root/.xauthVdNayr

New 'cluster.scu:1 (vahidms)' desktop is cluster.scu:1

Starting applications specified in /home/vahidms/.vnc/xstartup
Log file is /home/vahidms/.vnc/cluster.scu:1.log

Embora o comando seja executado por root, mas parece que ele quer acessar /root/.xauthVdNayr em nome de / home / vahidms (um usuário).

Então, por quê?

UPDATE 1 Por favor, veja a saída dos comandos como indicado na resposta

root@cluster:~# ls -l /etc/init.d/vncserver
-rwxr-xr-x 1 root root 3126 Dec  8  2011 /etc/init.d/vncserver
root@cluster:~# grep -i xauth /etc/init.d/vncserver
root@cluster:~# env | grep XAUTHORITY
root@cluster:~# su - vahidms
vahidms@cluster:~$ env | grep XAUTHORITY
vahidms@cluster:~$ exit
logout
root@cluster:~# lslocks
-bash: lslocks: command not found

UPDATE 2

Por favor, veja a saída relacionada. Gostaria de saber por que o comando lslocks não está disponível.

root@cluster:~# yum list | grep util-linux-ng.x86_64
util-linux-ng.x86_64                       2.17.2-12.18.el6            @base
root@cluster:~# find / -name lslocks
root@cluster:~# grep -i xauth /usr/bin/vncserver
$xauth = "xauth";
$xauthorityFile = "$ENV{XAUTHORITY}" || "$ENV{HOME}/.Xauthority";
open (XAUTH, "|xauth -f $xauthorityFile source -");
print XAUTH "add $host:$displayNumber . $cookie\n";
print XAUTH "add $host/unix:$displayNumber . $cookie\n";
close XAUTH;
$cmd .= " -auth $xauthorityFile";
    if (-x "/usr/X11R6/bin/xauth") {
        $xauth = "/usr/X11R6/bin/xauth";
        foreach $cmd ("xauth") {
root@cluster:~# grep -i env /etc/init.d/vncserver
root@cluster:~# grep -i env /etc/rc.d/init.d/vncserver
root@cluster:~#  

Alguma ideia?

    
por mahmood 25.05.2016 / 11:17

1 resposta

0

vncserver é um script em perl, portanto, olhe dentro para ver se ele executa xauth para adicionar um valor MIT-MAGIC-COOKIE-1 aleatório recém-criado (obtido de mcookie ) para o servidor que está prestes a iniciar. Por padrão, ele diz ao xauth para usar o arquivo ~/.Xauthority , mas parece que você definiu XAUTHORITY=/root/.xauthVdNayr em seu ambiente, e isso tem precedência.

O arquivo de autoridade a ser utilizado normalmente está no diretório inicial do usuário que criará clientes para o servidor.

Você provavelmente está herdando o XAUTHORITY de xdm ou algum gerenciador de exibição semelhante, e é provavelmente o processo que bloqueou o arquivo. Use o comando lslocks para listar quais comandos têm quais arquivos bloqueados.

Você pode simplesmente unset da variável de ambiente XAUTHORITY para que o arquivo padrão seja usado.

    
por 25.05.2016 / 19:17