No se puede acceder a 'git / atributos'

89

¿Qué significa advertencia remote: warning: unable to access '/root/.config/git/attributes': Permission deniedy qué implicaciones trae?

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

¿Debo informar un posible problema de infraestructura al proveedor de alojamiento?

Basilevs
fuente
¿Fuiste capaz de resolver esto?
mu 無
@mu 無 No, soy reacio a informar un error en el alojamiento sobre esto ya que todavía no tengo una respuesta definitiva.
Basilevs

Respuestas:

188

Yo mismo me encontré con esta situación. Después de verificar que estaba buscando ~/.config/, noté que el propietario de esa carpeta era root. Cambié esto my_user_namey funcionó.

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

También ayuda saber la causa: este directorio se crea la primera vez que ejecuta un programa que lo usa. Si el comando se ejecutó como root, causará este problema de permisos.

Por ejemplo, si el ~/.configdirectorio aún no existe y lo ejecuta sudo htop, los directorios ~/.configy ~/.config/htopserán creados y propiedad de root. Posteriormente, un comando git normal no podrá acceder ~/.configy dará la advertencia anterior. (Crédito: usuario mehtunguh)

La -Ropción con chownes modificar los permisos de forma recursiva. Esto le ayudará si tiene subcarpetas debajo~/.config

NegroVegetal
fuente
6
eso también me ayudó mientras usaba la línea de comandos de Linux dentro de Windows 10, ¡gracias!
lukaszkups
1
esto fue un gran ahorro de tiempo
Prithvi Raj Vuppalapati
7
También es útil conocer la causa: este directorio se crea la primera vez que ejecuta un programa que lo usa. Si el comando se ejecutó como root, causará este problema de permisos. Por ejemplo, si el ~/.configdirectorio aún no existe y lo ejecuta sudo htop, los directorios ~/.configy ~/.config/htopserán creados y propiedad de root. Entonces, un gitcomando normal no puede acceder ~/.configy dará esta advertencia.
mehtunguh
1
@mehtunguh ¡Considere agregar esto a mi respuesta! Sin duda, esta es una información valiosa.
BlackVegetable
@mehtunguh Agregué su información sobre esta respuesta. Gracias de nuevo.
BlackVegetable
9

Creo que la HOMEvariable de entorno no está configurada correctamente.

Desde el hilo del grupo de Google ,

la variable de entorno HOME se configuró para /rootque la mirara /root/.gitconfigo /root/.config/git/configya que el usuario sin privilegios no tenía acceso /rootarrojó un error.

Entonces, la solución fue para mí establecer el entorno HOME en el directorio HOME del usuario

mu 無
fuente
2

Git está intentando leer la configuración desde la raíz en lugar de la configuración del usuario. Verifique que sus variables de entorno tengan el conjunto de configuración de git correcto o que se pueda acceder al archivo .gitconfig en su carpeta de inicio.

Vishal
fuente
¿Existe algún problema potencial causado por esto?
Basilevs
2

Ir al directorio raíz

cd ~/

Escribe el siguiente código:

sudo chown -R username /Users/username

Donde nombre de usuario es el nombre de usuario de su sistema.

Arti Prasad
fuente
Esta respuesta a "¿Debo cambiar la propiedad de la carpeta .config que está en mi propio directorio de inicio?" Es relevante. askubuntu.com/questions/852265/…
CodingMatters
0

Ejecuté un problema similar y pude solucionarlo en el lado del servidor. git se ejecuta allí bajo uwsgi, así que agregué en la configuración de uwsgi la siguiente línea:

env = HOME=/srv/git

donde / srv / git es propiedad del mismo uid bajo el que se ejecuta uwsgi. chmod u+rwX /srv/git Por lo tanto, debe apuntar la variable HOME en el lado del servidor para el proceso que ejecuta git en el directorio donde este proceso tendrá permisos de lectura / escritura / recorrido.

faoost
fuente
0

Para Windows, puede darse el caso de que algún proceso como el cliente CMD o SSH abriera alguna carpeta que Git intenta eliminar.

Oleg Neumyvakin
fuente