не вдається отримати доступ до "/root/.config/git/attributes": Дозвіл> відмовлено "


10

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

"Попередження: не вдається отримати доступ до" /root/.config/git/attributes ": дозволу відмовлено"

Ми виконуємо команду як sudo -u www-data git clone <repo>.

З судо ми отримуємо це попередження, інакше це працює добре.

Ми можемо клонуватися як користувач 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, він чудово працює.

Також я це зробив:

Створив користувача geopc і додав до списку sudoers, і коли ми зареєструвались як користувач geopc і виконаємо цю команду, 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, але таку ж.


1
Досить типово, що дозволи файлової системи блокують всі інші користувачі, включаючи www-data, доступ до файлів під /root. Якщо не дозволи файлової системи, то звичайно такі речі, як AppArmor або SELinux, повинні блокувати доступ веб-сервера до / root.
HBruijn

Здається, ні. Я змінив питання, будь ласка, перевірити.
Гео


Я використовую цю відповідь, і ця відповідь працює на мене. Спробуйте самі
Toir427

Відповіді:


10

@mu має рацію. Це питання, коли ваша змінна середовища HOME користувача rootпередається до сценарію замість www-dataзмінної середовища HOME користувача.

Вам просто потрібно додати перемикач -H до команди sudo, тому це досить просто:

sudo -u www-data -H git clone -v git@....../test.git

1

Я думаю, що HOMEзмінна встановлена ​​неправильно.

З потоку групи google ,

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

Тож рішенням було для мене встановити HOME env для каталогу HOME користувача


для мене це починалося: HOME = / home / git git daemon ...
rofrol

-1

Вам просто потрібно перезапустити примірник сховища, використовуючи user other, а не root. Зазвичай користувач буде таким самим, як ви використовували під час встановлення.

наприклад, атлсташ

Це дозволить встановити змінну HOME як / home / atlstash і вирішити вашу проблему

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.