2010-09-06 13 views
5

He restaurado un git repo desde la copia de seguridad y no tiene los permisos de archivo correctos. ¿Es suficiente establecer owner + rw en todos los archivos y directorios en .git, o es más sutil?

¿Hay alguna utilidad para comprobar o restablecer los permisos del archivo .git?

Respuesta

14

Los directorios deben tener el permiso 755; los archivos deben tener 644 permisos.

Esa es una buena regla general a menos que espere que los miembros de su grupo realicen cambios en su repositorio.

Habiendo dicho eso, en uno de mis repositorios, los archivos bajo .git/objects/* tienen 444 (solo lectura) permiso para todos. Otros archivos son 644 como se sugiere.

Esta secuencia de comandos, ejecute en el directorio de nivel superior justo por encima del depósito de .git fijaría los permisos:

find .git -type d | xargs chmod 755 
find .git/objects -type f | xargs chmod 444 
find .git -type f | grep -v /objects/ | xargs chmod 644 

empecé con -print0 para los dos find primeros comandos y xargs -0 para permitir la remota posibilidad de espacios en nombres de archivos. Pero el grep -v en el tercer comando sería difícil de administrar con el formato -print0, por lo que omití la notación de espacio seguro de todos los comandos, sabiendo que git no crea archivos con espaciado en nombres bajo el directorio .git.

+0

Gracias por eso –

+0

Tuve un mensaje de denegación de permiso .git/FETCH_HEAD cuando ejecuté '' 'git pull''' sin importar los permisos que establecí en él. Esto resolvió el problema y me ayudó a establecer permisos de grupo. ¡Gracias! – bzuillsmith

+0

Sin embargo, lo que es mínimo. ¿No podemos ir 750 en los directorios, y 440/640 en los objs? Suponiendo que el env está configurado correctamente, con grupos. – blamb

Cuestiones relacionadas