Ejecute chmod masivo para todas las subcarpetas .git/ en cada proyecto

Ejecute chmod masivo para todas las subcarpetas .git/ en cada proyecto

Sé cómo hacer CHMOD para una sola carpeta como chmod 700 .git/, sin embargo, en mi servidor tiene varios proyectos, cada uno de ellos contiene la carpeta .git/. De un informe de repo-lookout.org, sugieren deshabilitar el acceso al .git/repositorio, deseo aplicar chmod 700 en masa a todas .git/las carpetas (pero sin incluir las subcarpetas dentro .git)

La ejecución find */.git/ -type ddevolverá una lista como:

site1/.git/objects/b3
site1/.git/info
site1/.git/refs
site1/.git/refs/heads
site1/.git/refs/remotes
site1/.git/refs/remotes/origin
site1/.git/refs/tags
site1/.git/hooks
site2/.git/
site2/.git/logs
site2/.git/logs/refs
site2/.git/logs/refs/heads
site2/.git/logs/refs/remotes
site2/.git/logs/refs/remotes/origin
site2/.git/branches
site2/.git/objects
site2/.git/objects/93

¿ Cómo aplicar CHMOD 700 solo a esos patrones site1/.git?site2.git

Gracias,

Respuesta1

Esto se puede resolver de muchas maneras, por ejemplo, puedes usar una expresión regular aquí:

find -type d -regex '.*/\.git$'

¿Dónde .*está algo? Luego hacemos coincidir .gitdir literalmente y $nos aseguramos de que esté al final.

Luego para chmodellos puedes usar, por ejemplo xargs:

find -type d -regex '.*/\.git$' | xargs chmod 700

información relacionada