如果不花一些时间来处理各种Windows文件权限,就很难确切地说出问题所在。
值得庆幸的是,我不需要知道这一点。解决所有文件权限问题的简单方法是noacl
对所有Cygwin挂载使用该选项。
/etc/fstab
在您喜欢的Cygwin文本编辑器中打开(或者,通常,C:\cygwin\etc\fstab
在您喜欢的Windows 文本编辑器中打开,只要它支持Unix行尾(而不是记事本))。我的以前看起来像这样:
# For a description of the file format, see the Users Guide
# http://cygwin.com/cygwin-ug-net/using.html#mount-table
# This is default anyway:
# none /cygdrive cygdrive binary,posix=0,user 0 0
如果最后一行仍被注释掉,请删除开头,#
以便系统注意。它可能不会被注释掉,在这种情况下将无法#
删除。
然后,在选项列表(仅此binary,posix=0,user
而已)中,添加,noacl
到末尾。/etc/fstab
然后,我中的相关行如下所示:
none /cygdrive cygdrive binary,posix=0,user,noacl 0 0
然后关闭并重新打开所有Cygwin应用程序(您可能需要重新启动),并且您应该停止看到任何权限问题。
请注意,如果您一直在使用挂载点进行复杂的操作,则可能需要在其中编辑多行/etc/fstab
以及在中累积的任何文件/etc/fstab.d
。所有这些更改都将是相同的。
该noacl
选项将导致Cygwin完全忽略所有NTFS访问控制列表。仍将查看DOS只读属性,但这与任何用户无关。这意味着它也无法基于权限判断文件是否可执行。相反,它假定任何文件的结局.bat
,.com
或者.exe
是可执行文件,以及任何文件开始#!
。
如果您有兴趣的话,可以从《 Cygwin用户指南》中进一步阅读:
git --exec-path
?