FreeBSD 專案自己使用一個有點不同的設定,那就是同時也使用 FreeBSD
CVSROOT
中的 freebsd
子目錄。因
為大量的提交者必須在相同的群組中,因此專案寫了一個簡單的 wrapper 來確認提
交者可以正確的提交,並設定儲存庫的群組名稱。
如果你的儲存庫也需要這樣的功能,那麼下面就會介紹如何建立,不過首先要 先來看一段複雜的概述。
access
- 此檔案用來控制儲存庫的存取。你
應該編輯並加入所有在專案中的成員。
freebsd/commitmail.pl
- 此檔案已經沒有在
使用了,留著只是為了某些有意義的原因。你不該更動此檔案。
freebsd/cvswrap.c
- 此 CVS wrapper 原始
碼是用來建立檢查所有存取的工作。更多的訊息在稍後會提出。你應該編
輯 ACCESS
和 REALCVS
的路徑
以符合你的設定。
freebsd/mailsend.c
- 此檔案是 FreeBSD 設
定 mailing lists 需要的,你不該更動此檔案。
只有加入你的使用者名稱到 access
中。
編輯 cvswrap.c
的路徑以符合你的設定,定義
在大寫的 ACCESS
中。同時如果預設值不符合你的情況
的話也應該修改本地實際的 cvs
程式所在位置。原始
的 cvswrap.c
希望替代伺服端的 CVS 程式,例如可
能會是 /usr/bin/ncvs
。
我的 cvswrap.c
是這樣:
#define ACCESS "/local/cvsroot/CVSROOT/access" #define REALCVS "/usr/bin/ncvs"
接下來是建立 wrapper 來確認你在提交時是在正確的群組中。
在你的 CVSROOT
中的
cvswrap.c
要能夠使用。
在你完成編輯並加入正確的路徑後我們要來編譯原始碼:
%
cc -o cvs cvswrap.c
然後進行需要設定(此步驟需要 root 權限):
#
mv /usr/bin/cvs /usr/bin/ncvs
#
mv cvs /usr/bin/cvs
#
chown root:ncvs /usr/bin/cvs /usr/bin/ncvs
#
chmod o-rx /usr/bin/ncvs
#
chmod u-w,g+s /usr/bin/cvs
這會將 wrapper 安裝成預設的 cvs
程式,請確定
任何要使用儲存庫的人應該有正確的存取權限。
現在你可以刪除所有在儲存庫群組中的使用者,所有的存取控制會經由 wrapper 完成,同時 wrapper 會設定存取的正確群組。
All FreeBSD documents are available for download at http://ftp.FreeBSD.org/pub/FreeBSD/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.