1

В Windows 10 с MSYS2 я установил свой 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

В Cygwin, установив тот же fstab , для того же файла я получаю:

# ls -l foo                                         
-rwxrwx---+ 1 ant None 1 Jun  1 19:18 foo        

что является ожидаемым поведением.

1 ответ1

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.

Довольно умственно отсталый, если вы спросите мое скромное мнение. И решение кажется довольно простым: смените noacl на acl на всех монтируемых по умолчанию MSYS2 (корневое монтирование MSYS2 создается автоматически, и нет возможности перейти на acl с помощью fstab-коррекции: предположительно возможно с опцией монтирования override).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .