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


15

我在Windows 7 Professional上使用cygwin。

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

每次我在cygwin终端外部创建新文件时都必须更改权限,这很烦人(来自cygwin终端的cp可以正常工作,并且可以按预期保持现有权限,甚至可以从cygwin内部创建新文件)。

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

如果没有,是否有任何方法可以递归地在文件夹下递归chmod 644所有* .myextension文件(不影响文件夹权限!)?


1
对于后备解决方案,这似乎可行:find ./ -type f -name'* .myExtension'-exec chmod 644 {} \;
UmaN 2013年

1
您是否尝试过umask?
Werner Henze 2013年

umask是0022。如上所述,通过cygwin终端创建就可以了。在Windows资源管理器中复制文件或在编程时通过例如IDE创建文件时会出现问题。这应该与Windows cygwin如何对待我认为的文件夹上的Windows权限有关……
UmaN

4
@UmaN:对您的评论进行评论:没有充分的理由要说find ./ …find . …可以正常工作,并且如果您习惯于一直打字find ./,那么在这些日子之一中,您可能会偶然输入find / -exec rm …(或等效地find /. …)。
斯科特,

1
@UmaN,我认为Casey Crockett的答案将是解决方案,是吗?它得到了以下支持:cygwin.com/ml/cygwin/2011-02/msg00121.html
r_alex_hall

Answers:


2

您需要在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

我发现ls命令的“用户组other”列表中的“所有人” Windows安全条目与“ other”匹配。删除“读取并执行”,只保留与之匹配的“读取”。对我来说,特殊的CREATOR GROUP安全条目与“ group”部分匹配。当我禁用“读取和执行”并且仅启用“读取”时,所有目录列表现在都与cygwin创建的文件的安全性匹配。


0

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

$ git config --local core.filemode false

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.