2014-10-23 2 views
0

Интересно, может ли его установить пользователя и группу сервера для каждого клонированного git репозитория.Разверните git pull как домашний пользователь dir

Например, если репозиторий был в каталоге:

/home/example/domains/example.com/public_html/ 

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

Каков наилучший способ предотвратить это, не делая chown каждый раз, когда добавляется новый файл.

И что должно случиться?

  1. Перейти к каталогу другого пользователя cd /home/example/, как вы можете увидеть, набрав ls -all в том, что все файлы в этом каталоге принадлежат примеру пользователя и группе. Например,
  2. Перейдите в репозиторий git или создайте его, в этом примере я создал его на /home/example/domains/example.com/public_html/.
  3. Выполните команду ls еще раз, и вы заметите, что пользователь и группа равны root: root, но я не хочу, чтобы это было так, как пример: example.

Простым, но ручным решением было бы.

chown -R example:example /home/example/domains/example.com/public_html/ 

Только Я ищу что-то более динамичное, и он должен работать со всеми другими командами Git, как тянуть, потому что, когда вы тянете новые коммиты из репозитория локальных, чем он будет принадлежать корню: корень ,

ответ

0

Переключиться на пользователя 'example', используя sudo -u. Вы захотите сделать это в любом запуске git pull. Если git pull не запускает никаких крючков, я предлагаю вам прочитать this guide on deploying using git.

Git отслеживает исполняемый бит пропусков файла и не более.

В общем, вам следует избегать запуска таких вещей как root: нет причин не нажимать выделенного пользователя git (или пример пользователя) и многие причины не нажимать как root.

Смежные вопросы