将 Windows 7 默认权限与 Cygwin 创建的文件默认权限进行匹配

将 Windows 7 默认权限与 Cygwin 创建的文件默认权限进行匹配

我在 Windows 7 专业版上使用 cygwin。

当我创建新文件(例如 MyNewFile.java)时,似乎默认权限设置为 755。这不是我想要的。我希望常规文件的权限为 644。

每次我在 cygwin 终端之外创建新文件时都必须更改权限,这非常烦人(从 cygwin 终端进行 cp 可以正常工作,并且只需按预期保留现有权限,甚至从 cygwin 内部创建新文件也可以)。

或者,git 中是否有任何方法可以自动更改 *.myextension 文件以始终具有特定权限?

如果没有,有没有办法以递归方式 chmod 644 文件夹下的所有 *.myextension 文件(不影响文件夹权限!)?

答案1

您需要更改 cygwin 正在写入的 Windows 文件夹的安全性,以便它与您的 cygwin 配置相匹配。

例如,使用默认安全性,我得到:

-rwxr-xr-x 1 400 401    0 Jul 29 14:48 New Text Document.txt

在 Windows 中更改文件夹的安全性后,我得到:

-rwxr--r-- 1 400 401    0 Jul 29 14:54 New Text Document 2.txt

我发现“Everyone”Windows 安全条目与 ls 命令中“用户组 other”列表中的“other”匹配。删除“Read & execute”,只留下 Read 来匹配。特殊的 CREATOR GROUP 安全条目与“group”部分匹配。当我禁用“Read & execute”并只保留 Read 启用时,所有目录列表现在都与 cygwin 创建的文件的安全性匹配。

答案2

目前尚不清楚您在这里想要实现什么,但如果您想让您的 cygwin git 忽略权限,请执行以下操作:

$ git config --local core.filemode false

相关内容