невозможно получить доступ к /root/.config/git/attributes: разрешение> отказано

10

На нашем сервере Ubuntu мы можем клонировать как пользователь Nginx /usr/share/nginx/wwwс www-data:wwwвладельцем -data, получая предупреждение как

Предупреждение: невозможно получить доступ к /root/.config/git/attributes: разрешение запрещено

Мы выполняем команду как sudo -u www-data git clone <repo>.

С sudo мы получаем это предупреждение, иначе оно работает нормально.

Мы можем клонировать как пользователь root, и это не проблема.

.gitconfig находится только в корне и просмотрите содержимое:

root@geo:~# cat /root/.gitconfig
[user]
        name = pc_user
        email = pcgeopc@gmail.com
root@geo:~#

Может кто-нибудь, пожалуйста, помогите нам в этом.

Мы пробовали различные варианты, такие как создание вручную /root/.config/и изменение разрешения и т.д .., но ничего не работает. Может кто-нибудь, пожалуйста, помогите мне в этом.

Также, пожалуйста, посмотрите это:

root@geo:/setup/test# ll /setup/
total 16
drwxr-xr-x  4 www-data www-data 4096 Oct  9 00:14 ./
drwxr-xr-x 24 root     root     4096 Oct  9 00:14 ../
drwxr-xr-x  3 www-data www-data 4096 Oct  9 00:14 test/

root@geo:/setup/test# sudo -u www-data git clone -v git@....../test.git
Cloning into 'test'...
remote: Counting objects: 8323, done.
remote: Compressing objects: 100% (6459/6459), done.
remote: Total 8323 (delta 1543), reused 8241 (delta 1500)
Receiving objects: 100% (8323/8323), 39.85 MiB | 19.52 MiB/s, done.
Resolving deltas: 100% (1543/1543), done.
Checking connectivity... done.
warning: unable to access '/root/.config/git/attributes': Permission denied

Так что, похоже, проблема с настройкой git. Может кто-нибудь, пожалуйста, направьте нас.


Я использую эту настройку на Ubuntu 14.04. Когда я делаю ту же настройку в другой Ubuntu 12.04, она прекрасно работает.

Также я сделал это:

Создал пользовательский геопек и добавлен в список пользователей, и когда мы вошли в систему как пользователь геопорта и выполнили эту команду, sudo -u www-data git clone -v git@....../test.git она отлично работает.

Таким образом, проблема в том, что мы напрямую вошли в систему как пользователь root в Ubuntu 14.04 и делаем клонирование при появлении sudo -u www-data git cloneэтого предупреждения. Но это не в Ubuntu 12.04.

Мы используем git версии 1.9.1 в Ubuntu 14.04, мы также обновили git до версии 2.1.1, но тоже самое.

Geo
источник
1
Довольно типично, что разрешения файловой системы блокируют доступ всех остальных пользователей, включая www-данные, к файлам в /root. Если нет прав доступа к файловой системе, то такие вещи, как AppArmor или SELinux, должны блокировать доступ веб-сервера к / root.
HBruijn
Кажется, нет .. Я изменил вопрос, пожалуйста, проверьте.
Geo
Я использую этот ответ, и этот ответ работает на меня. Попробуйте сами
Toir427

Ответы:

10

@ МУ прав. Это проблема передачи переменной окружения HOME пользователя rootв сценарий, а не www-dataпеременной окружения HOME пользователя.

Вам просто нужно добавить ключ -H к команде sudo, так что это довольно просто:

sudo -u www-data -H git clone -v git@....../test.git
quentinadam
источник
1

Я думаю, что HOMEпеременная настроена неправильно.

Из цепочки группы Google ,

переменная среды HOME была установлена /rootтак, чтобы на нее смотрели, /root/.gitconfigили /root/.config/git/configпоскольку непривилегированный пользователь не имел доступа к /rootней, возникла ошибка.

Таким образом, решение было для меня, чтобы установить HOME env в каталог пользователя HOME

му 無
источник
для меня это начиналось: HOME = / home / git git daemon ...
rofrol
-1

Вам просто нужно перезапустить ваш экземпляр stash, используя пользователя, отличного от root. Как правило, пользователь будет таким же, как вы использовали во время установки.

например, atlstash

Это установит вашу переменную HOME как / home / atlstash и решит вашу проблему.

ABs
источник