MSYS2 权限

MSYS2 权限

在 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——更正:据说可以使用覆盖挂载选项)。

相关内容