在 Windows 10 中,管理系统2我将其设置fstab
为:
none / cygdrive binary,posix=0,acl,user 0 0
我无法使用 设置执行权限chmod
,尽管已acl
在 中设置fstab
:
# echo > foo
# ls -l foo
-rw-r--r-- 1 ant None 1 Jun 1 19:18 foo
# chmod +x foo
# ls -l foo
-rw-r--r-- 1 ant None 1 Jun 1 19:18 foo
fstab
在 Cygwin 中,对同一个文件设置相同的 ,我得到:
# ls -l foo
-rwxrwx---+ 1 ant None 1 Jun 1 19:18 foo
这是预期的行为。
答案1
好的,我在这上面浪费了相当多的时间,所以让我记录一下我的发现:
更改 fstab 有帮助,但您必须通过经过挂载点的路径对文件进行 chmod。换句话说:
mkdir /c/test # Outside MSYS2 root (/).
cd /c/test
touch foo
chmod +x foo # works but presumably won't if inside MSYS root.
chmod +x /c/test/foo # works and presumably will if inside MSYS root.
chmod +x c:\test\foo # does not work -- go figure.
如果您问我自己的拙见,这真是太愚蠢了。解决方案似乎非常简单:在所有默认 MSYS2 挂载上将 noacl 更改为 acl(MSYS2 根挂载是自动创建的,无法从 fstab 更改为 acl——更正:据说可以使用覆盖挂载选项)。