2

Я занимаюсь разработкой под Windows и предпочитаю запускать команды git и build из командной строки Windows, но иногда мне нравится использовать cygwin, когда я хочу просто изучить репозиторий проекта с помощью моих любимых инструментов Unix.

У меня проблема в том, что всякий раз, когда я делаю какую-либо проверку git, проверяемые файлы доступны только для чтения с точки зрения cygwin. Я могу легко это исправить с помощью рекурсивного chmod, но я не хочу делать это после каждой проверки git. Обратите внимание, что если я редактирую те же файлы с помощью любой программы Windows, они доступны для записи - только cygwin видит их только для чтения.

Я не уверен, что смогу добавить git hook, потому что, как я уже сказал, я запускаю git checkout из командной строки Windows.

Я предполагаю, что я запутался во взаимодействии между разрешениями Windows и разрешениями cygwin.

1 ответ1

3

Не тратя некоторое время на просмотр ваших разрешений на доступ к файлам Windows, трудно сказать точно, что происходит не так.

К счастью, мне не нужно это знать. Простое решение для устранения всех проблем с правами доступа к файлу - использование опции noacl для всех монтировок Cygwin.

Откройте /etc/fstab в вашем любимом текстовом редакторе Cygwin (или, как правило, C:\cygwin\etc\fstab в вашем любимом Windows, при условии, что он поддерживает окончания строк Unix [так что не Notepad]) Мой ранее выглядел так:

# 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:

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