零星的.Xauthority不可写,变化将被忽略“从OSX – > Linux

每当用户从他们的OS X(Snow Leopard)工作站SSH到我们的Linux主机之一,他们都会收到消息:

/usr/bin/xauth: ~/.Xauthority not writable, changes will be ignored 

当然,他们的X转发应用程序在这一点上是行不通的。

但是,如果他们注销并重新login,则不会收到消息,并且所有内容都按预期工作。

在他们的Mac上,他们通过法新社得到他们的主目录。 Linux机器通过NFS获取它。

任何想法可能会发生在这里?

我不禁想知道,如果你看到一个竞争条件,也许是这样的:

  • 用户login到OS X客户端,该客户端通过AFP安装主文件夹
  • 用户ssh到一个Linux主机,它挂载的OS X客户端已安装的家,但通过法新社这样做。
  • Linux主机读取(写入?)到〜/ .Xauthority并locking文件 – 有意或无意(作为检查过程的一部分)(服务器执行的操作,以防止使用不同的两个系统写入相同的文件协议或heck,以防止两个不同的系统在同一时间跺脚一个文件,而不pipe协议)。
  • 原来的Mac OS X客户端想logging有关会议的数据[抛开:我真的不知道.Xauthority是用于]并尝试访问该文件
  • 它被告知文件被locking
  • 大约在这个时候,Linux的文件夹已经完成了,并且被解锁了

在不同的尝试中,可能是这样的:

1)他们正试图连接到一个已知的主机,OS X客户端不需要logging任何信息,不访问.Xauthority,或2)时间已经足够,两个系统不会尝试使用相同的文件在同一时间[因此这是一个竞争条件]。


我不确定你是怎么知道的。 我想你可以在服务器上使用fs_usage命令(或像fseventer这样的GUI工具)来查看是否正在快速连续访问同一个文件,尽pipe这并不一定certificate什么。

您可以通过在文件或( lsof -i )networking连接上使用lsof来收集有用的信息。 可能你可以打开AFP和NFS的日志logging(或使用nfsstat ?)并交叉引用它们。

我会考虑编译iftop ,但是运行时应该看到的是,从Mac客户端和Linux客户端都连接到服务器,并使用不同的端口和传输信息。

我build议有一个testing用户ssh在Mac客户端和Linux主机上使用不同的帐户一段时间,看看是否出现问题。 如果没有,那么在两个地方同时使用同一个帐户(很有可能是因为安装了两次主文件夹)。


如果可以将OS X和Linuxconfiguration为使用Xauthority文件的不同副本,则可能值得一看。 (我不确定你是否可以做到这一点)。

我也会尝试让一个testing用户通过NFS在OS X上访问他们的home文件夹,看看是否有所作为。

如果过去很久以前通过ssh启动了几十个X应用程序。 ssh使用自己locking.Xauthority文件的xauth,如果无法locking它,将会失败。 通过修改xauth程序来解决这个问题,而不是在锁上旋转,但是没有修补程序了。

如果ssh_config文件没有设置ForwardX11,则可能必须在ssh命令中使用-X。 IE看看是否

ssh -X machineName

作品