Gitosis Error: Recibiendo 'Leer Acceso denegado' en repositorio previamente accesible
-
26-09-2019 - |
Pregunta
Los jugadores
He estado usando Git y gitosis desde hace unos meses, y estoy realmente amante de ambos. Por desgracia, se han topado con problemas para acceder a uno de mis proyectos con gitosis.
La puesta a punto
He definido mis Git y Gitosis se instala en una cuenta de servidor alojado con Debian. También he creado cuatro equipos (dos de Ubuntu, dos ventanas) con claves RSA separados y con éxito cada puse arriba para acceder al gitosis instalar. Todo funcionó sin problemas durante algún tiempo. Recientemente, sin embargo, no he sido capaz de acceder a mi proyecto 'DesktopConfiguration' de ninguna manera (empujar, tirar, clon). Que había creado originalmente el proyecto DesktopConfiguration en una de mis máquinas Linux, lo empujó al servidor gitosis, y clonado en una de mis máquinas Windows. No he tenido problemas para acceder a ella hasta hace poco (las últimas dos semanas o así). Lo que sigue es mi archivo gitosis.conf y el mensaje de error que estoy recibiendo (los mensajes de error son los mismos si trato de empujar, tirar, o un clon usando mis cajas de Windows o Linux):
El gancho
gitosis.conf
[gitosis]
loglevel = DEBUG
[group gitosis-admin]
writable = gitosis-admin
members = windows-desktop linux-desktop linux-laptop work-laptop
[group main-projects]
writable = WallpaperChanger
writable = RegexTester
writable = MovieAggregator
writable = FileRenamer
writable = GlutenFreeShoppingAssistant
writable = Libraries
writable = DesktopConfiguration
writable = RssFeedReader
members = windows-desktop linux-desktop linux-laptop work-laptop
Mensaje de error
C:\Documents and Settings\myname\Desktop\Desktop Config Test>git clone git@myserver:DesktopConfiguration.git
Initialized empty Git repository in C:/Documents and Settings/myname/Desktop/Desktop Config Test/DesktopConfiguration/.git/
DEBUG:gitosis.serve.main:Got command "git-upload-pack 'DesktopConfiguration.git'"
DEBUG:gitosis.access.haveAccess:Access check for 'work-laptop' as 'writable' on 'DesktopConfiguration.git'...
DEBUG:gitosis.access.haveAccess:Stripping .git suffix from 'DesktopConfiguration.git', new value 'DesktopConfiguration'
DEBUG:gitosis.group.getMembership:found 'work-laptop' in 'main-projects'
DEBUG:gitosis.group.getMembership:found 'work-laptop' in 'gitosis-admin'
DEBUG:gitosis.access.haveAccess:Access check for 'work-laptop' as 'writeable' on 'DesktopConfiguration.git'...
DEBUG:gitosis.access.haveAccess:Stripping .git suffix from 'DesktopConfiguration.git', new value 'DesktopConfiguration'
DEBUG:gitosis.group.getMembership:found 'work-laptop' in 'main-projects'
DEBUG:gitosis.group.getMembership:found 'work-laptop' in 'gitosis-admin'
DEBUG:gitosis.access.haveAccess:Access check for 'work-laptop' as 'readonly' on 'DesktopConfiguration.git'...
DEBUG:gitosis.access.haveAccess:Stripping .git suffix from 'DesktopConfiguration.git', new value 'DesktopConfiguration'
DEBUG:gitosis.group.getMembership:found 'work-laptop' in 'main-projects'
DEBUG:gitosis.group.getMembership:found 'work-laptop' in 'gitosis-admin'
ERROR:gitosis.serve.main:Repository read access denied
fatal: The remote end hung up unexpectedly
El cuento
A partir de mi experiencia con gitosis y la mayoría de las preguntas-y-respuestas que he encontrado en línea, los mensajes de error se ven exactamente como los que recibieron al intentar empujar a gitosis sin haber añadido primero el proyecto a un grupo que su máquina que tiene acceso. Desafortunadamente, esto no parece ser cierto en mi caso. (A menos que me falta algo!)
El conductor
No estoy muy seguro de si esto proporcionaría algo más de información, pero aquí están los mensajes de depuración de mi post-actualización de gancho:
INFO:gitosis.run_hook:Running hook post-update
DEBUG:gitosis.gitdaemon:Global default is 'deny'
DEBUG:gitosis.gitdaemon:Walking '.', seeing ['RegexTester.git', 'gitosis-admin.git', 'Libraries.git', 'GlutenFreeShoppingAssistant.git', 'MovieAggregator.git', 'DesktopConfiguration.git', 'WallpaperChanger.git', 'RssFeedReader.git', 'FileRenamer.git']
DEBUG:gitosis.gitdaemon:Deny 'RegexTester'
DEBUG:gitosis.gitdaemon:Deny 'gitosis-admin'
DEBUG:gitosis.gitdaemon:Deny 'Libraries'
DEBUG:gitosis.gitdaemon:Deny 'GlutenFreeShoppingAssistant'
DEBUG:gitosis.gitdaemon:Deny 'MovieAggregator'
DEBUG:gitosis.gitdaemon:Deny 'DesktopConfiguration'
DEBUG:gitosis.gitdaemon:Deny 'WallpaperChanger'
DEBUG:gitosis.gitdaemon:Deny 'RssFeedReader'
DEBUG:gitosis.gitdaemon:Deny 'FileRenamer'
INFO:gitosis.run_hook:Done.
El Shut Out
Todavía soy capaz de acceso (empujar, tirar, clon) todos los otros proyectos en el servidor (en ambos grupos Gitosis-admin y principales proyectos-) en todas mis máquinas. Estas son algunas de las cosas que he intentado hasta ahora:
- He comprobado la ortografía de todas las carpetas, archivos y ajustes de configuración en múltiples ocasiones.
- Me han quitado y añadido de nuevo el proyecto DesktopConfiguration del archivo gitosis.conf después de asegurarse de que el gancho posterior a la actualización tenía los permisos de ejecución adecuadas.
- I añadió otro proyecto para gitosis después DesktopConfiguration, y funciona correctamente.
- Me han quitado y añadido de nuevo mis referencias remotas al proyecto en Git en mis máquinas locales.
- Me han quitado el proyecto DesktopConfiguration.git de mi carpeta de 'depósitos' en el servidor y el intento de empujar a ella de nuevo.
- he incluso recreado todos mis claves RSA (aunque autenticación no parece tener nada que ver con los temas que estoy viendo).
Todos estos intentos han fracasado para permitir que tenga acceso el proyecto. Por lo que yo sé, nada ha cambiado en el servidor o mis máquinas de escritorio todo el tiempo que perdí el acceso a este proyecto.
El golpe
Doy la bienvenida a cualquier idea que pueda tener con los brazos abiertos!
Solución
Para 'el acceso de lectura denegado' estaría comprobando que el usuario gitosis en el servidor todavía tenía pleno acceso a los repositorios. Usted dice que está seguro de que nada ha cambiado en el servidor, pero que ha descartado un montón de otras cosas fuera. No puede hacer daño a doble control.
Otros consejos
Parece signine tiene que corregir en la respuesta comentario. Estaba teniendo el mismo problema y (después de algún llanto y crujir de dientes) finalmente solucionó el problema mediante la colocación de todos los repositorios en a una sola línea "escribible".
Al inspeccionar la fuente, se ve que gitosis utiliza ConfigParser que requiere opciones aparecen en una línea o se puede romper la línea si se deja espacio al principio de la siguiente línea. Así:
writable = WallpaperChanger RegexTester MovieAggregator FileRenamer
o
writable = WallpaperChanger RegexTester
MovieAggregator FileRenamer
Yo tenía un problema similar y el problema era bastante simple:
por error creado 2 archivos diferentes claves con la misma tecla público , el resultado es que el servidor me reconoce como este nuevo usuario (sin derecho a una cierta cesión temporal ) en lugar de mí mismo (con acceso de lectura / escritura a este repo).
Esto me tenía rascándome la cabeza, así que pensé que me gustaría compartir.
I han visto que el tener una línea como
writable =
puede romper el acceso a todos los repositorios. Esto sucedió porque nuestra gitosis.conf se genera automáticamente y se puso a la situación en la que un grupo no tenía repositorios.