Führen Sie Bulk-Chmod für alle Unterordner .git/ in jedem Projekt aus.

Führen Sie Bulk-Chmod für alle Unterordner .git/ in jedem Projekt aus.

Ich weiß, wie man einen einzelnen Ordner wie diesen mit CHMOD ausführt chmod 700 .git/, aber auf meinem Server gibt es mehrere Projekte, von denen jedes einen .git/-Ordner enthält. In einem Bericht von repo-lookout.org wird vorgeschlagen, den Zugriff auf .git/das Repository zu deaktivieren. Ich möchte Bulk-Chmod 700 auf alle Ordner anwenden .git/(aber nicht auf die darin enthaltenen Unterordner .git).

Beim Ausführen find */.git/ -type dwird eine Liste wie die folgende zurückgegeben:

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

Wie wende ich CHMOD 700 nur auf diese Muster an site1/.git?site2.git

Danke,

Antwort1

Dies kann auf viele Arten gelöst werden, Sie können hier beispielsweise einen regulären Ausdruck verwenden:

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

wo .*irgendetwas ist, dann gleichen wir .git„dir“ wörtlich ab und $stellen sicher, dass es am Ende steht.

Dann chmodkönnen Sie beispielsweise Folgendes verwenden xargs:

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

verwandte Informationen