gitを使用してサーバー上のWebサイトを管理しています。サーバーにプッシュするとGitがファイルのアクセス権を変更しています
私は、Apacheの前にレポを指すようにpost-receive
を使用してサーバ上の裸のリポジトリを有する
[email protected]:myapp$ ls -l | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf("%0o ",k);print}'
total 16
755 [email protected] 18 thomas staff 612 Jun 13 15:35 application
755 [email protected] 11 thomas staff 374 Jun 12 16:25 assets
644 [email protected] 1 thomas staff 6399 Jun 22 11:45 index.php
755 [email protected] 10 thomas staff 340 May 14 15:22 system
下に示すローカルリポジトリを有します。 Apacheのpublic
フォルダの内容は、以下のとおりです。
[email protected]:/srv/public/myapp# ls -l | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf("%0o ",k);print}'
total 20
700 drwx------ 15 root root 4096 Jun 27 11:31 application
700 drwx------ 10 root root 4096 Jun 27 11:31 assets
600 -rw------- 1 root root 6399 Jun 27 11:31 index.php
700 drwx------ 8 root root 4096 Jun 27 11:31 system
これは、Webサーバー上のコードに害を及ぼす原因となります。
どうすればこの問題を解決できますか?私はそれが何か違いがあれば、gitoliteを使っています。
のgitサーバーの設定ファイル
[core]
repositoryformatversion = 0
filemode = true
bare = true
あなたは/ srvの/ myappに/公共のレポを作成するために使用するユーザーのumaskを確認しましたか? git configには何が入っていますか?ファイルモードに関連するものはすべて変更されましたか? – bcelary
私はファイルモードを使いこなしていましたが、それは一点で作業していましたが、今は「真」です。 "unmask"が何であるかは不明です。私はgitoliteでセットアップしたgitユーザーを持っています。私はポストを更新しました。 – ThomasReggi
[この質問](http://stackoverflow.com/questions/1071241/how-does-git-handle-folder-permission)を参照してください。 – vergenzt