Могу ли я настроить Git пользователя / разрешения, чтобы я мог сохранить файл, принадлежащий www-data? - PullRequest
0 голосов
/ 09 апреля 2020

Я столкнулся с досадной проблемой, когда у меня есть JSON файл в git -синхронизированном каталоге, который читается и записывается напрямую с помощью плагина Wordpress PHP. Чтобы плагин мог выполнять запись в файл, родительский каталог файла и все файлы в нем должны принадлежать пользователю www-data.

Однако, если я выполню:

sudo chown -R www-data parent-directory/

... затем, когда я пытаюсь выполнить любые команды Git, я получаю ошибки следующего вида (в зависимости от действия):

error: unable to unlink old 'parent-directory/file.json': Permission denied
error: cannot open .git/FETCH_HEAD: Permission denied

Чтобы иметь возможность использовать как плагин, так и git , Я должен держать chown в родительском каталоге между моим именем пользователя и www-data.

Есть ли лучший способ? Могу ли я сделать git способным использовать каталоги и файлы, принадлежащие www-data?

Ответы [ 2 ]

0 голосов
/ 10 апреля 2020

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

Для решения вашей проблемы вам нужно будет запустить git как пользователь, который должен быть владельцем файлов (www-data в вашем случае) или после запуска git и проверки всех файлов, запустите скрипт это переназначит их соответствующему пользователю и переместит на место этого пользователя. Идеально использовать инструмент CI / CD для создания развертываемого пакета из репозитория git, а затем установить его на свой сервер и позволить системе упаковки обрабатывать разрешения.

0 голосов
/ 10 апреля 2020

Это на самом деле не проблема Git, а скорее общая проблема c Unix. В вашем случае вы, вероятно, захотите сделать это, вызвав ваши Git команды с помощью sudo -u www-data (например, sudo -u www-data git pull). Тогда все ваши операции будут выполнены пользователем www-data, и у вас не возникнет проблем.

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