对每个项目中的所有子文件夹 .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$'

任何东西在哪里.*,然后我们.git逐字匹配 dir 并$确保它位于末尾。

然后chmod你可以使用例如xargs

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

相关内容