锁定权限文件超时(vnc 服务)

锁定权限文件超时(vnc 服务)

有一些页面,timeout in locking authority file /root/.xauth但我真的不明白问题的根源是什么。

当我启动 vnc 服务时,我看到:

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

虽然该命令是由root运行的,但它似乎想要代表/home/vahidms(一个用户)访问/root/.xauthVdNayr。

所以为什么?

更新1 请查看答案中所述命令的输出

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

更新2

请参阅相关输出。我想知道为什么该lslocks命令不可用。

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:~#  

任何想法?

答案1

vncserver是一个 perl 脚本,因此您查看内部会发现它运行为即将启动的服务器xauth添加新创建的随机MIT-MAGIC-COOKIE-1值(从 获取)。mcookie默认情况下,它告诉 xauth 使用 file ~/.Xauthority,但您似乎已经XAUTHORITY=/root/.xauthVdNayr在您的环境中进行了设置,并且这优先。

要使用的权限文件通常位于将为服务器创建客户端的用户的主目录中。

您可能继承XAUTHORITYxdm或某些类似的显示管理器,并且它可能是锁定文件的进程。使用命令lslocks列出哪些命令锁定了哪些文件。

您可以简单地设置unsetXAUTHORITY 环境变量,以便使用默认文件。

相关内容