我有一台 Windows 服务器,它使用 Windows 内置的目录共享工具在本地网络上公开一个目录以供共享。此服务器上有一个用户帐户,我将在以下所有步骤中使用该帐户。
我正在使用 macOS 笔记本电脑连接到共享并将其安装在 Finder 中。为此,我使用内置的 Finder 连接到服务器功能并填写 Windows 计算机名称和用户凭据。共享成功安装并保持安装状态,没有任何问题。
当我通过 RDP 连接到服务器并在其中创建一个目录并git init
在其中运行时,一切都正常。
当我在已挂载共享的 Mac 上运行的 VS Code 中创建共享目录并尝试git init
在其中运行时任何一个macOS 笔记本电脑的 Git 或通过 RDP(使用相同的用户凭据)的 Windows 服务器的 Git,两次尝试都会失败。
正在打印的问题是无法重命名.git/config.lock
-.git/config
该.git/config
文件不可写入。
我检查了目录属性和用户组中的共享权限选项卡、他们的权限甚至所有者字段在工作服务器和损坏的服务器上都设置为相同的值,并且这些值对我来说看起来没问题。
在我看来,使用 macOS 在连接的网络驱动器上创建的目录似乎存在一些权限/所有权问题,因此 Windows 和 macOS 都无法写入该目录(可能是因为它不直接执行磁盘 I/O,而是通过共享协议与 Windows 对话并要求它代表模拟用户执行 I/O)。或者它们可以,因为文件config.lock
可能正在创建,只是写入config
本身失败。
如何比较工作目录(在 Windows 上使用 RDP 创建)和损坏目录(由 macOS 在网络共享上创建)的权限/所有权数据以查找差异并修复它?
我是否需要重新配置我的网络共享连接,以便用户能够以正确的权限模拟,而我不必为每个新目录应用修复?
进一步的发现
这肯定是一个所有权/权限问题,因为通过网络创建的目录无法删除:
NUC\Tom
是随处使用的用户 - 在网络共享中、在 RDP 中、在 Windows 服务器上,并且它在目录的“属性”选项卡中显示为所有者。