OS X 文件权限、文件共享和 Git

OS X 文件权限、文件共享和 Git

这是我的设置:

运行 Snow Leopard 的 Mac Mini

  • 共享一个包含大量代码的文件夹。该文件夹及其中的所有内容均设置为供主用户和“员工”组读取/写入

运行 Lubuntu 11.04 的桌面(LXDE Ubuntu)

  • 以 Mini 主用户身份使用 Samba 挂载点访问共享
  • 还通过 SSH 进入 Mini(使用同一用户)来运行 Git 命令(尚未弄清楚如何或是否可以授予桌面上 Git 设置的读/写权限,这样做比 SSH 慢)

我这样做(而不是将 Mini 设置为 Git 服务器),是因为我希望使用我的笔记本电脑进行某种卫星设置(它的硬盘在损坏了一个或三个 Git 存储库后,我就不信任它的硬盘了),并想看看是否可以通过使用我的台式机作为实验对象来完成整个设置(我不喜欢在 Mac 上工作,而且 Mini 不能很好地处理我的工作流程和需求),还有其他各种原因(所以请不要说“只需将 Mini 设置为 Git 服务器”)。到目前为止,它运行良好。

但是,我不断遇到一个我不知道如何解决的问题。共享中的一个或多个文件经常会将“staff”组的权限更改为只读。

到目前为止我发现发生这种情况的情况有:

  1. 当我在 Git 中更改分支时,当我更改文件并在 NetBeans 中将其保持打开状态时(更改已提交给 Git)

  2. 当 Mac 进入睡眠状态时,我打开的文件将变为只读

  3. 有时,当我在 Linux 桌面上更改文件时,Mac 不仅会将其设为只读,还会删除文件的内容(git checkout [filename]在这些情况下,感谢 Linus)

我已经解决了 2 的问题,让它在不活动后不进入睡眠状态,但是 1 有点难,因为有时我经常在分支之间切换,并且我经常因为各种原因保持文件打开。

出于某种原因,Mini 似乎认为使用共享的用户是“员工”组的一部分,但实际上并不是主用户,即使安装共享使用相同的凭据。

那么,有没有办法

  1. 确保文件不会对“staff”组变为只读状态,或者
  2. 使挂载被识别为与共享所有者相同的用户?

答案1

我建议您在设置中用 NFS 替换 samba,samba 对 Linux 和 Mac 来说都是陌生的。

相关内容