Соответствие разрешений Windows 7 по умолчанию для созданных Cygwin файлов по умолчанию

15

Я использую Cygwin на Windows 7 Professional.

Когда я создаю новые файлы, такие как MyNewFile.java, я получаю разрешение по умолчанию 755. Это не то, что я хочу. Я хочу, чтобы это было 644 для обычных файлов.

Это очень раздражает, когда приходится менять разрешения каждый раз, когда я создаю новые файлы вне терминала cygwin (cp из терминала cygwin работает нормально и просто сохраняет существующие разрешения, как и ожидалось, даже создание новых файлов изнутри cygwin работает).

В качестве альтернативы, есть ли способ в git автоматически изменять файлы * .myextension, чтобы всегда иметь определенное разрешение?

Если нет, есть ли способ рекурсивно выполнить chmod 644 все файлы * .myextension в папке (без ущерба для прав доступа к папке!)?

Умань
источник
1
Для резервного решения это работает: find ./ -type f -name '* .myExtension' -exec chmod 644 {} \;
UmaN
1
Вы дали Umask попробовать?
Вернер Хенце
umask - 0022. Как уже говорилось, создание через терминал cygwin работает просто отлично. Проблема возникает при копировании файлов в проводнике Windows или создании файлов, например, через IDE при программировании. Это должно как-то иметь отношение к тому, как Windows cygwin обрабатывает разрешения Windows для папок, я полагаю ...
UmaN
4
@ UmaN: комментарий к вашему комментарию: нет веских оснований говорить find ./ …; find . …работает просто отлично, и если вы привыкнете печатать find ./все время, на днях вы будете печатать find / -exec rm …(или, что то же самое find /. …) случайно.
Скотт
1
@ Ума, я думаю, что ответ Кейси Крокетт будет решением, да? Это подтверждается этим: cygwin.com/ml/cygwin/2011-02/msg00121.html
r_alex_hall

Ответы:

2

Вам нужно изменить безопасность папки в Windows, в которую пишет cygwin, чтобы она соответствовала вашей конфигурации cygwin.

Например, с безопасностью по умолчанию я получаю:

-rwxr-xr-x 1 400 401    0 Jul 29 14:48 New Text Document.txt

После изменения безопасности для папки в Windows, я получаю:

-rwxr--r-- 1 400 401    0 Jul 29 14:54 New Text Document 2.txt

Я обнаружил, что запись безопасности Windows «Все» соответствует значению «прочее» в списке «Группа пользователей другое» в команде ls. Удалите «Чтение и выполнение», оставив только «Чтение» для соответствия. Специальная запись безопасности CREATOR GROUP соответствовала "групповой" части для меня. Когда я отключил «Чтение и выполнение» и оставил только «Чтение включенным», все списки каталогов теперь соответствуют безопасности созданного cygwin-файла.

Кейси Крокетт
источник
0

Непонятно, чего вы здесь добиваетесь, но если вы пытаетесь заставить свой cygwin git игнорировать разрешения, сделайте следующее:

$ git config --local core.filemode false

stacksharki
источник