Tidak dapat mengakses 'git / atribut'

95

Apa arti peringatan remote: warning: unable to access '/root/.config/git/attributes': Permission denieddan implikasinya?

$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.

Haruskah saya melaporkan potensi masalah infrastruktur kepada pengelola?

Basilevs
sumber
Apakah Anda dapat menyelesaikannya?
mu 無
@mu 無 Tidak, saya enggan melaporkan bug di hosting tentang ini karena saya masih belum memiliki jawaban pasti.
Basilevs

Jawaban:

198

Saya sendiri mengalami situasi ini. Setelah memverifikasi ~/.config/bahwa folder itu sedang mencari, saya perhatikan pemilik folder itu root. Saya mengubah ini menjadi my_user_namedan berhasil.

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

Ini membantu untuk mengetahui penyebabnya juga: Direktori ini dibuat saat pertama kali Anda menjalankan program yang menggunakannya. Jika perintah dijalankan sebagai root, itu akan menyebabkan masalah izin ini.

Misalnya, jika ~/.configdirektori belum ada, dan Anda menjalankan sudo htop, direktori ~/.configdan ~/.config/htopakan dibuat dan dimiliki oleh root. Setelah itu, perintah git biasa tidak dapat diakses ~/.configdan akan memberikan peringatan di atas. (Kredit: pengguna mehtunguh)

The -Rpilihan dengan chownyaitu untuk mengubah hak akses secara rekursif. Ini akan membantu jika Anda memiliki subfolder di bawah~/.config

BlackVegetable
sumber
6
itu juga membantu saya saat menggunakan baris perintah linux di dalam windows 10 - terima kasih!
lukaszkups
1
ini adalah penghemat waktu yang hebat
Prithvi Raj Vuppalapati
7
Ini membantu untuk mengetahui penyebabnya juga - Direktori ini dibuat saat pertama kali Anda menjalankan program yang menggunakannya. Jika perintah dijalankan sebagai root, itu akan menyebabkan masalah izin ini. Misalnya, jika ~/.configdirektori belum ada, dan Anda menjalankan sudo htop, direktori ~/.configdan ~/.config/htopakan dibuat dan dimiliki oleh root. Kemudian gitperintah biasa tidak dapat mengakses ~/.configdan akan memberikan peringatan ini.
mehtunguh
1
@mehtunguh Harap pertimbangkan untuk menambahkan ini ke jawaban saya! Ini adalah informasi yang berharga untuk memastikan.
BlackVegetable
@mehtunguh Saya menambahkan wawasan Anda tentang jawaban ini. Terima kasih lagi.
BlackVegetable
9

Saya pikir HOMEvariabel lingkungan Anda tidak disetel dengan benar.

Dari utas grup google ,

variabel lingkungan HOME disetel untuk /rootdilihat /root/.gitconfigatau /root/.config/git/configkarena pengguna yang tidak memiliki hak istimewa tidak memiliki akses ke /rootsana membuat kesalahan.

Jadi solusinya adalah saya mengatur HOME env ke direktori HOME pengguna

mu 無
sumber
2

Git mencoba membaca konfigurasi dari root alih-alih konfigurasi pengguna. Harap periksa apakah variabel lingkungan Anda memiliki set konfigurasi git yang benar atau file .gitconfig di folder beranda Anda dapat diakses.

Vishal
sumber
Apakah ada masalah potensial yang disebabkan oleh ini?
Basilevs
2

Buka direktori root

cd ~/

Tulis kode berikut:

sudo chown -R username /Users/username

Di mana nama pengguna adalah nama pengguna sistem Anda.

Arti Prasad
sumber
Jawaban untuk "Haruskah saya mengubah kepemilikan folder .config yang ada di direktori home saya sendiri?" Relevan. askubuntu.com/questions/852265/…
CodingMatters
0

Saya telah menjalankan masalah serupa dan dapat memperbaikinya di sisi server. git berjalan di sana di bawah uwsgi jadi saya menambahkan di konfigurasi uwsgi baris berikut:

env = HOME=/srv/git

di mana / srv / git dimiliki oleh uid yang sama yang dijalankan uwsgi dan dibuat. chmod u+rwX /srv/git Jadi, Anda perlu mengarahkan variabel HOME di sisi server untuk proses yang menjalankan git ke direktori tempat proses ini akan memiliki izin membaca / menulis / melintasi.

phaoost.dll
sumber
0

Untuk Windows, ini mungkin merupakan kasus ketika beberapa proses seperti klien CMD atau SSH membuka beberapa folder yang Git coba hapus.

Oleg Neumyvakin
sumber