tidak dapat mengakses '/root/.config/git/attributes': Izin> ditolak ”

10

Dalam Ubuntu Server kami mampu clone sebagai Nginx pengguna dalam /usr/share/nginx/wwwyang memiliki www-data:wwwkepemilikan -data mendapatkan peringatan seperti

”Peringatan: tidak dapat mengakses '/root/.config/git/attributes': Izin ditolak”

Kami menjalankan perintah sebagai sudo -u www-data git clone <repo>.

Dengan sudo kita mendapatkan peringatan ini jika tidak berfungsi dengan baik.

Kami dapat mengkloning sebagai pengguna root dan tidak ada masalah.

.gitconfig hanya terletak di root dan lihat isinya:

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

Adakah yang bisa membantu kami dalam hal ini?

Kami mencoba berbagai opsi seperti yang dibuat secara manual secara /root/.config/langsung dan mengubah izin dll. Tetapi tidak ada yang berfungsi. Adakah yang bisa membantu saya untuk itu?

Silakan lihat ini juga:

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

Jadi sepertinya ada masalah dengan setup git. Adakah yang bisa membimbing kami?


Saya menggunakan pengaturan ini pada Ubuntu 14.04. Ketika saya melakukan pengaturan yang sama di Ubuntu 12,04 lainnya, itu berfungsi dengan baik.

Saya juga melakukan ini:

Membuat geopc pengguna dan ditambahkan ke daftar sudoers dan ketika kami login sebagai pengguna geopc dan melakukan perintah ini sudo -u www-data git clone -v git@....../test.git berfungsi dengan baik.

Jadi masalahnya adalah ketika kita langsung login sebagai pengguna root di Ubuntu 14.04 dan melakukan kloning saat sudo -u www-data git cloneperingatan ini datang. Tapi ini bukan di Ubuntu 12.04.

Kami menggunakan git versi 1.9.1 di Ubuntu 14.04 kami juga meningkatkan git ke versi 2.1.1 tetapi sama.

Geo
sumber
1
Sudah biasa bahwa izin sistem file memblokir semua pengguna lain, termasuk www-data, dari mengakses file di bawah /root. Jika tidak, izin sistem file dari yang pasti hal-hal seperti AppArmor atau SELinux harus memblokir akses server web ke / root.
HBruijn
Sepertinya tidak .. Saya memodifikasi pertanyaan, silakan cek.
Geo
Saya menggunakan jawaban ini dan jawaban ini berfungsi untuk saya. Coba sendiri
Toir427

Jawaban:

10

@mu benar. Ini adalah masalah variabel lingkungan HOME dari pengguna rootyang diteruskan ke skrip alih-alih www-datavariabel lingkungan HOME.

Anda hanya perlu menambahkan tombol -H ke perintah sudo, jadi ini cukup mudah:

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

Saya pikir HOMEvariabel tidak diatur dengan benar.

Dari utas grup google ,

variabel lingkungan HOME diatur ke /rootsehingga ia melihat /root/.gitconfigatau /root/.config/git/configkarena pengguna yang tidak memiliki hak tidak memiliki akses ke /rootsana melemparkan kesalahan.

Jadi solusinya bagi saya untuk mengatur HOME env ke direktori HOME pengguna

mu 無
sumber
bagi saya itu dimulai: HOME = / home / git git daemon ...
rofrol
-1

Anda hanya perlu me-restart instance simpanan Anda menggunakan pengguna lain lalu root. Biasanya, pengguna akan sama seperti yang Anda gunakan pada saat instalasi.

misalnya atlstash

Melakukan ini akan mengatur variabel HOME Anda sebagai / home / atlstash dan menyelesaikan masalah Anda

AB
sumber