
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 d
wird 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 chmod
können Sie beispielsweise Folgendes verwenden xargs
:
find -type d -regex '.*/\.git$' | xargs chmod 700