私は2台のマシンを使用しています。
Linuxサーバーに、Apache、Samba、SVNをインストールしました。
WindowsからWebファイルにアクセスできるように、htdocs /ディレクトリにマップするSamba共有を作成しました。
以下は私のワークフローを示しています。
私が抱えている問題は、現在、Sambaを介してWindowsボックス上のファイルを編集できるようにするには、ファイルの所有者をnobody(Apacheユーザー)に変更し、SHARE権限を使用するようにSamba共有を設定する必要があることです。
SVNを使用してコミットや更新などを行おうとすると、Linuxユーザーが「誰も」ではなく、そうするための権限がないため、できません。そのため、rootになってSVN [コマンド]を実行し、すべてのファイルを「nobody」に戻して、Windowsで編集できないようにする必要があります。
私ができるようにしたいのは、ローカルのLinuxユーザーがWebファイルを所有することです。これにより、SVNコマンドが機能し、Windows(samba経由)でもこの同じユーザーを使用できるようになります。
これを機能させるにはどうすればよいですか?WindowsユーザーとLinuxユーザーを一致させる方法はありますか?
ファイルとディレクトリをグループが所有するようにします。グループは Apacheは として実行されます。ディレクトリを作成します [〜#〜] sgid [〜#〜] 。
chgrp -R group1 /path/to/htdocs
find /path/to/htdocs -type d -exec chmod 2775 {} \;
このグループをSAMBA共有の下で指定します。これは、force group=group1
で実行できます。
このグループのメンバーを使用して、SAMBAに対して認証するユーザーを作成します。このユーザーは、SAMBAの共有内のvalid users
およびwrite list
内で指定してください。これにより、SVNにコミットすることもできます。
また、smb.conf内でcreate mask=0664
とdirectory mask=2775
を指定します。これにより、作成時に適切なアクセス許可が設定されます。ファイルがApacheと同じユーザーによって所有されている場合は、両方の設定で最後のビットを0に設定できます。
すべてが一貫して適用される場合、機能に悪影響を与えることなく、必要なすべてのアクションを実行できるはずです。
ワーナー、この答えは私にとって命の恩人でした。私が知らなかったことを追加する1つのことは、誰かがコマンドラインからSVN更新を実行したいかどうかを考慮する必要があるということでした。 http://svnbook.red-bean.com/en/1.1/ch06s05.html を参照してください。これについて説明しています。