Выполнить массовый chmod для всех подпапок .git/ в каждом проекте

Выполнить массовый chmod для всех подпапок .git/ в каждом проекте

Я знаю, как сделать CHMOD для одной папки, например chmod 700 .git/, , однако на моем сервере есть несколько проектов, каждый из которых содержит папку .git/. Из отчета repo-lookout.org, они предлагают отключить доступ к .git/репозиторию, я хочу применить массовое chmod 700 ко всем .git/папкам (но не включая подпапки внутри .git)

Выполнение find */.git/ -type dвернет список, подобный следующему:

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

Как применить CHMOD 700 только к этим шаблонам site1/.git?site2.git

Спасибо,

решение1

Эту проблему можно решить многими способами, например, можно использовать здесь регулярное выражение:

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

где .*что-то есть, то мы сопоставляем .gitdir буквально и $убеждаемся, что он находится в конце.

Тогда к chmodним можно использовать, например xargs:

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

Связанный контент