Git не соблюдая Umask - PullRequest
       13

Git не соблюдая Umask

0 голосов
/ 12 января 2019

У меня установлен umask 0002, и я установил все каталоги проекта с chmod g+rws, а файлы - chmod 664.

Поэтому, когда я вручную создаю новый каталог:

$ mkdir foo
$ ls -ld foo
drwxrwsr-x 2 william www-data 4096 Jan 11 21:20 foo

и когда я вручную создаю файл:

$ touch foo/bar
$ ls -lh foo/bar 
-rw-rw-r-- 1 william www-data 0 Jan 11 21:21 foo/bar

Оба вышеперечисленных соответствуют назначению (я хочу, чтобы другие участники группы www-данных могли их изменять).

Тем не менее:

Всякий раз, когда я использую установку composer для проверки нескольких git-репозиториев и создания новых файлов и каталогов, я получаю странные разрешения:

drwxr-sr-x 2 william www-data 4.0K Dec 26 12:24 foo
-rwxr-xr-x 1 william www-data 3103 Dec 26 03:53 foo/bar

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

Кроме того, git config core.fileMode установлен на false на сервере развертывания (насколько я понимаю, он охватывает только исполняемый бит, а не чтение и запись).

Есть предложения, что может происходить?

В этом случае я использую composer для развертывания репозиториев WordPress - wpackagist -, если репозиторий источника имеет какое-либо отношение.

(Debian Jessie, оболочка bash)

1 Ответ

0 голосов
/ 13 января 2019

По умолчанию Git соблюдает umask, установленный пользователем. Возможно, что-то еще, например другая программа или конфигурация оболочки во время развертывания, имеет другое значение, что вызывает расхождение.

Однако самый простой способ использования Git определенного режима для извлечения файлов, который звучит так, как вам нужно, - это установить core.sharedRepository, в данном случае 0664. Тогда Git всегда будет писать файлы с такими разрешениями, независимо от того, какой umask использовался для его вызова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...