
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 d
devolverá 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 .git
dir literalmente y $
nos aseguramos de que esté al final.
Luego para chmod
ellos puedes usar, por ejemplo xargs
:
find -type d -regex '.*/\.git$' | xargs chmod 700