Похоже, что у пользователя, с которым вы работаете, установлена группа по умолчанию yuri
. Вы можете подтвердить это так:
$ id -a
uid=1000(saml) gid=1000(saml) groups=1000(saml),10(wheel),989(wireshark)
UID вашей учетной записи таков: uid=1000(saml)
тогда как группа по умолчанию - git=1000(saml)
и любые вторичные группы после этого.
ПРИМЕЧАНИЕ. Если вы хотите, чтобы клон git имел определенное право собственности, у вас есть как минимум 2 варианта.
Опция 1
Установите родительский каталог с разрешениями, как вы хотите, вот так:
$ mkdir topdir
$ chgrp http topdir
$ chmod g+s topdir
$ cd topdir
$ git clone ....
Это заставило каталог topdir
применять любые дочерние каталоги под ним http
. По большому счету это сработает, но может привести к проблемам, так как если вы переместите файлы в это рабочее пространство git clone, то для этих файлов не будут применены их группы в результате внесенных выше изменений.
Вариант № 2
Перед выполнением работы измените группу по умолчанию на http
следующую:
$ newgrp http
$ git clone ...
Этот метод заставит все новые файлы, созданные для их группы, http
вместо обычной группы по умолчанию yuri
, но это будет работать, только если вы не забыли сделать newgrp
до работы в этой рабочей области.
Другие опции
Если ни один из них не кажется приемлемым, вы можете попробовать использовать ACL вместо этого в каталоге рабочей области git. Они обсуждаются в нескольких вопросах и ответах на этом сайте, таких как вопросы и ответы под названием: Получение новых файлов для наследования разрешений группы в Linux .
newgrp
. Тогда, это меняет группу только для текущей оболочки? И наконец, цель состояла в том, чтобы сделать только определенные файлы / каталоги доступными для записи веб-сервером. В конце концов, мне, вероятно, следует починить их вручную или установить какой-нибудьgit
крючок ...Решение, которое я использую, состоит в том, чтобы запустить команду как пользователь , у которого есть разрешения, которые вы хотите сохранить:
Это удерживает разрешения от изменения. Я использую его при обновлении git-репозиториев на моем VPS, сохраняя права доступа к файлам, установленные для пользователя веб-сервера.
Смотрите также тот же вопрос здесь .
источник