私のサーバーにはディレクトリがあり/srv/svn
ます。
例えば、複数のグループ所有権を持っているために、このディレクトリを設定することが可能であるdevFirmA
、devFirmB
とdevFirmC
?
重要なのは、subversion
複数のリポジトリにまたがる複数のユーザーをバージョン管理して管理したいのですが、リポジトリのルートディレクトリ、アクセス許可をマージ する方法がわかりません/srv/svn
。たとえば、私には3つの会社、、、FirmA
がFirmB
ありFirmC
ます。今、内部の/srv/svn
私は3つのディレクトリを作成しました、FirmA
、FirmB
、FirmC
およびそれらの内側に、私はプロジェクトごとにリポジトリを作成しましたし、今私は内のすべてのelementesがあるため、許可制度を確立する方法がわからない/srv/svn
が所有しているroot:root
[OK]をされていない、または私は違う?
これは、正確に理解していれば非常に一般的な問題であり、常に遭遇しています。些細なグループ化の問題ごとにACLを使用すると、管理できないシステムが大量に発生します。この状況ではなく、他の方法でそれを行うことができない場合、彼らはベストプラクティスを使用しています。これは私が強くお勧めする方法です。
まず、umaskを002に設定する必要があります。これは、グループが自分自身と共有できるようにするためです。私は通常、のようなファイルを作成/etc/profile.d/firm.sh
してから、umaskを使用してテストコマンドを追加します。
[ $UID -gt 10000 ] && umask 002
次に、ディレクトリをそれぞれのグループに設定する必要があります。
chgrp -R FirmA /srv/svn/FirmA
chgrp -R FirmB /srv/svn/FirmB
chgrp -R FirmC /srv/svn/FirmC
最後に、SGIDビットを適切に設定する必要があります。これにより、グループは常に設定したものにとどまります。これにより、書き込まれたファイルがライターのGIDに設定されなくなります。
find /srv/svn/FirmA -type d -print0 | xargs -0 chmod 2775
find /srv/svn/FirmB -type d -print0 | xargs -0 chmod 2775
find /srv/svn/FirmC -type d -print0 | xargs -0 chmod 2775
find /srv/svn/FirmA -type f -print0 | xargs -0 chmod 664
find /srv/svn/FirmB -type f -print0 | xargs -0 chmod 664
find /srv/svn/FirmC -type f -print0 | xargs -0 chmod 664
最後に、他のユーザーがディレクトリにアクセスするのを防ぎたい場合。
chmod 2770 /srv/svn/FirmA
chmod 2770 /srv/svn/FirmB
chmod 2770 /srv/svn/FirmC
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加