對每個專案中的所有子資料夾 .git/ 運行批次 chmod

對每個專案中的所有子資料夾 .git/ 運行批次 chmod

我知道如何對單個資料夾進行 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/.gitsite2.git

謝謝,

答案1

這可以透過多種方式解決,例如您可以在此處使用正規表示式:

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

where.*是任何內容,然後我們.git逐字匹配 dir 並$確保它位於末尾。

然後對chmod他們你可以使用例如xargs

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

相關內容