
のような単一のフォルダに対して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.*
が anything の場合、.git
dir を文字通り一致させて、$
それが末尾にあることを確認します。
次に、例えばchmod
次のように使用しますxargs
:
find -type d -regex '.*/\.git$' | xargs chmod 700