Не вдається отримати доступ до 'git / attributes'


89

Що означає попередження remote: warning: unable to access '/root/.config/git/attributes': Permission deniedта які наслідки воно має?

$git clone git://git.eclipse.org/gitroot/egit/egit.git
Cloning into 'egit'...
remote: warning: unable to access '/root/.config/git/attributes': Permission denied
remote: Counting objects: 57926, done.
remote: Compressing objects: 100% (11872/11872), done.
remote: Total 57926 (delta 30734), reused 56308 (delta 29136)
Receiving objects: 100% (57926/57926), 32.29 MiB | 1021 KiB/s, done.
Resolving deltas: 100% (30734/30734), done.
Checking out files: 100% (1483/1483), done.

Чи повинен я повідомляти про потенційну проблему інфраструктури для хостеру?


Чи змогли ви це вирішити?
mu 無

@mu 無 Ні, я неохоче повідомляю про помилку на хостингу з цього приводу, оскільки я досі не маю остаточної відповіді.
Basilevs

Відповіді:


188

Я сам зіткнувся з цією ситуацією. Перевіривши, що він заглядає, ~/.config/я помітив, що власником цієї папки є root. Я змінив це на, my_user_nameі це спрацювало.

cd ~/
ls -al
<Noticed .config was owned by root, unlike everything else in $HOME>
sudo chown -R $(whoami) .config

Також допомагає дізнатися причину: Цей каталог створюється під час першого запуску програми, яка його використовує. Якщо команду було запущено як root, це призведе до проблеми з дозволами.

Наприклад, якщо ~/.configкаталог ще не існує, і ви запускаєте sudo htop, каталоги ~/.configі ~/.config/htopбудуть створені та належать root. Після цього звичайна команда git не зможе отримати доступ ~/.configі дасть вищезазначене попередження. (Кредит: користувач mehtunguh)

-RВаріант з chownполягає в зміні дозволу рекурсивно. Це допоможе, якщо у вас є підпапки~/.config


6
це також допомогло мені під час використання командного рядка Linux у Windows 10 - дякую!
lukaszkups

1
це була чудова
економія

7
Це також допомагає дізнатися причину - Цей каталог створюється під час першого запуску програми, яка його використовує. Якщо команда була запущена як root, це призведе до проблеми з дозволами. Наприклад, якщо ~/.configкаталог ще не існує, і ви запускаєте sudo htop, каталоги ~/.configі ~/.config/htopбудуть створені та належать root. Тоді звичайна gitкоманда не може отримати доступ ~/.configі дасть це попередження.
mehtunguh

1
@mehtunguh Будь ласка, додайте це до моєї відповіді! Безперечно, це цінна інформація.
BlackVegetable

@mehtunguh Я додав ваше розуміння цієї відповіді. Ще раз дякую вам.
BlackVegetable

9

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

З нитки групи Google ,

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

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


2

Git намагається прочитати конфігурацію з root, а не конфігурацію користувача. Переконайтеся, що у ваших змінних середовища встановлено правильний конфігураційний файл git, чи доступний файл .gitconfig у вашій домашній папці.


Чи можливі проблеми, спричинені цим?
Basilevs

2

Перейдіть до кореневого каталогу

cd ~/

Напишіть такий код:

sudo chown -R username /Users/username

Де ім’я користувача - це ім’я користувача вашої системи.


Ця відповідь на питання "Чи слід змінювати власність папки .config у моєму домашньому каталозі?" Є актуальною. askubuntu.com/questions/852265/…
CodingMatters

0

Я запустив подібну проблему і зміг її виправити на стороні сервера. git працює там під uwsgi, тому я додав у uwsgi config наступний рядок:

env = HOME=/srv/git

де / srv / git належить тому самому uid, під яким працює uwsgi і зроблений chmod u+rwX /srv/git Отже, вам потрібно вказати змінну HOME на стороні сервера для процесу, який запускає git, до каталогу, де цей процес матиме дозволи на читання / запис / обхід


0

Для Windows це може бути так, коли якийсь процес, такий як CMD або клієнт SSH, відкрив якусь папку, яку Git намагається видалити.

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