我知道如何对单个文件夹进行 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$'
任何东西在哪里.*
,然后我们.git
逐字匹配 dir 并$
确保它位于末尾。
然后chmod
你可以使用例如xargs
:
find -type d -regex '.*/\.git$' | xargs chmod 700