每当用户从他们的OS X(Snow Leopard)工作站SSH到我们的Linux主机之一,他们都会收到消息:
/usr/bin/xauth: ~/.Xauthority not writable, changes will be ignored
当然,他们的X转发应用程序在这一点上是行不通的。
但是,如果他们注销并重新login,则不会收到消息,并且所有内容都按预期工作。
在他们的Mac上,他们通过法新社得到他们的主目录。 Linux机器通过NFS获取它。
任何想法可能会发生在这里?
我不禁想知道,如果你看到一个竞争条件,也许是这样的:
ssh到一个Linux主机,它挂载的OS X客户端已安装的家,但通过法新社这样做。 在不同的尝试中,可能是这样的:
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
作品