系統管理員登陸CVS服務器,創建CVS庫的存放目錄,比如C:\cvs\cvsrep。使用“cvs -d /cvs/cvsrep init ”初始化目錄,該命令會自動創建CVSROOT,CVS等目錄。然后,在CVS的配置文件里,同時為該庫起一個別名,比如/cvs/cvsrep,以防止用戶知道系統的真實的目錄結果。別名的設置,在Unix下,是在/etc/cvsnt/PServer文件里;Windows下,可以通過CVSNT Control Panel來進行。
了簡化操作,我們先設置環境變量,比如"set cvsroot=c:\cvs\cvsrep"。這樣,就不用每次指定CVSROOT的位置了。
2。創建cvs庫管理員
系統管理員使用passwd命令創建用戶(同時設置初始口令),然后把新建的用戶名列在CVSROOT/admin里,這些用戶就成為了CVS庫管理員。
比如通過“cvs passwd -r cvsuser -u repadmin”創建一個叫repadmin的用戶。這里,cvs服務器上必須存在一個cvsuser的系統用戶,該用戶必須有對C:\cvs\cvsrep的完全訪問權限。cvsuser賬戶,可以為多個cvs庫用戶所共享。repadmin對cvs的遠程訪問,是以cvsuser的身份運行的。
系統管理員使用chacl命令把根目錄的確省權限設為read,nowrite,nocontrol,nocreate,notag。當然,這些工作也可以交由cvs庫管理員來做。
比如:cvs chacl -a read,nowrite,nocontrol,nocreate,notag
如果子目錄不重新設置權限,自動繼承父目錄的權限。
系統管理員通過emai把賬號、密碼以及CVSROOT的路徑發送給cvs庫管理員。
cvs庫管理遠程訪問cvs庫,比如通過pserver協議。
設置環境變量,set cvsroot=:pserver:repadmin@servername:/cvs/cvsrep.
轉到工作目錄,登陸,并初始化當前目錄
cd workdir
cvs login
cvs co .
修改密碼
cvs passwd
3。創建普通用戶
cvs庫管理員通過passwd創建用戶,同時設置初始密碼,然后通email告知相關信息。
cvs passwd -a -r cvsuser -u testuser
4。創建目錄樹
cvs庫管理員通過import和add命令創建目錄樹,并使用chacl命令給用戶分配權限。
可以通過lsacl命令來檢查權限的分配情況。
添加一個目錄
cvs add subdir
給testuser分配subdir的讀寫權限
cvs chacl -a read,write -u testuser subdir
5。Check in / Check out
現在普通用戶可以使用check out數據,并修改和提交了。
set cvsroot=:pserver:testuser@servername:/cvs/cvsrep.
cd workdir
cvs co .
…modify files…
cvs commit -m "do some change"
結論:
1。我們不需要給cvs管理員以服務器的root賬號。而只需要一個公共的,可以訪問cvs庫目錄的賬號就可以。這個賬戶甚至不需要對外公布密碼,也不允許遠程登錄。
2。我們不需要為每個cvs用戶創建cvs服務器的系統賬號,也無需依賴文件系統的訪問控制。
3。我們可以為每個cvs庫指定庫管理員,由其對各自的cvs庫進行用戶的創建和權限分配。
4。普通用戶可以自行修改cvs賬戶的密碼,無需管理員干預。
5。cvs服務器管理員的工作主要是創建cvs庫(可以創建特定的系統賬戶以負責cvs庫的創建和管理,不需要root賬戶),并負責服務器的日常維護,而日常的cvs管理由cvs庫各自的管理員完成。