質問: いつもお世話になっています。 サーバーの勉強を始めたばかりの初心者です。 先日、ユーザーのグループとパーミッション問題で躓き、こちらで助けて頂いたのですが、別途同様の疑問が発生しまして、再度質問させていただく事にしました。 初歩的な質問かもしれません。申し訳ありません。 【前提】 ・Git環境構築のため、『git』ユーザを作成した ・『/var/lib/git/test.git』にリモートリポジトリを作成している ・Git環境を用意するまでは『admin』アカウントでFTPを行っていた 【やりたい事】 ・上記リモートリポジトリを公開領域『/var/www/html/test/』にデプロイしたい ・同時に公開領域にFTPも出来るようにしたい 【過程】 リモートリポジトリへのローカルからのPush、またリモートリポジトリからの公開領域へのCloneは問題なく行えています。 『/var/lib/git/test.git/hooks/post-receive』への記述は ``` #!/bin/sh cd /var/www/html/test git --git-dir=.git pull echo test >/tmp/test.log ``` となっており、最後のechoは動作確認用に入れていますが、出力されているのでpost-receiveは実行されているのではないか...と思っています。 【疑問】 FTPとGitデプロイ両方、と言うのは難しいのでしょうか? 色々とユーザグループ設定やchown、chmod等試してみたのですが、思うようにいかずに困っています。 gitユーザをadminユーザに加えて(usermod -aG admin git)、公開領域のフォルダを775、ファイルを664にし、所有者設定はgit:adminにする事でFTPは出来たのですが、デプロイがされていないようです。 正常にデプロイされるためには、どのような設定にすべきなんでしょうか? 権限周りの事をきちんと理解できておらず、本当に申し訳ありません。
回答: たとえば、この本家の質問を見ていると、 git は、 ftp で git レポジトリを公開する場合には、そのレポジトリは基本的に readonly で動作させる想定の様子です。(clone はできる、 push はできない) そもそも OP は FTP でレポジトリへの更新操作を行うことを想定して、この質問を作成した様子でしたが、それはちょっとあまりうまく動作しなさそうだ、と最後には自己解決した模様です。