Description: Ubuntu 22.04.1 LTS
Release: 22.04
Estoy intentando cron algunos comandos de git bajo el usuario www-data
y no funciona.
Para solucionar el problema, intenté ejecutarlo sudo -u www-data git show
pero vuelvefatal: detected dubious ownership in repository
Si lo ejecuto sudo -u www-data git diff --shortstat
regresawarning: Not a git repository. Use --no-index to compare two paths outside a working tree
También intenté agregarsudoers
www-data ALL=(ALL) NOPASSWD: /usr/bin/git show
# and also
www-data ALL=(ALL) NOPASSWD: /usr/bin/git
Sigo recibiendo los mismos errores. ¿Alguna idea de por qué? Gracias.
Respuesta1
Git requiere que el usuario actual sea el propietario de los archivos, no funciona si el usuario actual es un "miembro" del grupo
Para .git
archivos pertenecientes auser1:group1
- Git no arrojará error si es así
user1
- Git arrojará un error si es así.
user2:group1
Solución 1 (mejor)
Dado que esto es automatizado/cron, es más fácil simplemente anteponer el usuario para ejecutarlo. Especifique el usuario antes del comando git
sudo -u <user> git ...
Solución 2
Un poco más engorroso ya que necesita agregar cada repositorio al user
's .gitconfig
y hay una respuesta muy detallada aquíhttps://stackoverflow.com/a/73100228/3872647
[safe]
directory = <real path of git repository, symlink won't work here>
Espero que esto sea lo suficientemente claro; de lo contrario, pregunte o comente y modificaré esta respuesta.
Respuesta2
+1 para "git requiere que el usuario actual sea el propietario de los archivos"
- mi versión actual de git es 2.43.1 y este mensaje de error es nuevo a partir de ?.?.?
- configurar directorios seguros no hizo nada
- comienza un script que estoy usando
sudo -u www-data bash -c '...'
y descubrí que, de hecho, al menos .git y los niños deben ser propiedad dewww-data
Respuesta3
Entonces, descubrí que si editas el archivo .gitconfig en tu carpeta de usuario (debería ser algo como /home/your_user/.gitconfig
) e insertas: el error ya no aparecería.[safe]
directory = /path/to/directoryfatal: detected dubious ownership in repository