Возможно ли развертывание на сервере через git, но с сохранением разрешений DocumentRoot с именем пользователя: www-data? Как я могу позволить использовать git другому пользователю, а затем root, и сохранить группу www-data для файлов?
Прямо сейчас я получаю после любого нажатия файлы, измененные на root: root, и мне приходится входить в систему на удаленном компьютере и каждый раз вручную изменять разрешения.
Git не меняет права доступа к файлам или владельцев. Он просто не хранит разрешения. Разрешения меняются на те, которые есть у вашего пользователя. Как и при создании любого файла.
Git поддерживает два набора разрешений: исполняемый бит включен и исполняемый бит выключен. Ничего больше. Информация о собственности вообще не сохраняется.
Если вам нужны определенные разрешения, вам нужно будет сделать это вручную.
В качестве другого обходного пути вы можете использовать git-хуки или можете использовать отдельный инструмент, чтобы сделать это за вас.
Мне просто пришлось изменить владельца (user1: user1) репозитория git на то же, что и для каталога, определенного как DocumentRoot в конфигурации виртуальных хостов.
Кроме того, мне пришлось включить libapache2-mpm-itk (так как я хочу разделить все сайты на машине друг от друга):
https://cloudkul.com/blog/apache-virtual-hosting-with-different-users/
пытаюсь выполнить поиск в Stack Overflow, например serverfault.com/a/27040/377329. Решение не в git, а в настройке разрешений в вашей файловой системе. В качестве альтернативы вы можете просто клонировать репо на своем файловом сервере как пользователь www-data вместо пользователя root.