在bsd 下使用 cvsd 創建安全的 cvs 服務器
本文除基本軟件安裝外,其它部分也適用于linux或其它unix 系統。
1. 下載及安裝
cvsd
http://tiefighter.et.tudelft.nl/~arthur/cvsd/
cvs
http://www.cvshome.org
或者
直接使用ports 安裝cvsd,位于 /usr/ports/devel/cvsd
直接使用ports 安裝cvs,位于 /usr/ports/devel/cvs+ipv6
創建 cvsd 用戶。
2. 修改配置
指定虛擬根目錄的實際路徑,在RootJail命令后設置
/usr/local/etc/cvsd/cvsd.conf
# RootJail <path>
# This is the location of the chroot jail
# cvs should be run in.
# Specify 'none' (without quotes) to not use
# a chroot jail.
# This directory should be initialized with
# the cvsd-buildroot script.
RootJail /home/soft/cvsd
創建 /home/soft/cvsd,
使用命令行 /usr/local/sbin/cvsd-buildroot /home/soft/cvsd/ 初始化虛根目錄
創建cvsroot 目錄 : mkdir /home/soft/cvsd/cvsroot
用命令 cvs -d /home/soft/cvsd/cvsroot init 初始化cvs目錄
用命令建立cvs用戶:
cvsd-passwd /home/soft/cvsd/cvsroot/ +cvsuser:cvsd
上面的命令建立cvsuer 這個帳號,它和系統的 cvsd用戶掛接。注意,cvsd是操作系統的用戶名,是第一步操作中建立的。
你還可以使用該命令建立其它帳號.
將cvsroot 加入/usr/local/etc/cvsd/cvsd.conf的最后一行,如下面
Repos /cvsroot
此句指明要使用虛擬根下的 "cvsroot" 這個倉庫。
3 設置啟動腳本
修改/usr/local/etc/rc.d/cvsd.sh.sample 為 /usr/local/etc/rc.d/cvsd.sh
設置執行屬性: chmod +x /usr/local/etc/rc.d/cvsd.sh
4.注意事項
cvsd只是cvs的一個外殼程序,將cvs運行在虛擬根環境下,提高系統的安全性。你在安裝cvsd后還必須安裝cvs程序。
不要跨分區建立倉庫,否則會提示找不到用戶.
我的/home 和/ 是兩個不同的分區.我開始在home下創建倉庫,在var下創建虛根目錄,作了符號鏈接后不能讀取文件.
聲明:
轉載此文請保留此聲明信息。
驅動開發網 華語地區核心層開發專業網站 http://www.driverdevelop.com
軟件創造價值,驅動提供力量!
醉春風 回復于:2004-06-27 08:22:56 |
[quote:b5235e4f3a="znsoft"]不要跨分區建立倉庫,否則會提示找不到用戶. 我的/home 和/ 是兩個不同的分區.我開始在home下創建倉庫,在var下創建虛根目錄,作了符號鏈接后不能讀取文件. [/quote:b5235e4f3a] 這個用mount_nullfs /home/xxx/xxx /var/lib/cvsd/xxx 就行了... ... |
znsoft 回復于:2004-06-28 17:10:03 |
謝謝。 |
醉春風 回復于:2004-06-28 18:09:01 |
不謝,寫得挺好。。。 |
zliming 回復于:2004-06-28 22:45:30 |
CVSNT可以用NTFS控制好一些 *NIX下面有人用SCM LDAP+CVS不過都不是很理想,請教有沒有人重寫過的CVS,可以用小型數據庫保存用戶和權限的版本? |
醉春風 回復于:2004-06-28 23:58:01 |
[quote:3903214d5e="zliming"]CVSNT可以用NTFS控制好一些 *NIX下面有人用SCM LDAP+CVS不過都不是很理想,請教有沒有人重寫過的CVS,可以用小型數據庫保存用戶和權限的版本?[/quote:3903214d5e] 好像不用這么復雜的,去看看[url=http://www.freebsd.org/doc/en_US.ISO8859-1/articles/cvs-freebsd/]Setting up a CVS repository - the FreeBSD way[/url]就能有簡單的用戶權限 還有commit mail和自己定義的tag... ... |
quakelee 回復于:2004-06-29 13:15:14 |
我還以為是cvsd over ssh呢………… |
zliming 回復于:2004-06-29 13:38:28 |
[quote:25f60fa1d2="醉春風"]苡屑虻サ撓沒ㄏ?還有commit mail和自己定義的tag... ...[/quote:25f60fa1d2]
我的權限要分的很細的,一個目錄下面和這個目錄下的目錄權限組要不同.現在是passwd里面映射到系統用戶控制權限的.但一個用戶最多只有在17個組,對我們的要求還不能很好實現,要分的太細了. :em06: |
zliming 回復于:2004-06-29 13:41:15 |
[quote:a61e609806="quakelee"]我還以為是cvsd over ssh呢…………[/quote:a61e609806]
用SSH(ext)因為我們在內網的不是很重視安全,并面SSH對服務器性能要求要高一些,系統用戶多了不太好管理. |
yanyp 回復于:2004-06-29 14:17:35 |
這兩天剛配好cvs服務器,
不過是redhat9.0+cvs,client端是windows+wincvs,cvs的功能真是強大哦 |
zliming 回復于:2004-06-29 14:20:33 |
[quote:42cc185808="yanyp"]這兩天剛配好cvs服務器,
不過是redhat9.0+cvs,client端是windows+wincvs,cvs的功能真是強大哦[/quote:42cc185808] wincvs感覺有一些BUG,建議用 TortoiseCVS. :em09: 很好用的 |
醉春風 回復于:2004-06-29 15:08:00 |
[quote:3d4dbca155="zliming"] 我的權限要分的很細的,一個目錄下面和這個目錄下的目錄權限組要不同.現在是passwd里面映射到系統用戶控制權限的.但一個用戶最多只有在17個組,對我們的要求還不能很好實現,要分的太細了. :em06:[/quote:3d4dbca155] 偶是在avail里面劃分的,看看上面提到的那個cvs_acls.pl [code:1:3d4dbca155] # Example: (Text from the ';;' rightward may not appear in the file.) # # unavail ;; Make whole repository unavailable. # avail|dgg ;; Except for user "dgg". # avail|fred, john|bin/ls ;; Except when "fred" or "john" commit to # ;; the module whose repository is "bin/ls" [/code:1:3d4dbca155] |
醉春風 回復于:2004-06-29 15:11:11 |
[quote:85952775be="quakelee"]我還以為是cvsd over ssh呢…………[/quote:85952775be] 老大有什么好注意,偶跑了一個jail, 所有的系統用戶都是jaill里面的。。。 .。。 |
dennis2 回復于:2004-06-29 16:09:14 |
[quote:ad0d95b35b="zliming"]
我的權限要分的很細的,一個目錄下面和這個目錄下的目錄權限組要不同.現在是passwd里面映射到系統用戶控制權限的.但一個用戶最多只有在17個組,對我們的要求還不能很好實現,要分的太細了. :em06:[/quote:ad0d95b35b] 那還是用 subversion 吧,權限可以分得很細。 |
zliming 回復于:2004-07-02 02:28:13 |
[quote:4e15b5cfd8="dennis2"]
那還是用 subversion 吧,權限可以分得很細。[/quote:4e15b5cfd8] 這個剛出來的,我試一段時間看看。不敢正版使用。 是在說的perl腳本,看了一下好像比passwd好不了多少的。只要對應到系統用戶的.控制系統用戶權限感受不能細分. |
黑夜編碼人 回復于:2004-07-02 10:15:18 |
寫得很不錯,是否愿意發布到《[url=http://www.cnfug.org/journal]CNFUG期刊[/url]》中呢?
《CNFUG期刊》請見:[url]http://www.cnfug.org/journal[/url] |
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/