no se puede acceder a '/root/.config/git/attributes': Permiso> denegado ”

10

En nuestro servidor Ubuntu podemos clonar como usuario de Nginx en el /usr/share/nginx/wwwque la www-data:wwwpropiedad de datos recibe una advertencia como

"Advertencia: no se puede acceder a '/root/.config/git/attributes': permiso denegado"

Estamos ejecutando el comando como sudo -u www-data git clone <repo>.

Con sudo estamos recibiendo esta advertencia, de lo contrario está funcionando bien.

Podemos clonar como usuario root y no hay problema.

.gitconfig se encuentra solo en la raíz y consulte el contenido:

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

¿Alguien puede ayudarnos?

Intentamos varias opciones, como crear /root/.config/directamente manualmente y cambiar el permiso, etc., pero nada funciona. ¿Alguien puede ayudarme en eso?

También por favor vea esto:

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

Entonces parece un problema con la configuración de git. ¿Alguien puede guiarnos?


Estoy usando esta configuración en un Ubuntu 14.04. Cuando hago la misma configuración en otro Ubuntu 12.04, funciona perfectamente bien.

También hice esto:

Creé un usuario geopc y lo agregué a la lista de sudoers y cuando iniciamos sesión como usuario geopc y hacemos este comando, sudo -u www-data git clone -v git@....../test.git funciona perfectamente.

Entonces, el problema es cuando iniciamos sesión directamente como usuario root en Ubuntu 14.04 y clonamos cuando sudo -u www-data git cloneaparece esta advertencia. Pero no está en Ubuntu 12.04.

Estamos usando git versión 1.9.1 en Ubuntu 14.04, también actualizamos Git a la versión 2.1.1 pero igual.

Geo
fuente
1
Es bastante típico que los permisos del sistema de archivos bloqueen el acceso de todos los demás usuarios, incluidos www-data, a los archivos que se encuentran debajo /root. Si no son los permisos del sistema de archivos, ciertamente cosas como AppArmor o SELinux deberían bloquear el acceso del servidor web a / root.
HBruijn
Parece que no ... Modifiqué la pregunta, por favor revisa.
Geo
Estoy usando esta respuesta y esta respuesta funciona para mí. Pruébelo usted mismo
Toir427

Respuestas:

10

@mu tiene razón. Este es un problema de la variable de entorno HOME del usuario que rootse pasa al script en lugar de www-datala variable de entorno HOME del usuario .

Sin embargo, solo necesita agregar el interruptor -H al comando sudo, por lo que es bastante fácil:

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

Creo que la HOMEvariable está configurada incorrectamente.

Del hilo del grupo de google ,

la variable de entorno HOME se configuró para /rootque se observara /root/.gitconfigo /root/.config/git/configya que el usuario no privilegiado no tenía acceso a /rootella arrojó un error.

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

mu 無
fuente
para mí estaba comenzando: HOME = / home / git git daemon ...
rofrol
-1

Solo necesita reiniciar su instancia de alijo utilizando otro usuario que no sea root. Por lo general, el usuario sería el mismo que utilizó en el momento de la instalación.

ej. atlstash

Hacer esto configurará su variable HOME como / home / atlstash y resolverá su problema

Abdominales
fuente