
我知道如何對單個資料夾進行 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$'
where.*
是任何內容,然後我們.git
逐字匹配 dir 並$
確保它位於末尾。
然後對chmod
他們你可以使用例如xargs
:
find -type d -regex '.*/\.git$' | xargs chmod 700