我在家里和工作电脑上使用 Cygwin 作为我的主要开发环境。
为了在两台计算机之间共享文件,我使用 Dropbox,它安装在两台计算机的以下文件夹中:c:\cygwin\home\dvanaria\dropbox
一切都很顺利,除了一件事。当我在家用电脑上工作并对任何目录执行 ls -l 时,所有文件都显示为 Users 组的 dvanaria 所有。但是当我在工作电脑上工作时,ls -l 显示所有文件都归 Administrators 和 Domain Users 组所有。
我知道 Cygwin 使用某种方式将 Windows 用户和权限映射到 /etc/passwd 文件。但说实话,我不知道这个文件如何工作,也不知道它如何在 Cygwin 下映射到 Windows。
有人能帮忙解决这个问题吗?主要问题是,当我使用工作电脑时,我无法编辑任何文件,只能读取它们。
答案1
首先,这些文件在两台电脑上并不是相同的文件。Dropbox 只是在两台电脑之间进行复制。并没有真正的文件共享(Windows 中“共享”的含义)。其次,由于你们是两台不同电脑上的两个不同用户,因此这些文件归两台不同电脑上的不同用户所有也就不足为奇了。
现在你可能会问,为什么你的工作机器显示所有者为管理员组,而你的家用机器却不是?Windows 有一个本地安全策略,它控制新创建的文件是归创建它们的用户所有还是归管理员组所有(如果用户是管理员组的成员)。显然,两台机器之间的策略不同。此外,你的工作机器可能由域控制器强制执行该策略,因此你可能无法更改它。