Fedora CVS服務(wù)器安裝配置和創(chuàng)建用戶組
雖然網(wǎng)上有很多關(guān)于Fedora CVS服務(wù)器的配置文檔供大家參考,但是本著“紙上得來終覺淺,絕知此事須躬行”的態(tài)度,還是自己動手安裝一下。因為別人配置的環(huán)境和 自己的畢竟不大一樣,操作起來可能會有一些步驟有問題。
只有我們自己遇到問題并解決時,才能夠?qū)edora CVS服務(wù)器的配置理解的更加深入。也建議各位需要用到Fedora CVS服務(wù)器的朋友也動手裝一下,實現(xiàn)你自己的Fedora CVS服務(wù)器。 閑話少說,轉(zhuǎn)入正題。我用的操作系統(tǒng)是:Fedora 7(注意:以下操作是以root身份操作的#su root)
一、Fedora CVS服務(wù)器安裝
首先確保系統(tǒng)安裝有Fedora CVS服務(wù)器# rpm -qa|grep Fedora CVS服務(wù)器Fedora CVS服務(wù)器-1.11.22-9.fc7 如果命令輸出類似于上面的輸出則說明系統(tǒng)已經(jīng)安裝有Fedora CVS服務(wù)器,否則就需要從安裝光盤中安裝Fedora CVS服務(wù)器的rpm包。但安裝完Fedora7后系統(tǒng)自己就安裝好Fedora CVS服務(wù)器軟件了。前期工作: Fedora7默認(rèn)是沒有安裝上xinetd服務(wù),所以先安裝xinetd服務(wù)#yum install xinetd
二、Fedora CVS服務(wù)器端的配置
1.創(chuàng)建Fedora CVS服務(wù)器組和用戶
1)創(chuàng)建Fedora CVS服務(wù)器組
#/usr/sbin/groupadd Fedora CVS服務(wù)器
2)創(chuàng)建新用戶HOME目錄
#mkdir /home/Fedora CVS服務(wù)器root
3)添加新用戶Fedora CVS服務(wù)器root,并將其添加至Fedora CVS服務(wù)器組,并指定其HOME目錄
#/usr/sbin/useradd -g Fedora CVS服務(wù)器 -G Fedora CVS服務(wù)器 -d /home/Fedora CVS服務(wù)器root Fedora CVS服務(wù)器root
4)設(shè)置Fedora CVS服務(wù)器root用戶的密碼,我這里的密碼為:chongqing
#passwd Fedora CVS服務(wù)器root Changing password for user Fedora CVS服務(wù)器root. 新的 UNIX 口令: 重新輸入新的 UNIX 口令: passwd: all authentication tokens updated successfully.
5)更改/home/Fedora CVS服務(wù)器root/目錄及其子目錄的屬主和屬組
因為是在root用戶下間的該目錄,他的屬主和屬組都是root,這里我們要將其屬主改為Fedora CVS服務(wù)器root,屬組改為Fedora CVS服務(wù)器,保證Fedora CVS服務(wù)器組的用戶對該目錄有相應(yīng)的權(quán)限。# chown -R Fedora CVS服務(wù)器root.Fedora CVS服務(wù)器 /home/Fedora CVS服務(wù)器root/
6)更改/home/Fedora CVS服務(wù)器root目錄屬性
保證Fedora CVS服務(wù)器root同組(Fedora CVS服務(wù)器組)的其他用戶也有讀寫和執(zhí)行權(quán),我們以后要為Fedora CVS服務(wù)器組添加用戶# chmod -R 775 /home/Fedora CVS服務(wù)器root/(注意:以下操作是以Fedora CVS服務(wù)器root身份進行操作的)
2.切換至Fedora CVS服務(wù)器root用戶,并創(chuàng)建一個倉庫
1)切換用戶
#su Fedora CVS服務(wù)器root 口令: bash-3.2$
2)設(shè)置全局變量Fedora CVS服務(wù)器ROOT,指定倉庫所在的目錄
$export Fedora CVS服務(wù)器ROOT=/home/Fedora CVS服務(wù)器root/
3)創(chuàng)建倉庫
$ Fedora CVS服務(wù)器 init
OK,到目前為目止,就可以在本機上以Fedora CVS服務(wù)器root身份提交源代碼了
3.提交源入源代碼
1)進入你想提交給Fedora CVS服務(wù)器的代碼所在目錄我這里是/home/HelloWorld/bash-3.2$ cd /home/HelloWorld/ bash-3.2$ ls helloworld.cpp makefile 裝載Fedora CVS服務(wù)器 import -m "[repository test]" [Fedora CVS服務(wù)器test] [vendortag] [releasetag]-m后面引號內(nèi)填入log內(nèi)容,接下來是源代碼模塊名稱,接著是裝載者,最后是標(biāo)識符號,我這里是:
2)提交工程
- $ Fedora CVS服務(wù)器 import -m "my Fedora CVS服務(wù)器 project" myProject Fedora CVS服務(wù)器root start
- N myProject/makefile
- N myProject/helloworld.cpp
- No conflicts created by this import
此時,我們的源碼也提交了,說明module已經(jīng)建立了。其目錄為:/home/Fedora CVS服務(wù)器root/myProject/
- $ ls -l /home/Fedora CVS服務(wù)器root總計 20
- drwxrwxr-x 3 Fedora CVS服務(wù)器root Fedora CVS服務(wù)器 4096 10-14 10:59 Fedora CVS服務(wù)器ROOT
- drwxrwxr-x 2 Fedora CVS服務(wù)器root Fedora CVS服務(wù)器 4096 10-14 12:11 myProject
3)checkout工程
如果我們在root用戶(或者其他用戶,但必須保證該用戶對于存放module的目錄有寫的權(quán)限)下測試,checkout出這一個module,可以執(zhí)行如下:
# Fedora CVS服務(wù)器 -d /home/Fedora CVS服務(wù)器root checkout myProject
Fedora CVS服務(wù)器 checkout: Updating myProject
U myProject/helloworld.cpp
U myProject/makefile
說明在本地可以checkout出來,而且他會自動在當(dāng)前目錄下創(chuàng)建以該module名為名的目錄項,不管你checkout出來的是一個源碼文件還是整個module。
4.創(chuàng)建登錄Fedora CVS服務(wù)器的用戶和密碼
Fedora CVS服務(wù)器默認(rèn)使用系統(tǒng)用戶登錄,為了系統(tǒng)安全性的考慮也可以使用獨立的用戶管理。Fedora CVS服務(wù)器用戶名和密碼保存在Fedora CVS服務(wù)器ROOT目錄下的passwd文件中,格式為:
[Fedora CVS服務(wù)器 用戶名]:[加密的口令]:[等效系統(tǒng)用戶名]
1)先創(chuàng)建一個passwd文件
$ cd /home/Fedora CVS服務(wù)器root/Fedora CVS服務(wù)器ROOT/
$ htpasswd -c passwd Fedora CVS服務(wù)器user
New password:
Re-type new password:
Adding password for user Fedora CVS服務(wù)器user
$ cat passwd
Fedora CVS服務(wù)器user:R9oDKNeysScdw
$vi passwd
在末尾添加 :Fedora CVS服務(wù)器root 作用是映射到Fedora CVS服務(wù)器root用戶,最終結(jié)果如下:Fedora CVS服務(wù)器user:R9oDKNeysScdw:Fedora CVS服務(wù)器root 在創(chuàng)建其他用戶時,不用帶參數(shù)#htpasswd passwd 用戶名New password: Re-type new password:
要徹底防止使用系統(tǒng)帳號登陸,可以編輯Fedora CVS服務(wù)器ROOT目錄下的config文件,把:#SystemAuth=yes這一行前面的#去掉,改為如下形式:SystemAuth=noFedora CVS服務(wù)器就不會驗證系統(tǒng)用戶了,否則當(dāng)用戶名不在passwd文件中時,F(xiàn)edora CVS服務(wù)器會進行系統(tǒng)用戶的驗證。
2)配置Fedora CVS服務(wù)器用戶的讀寫權(quán)限
使用 Fedora CVS服務(wù)器ROOT目錄下的readers和writers文件進行這個工作。這2個文件默認(rèn)也是沒有的,沒關(guān)系,自己創(chuàng)建就可以了。
readers文件記錄 擁有只讀權(quán)限的用戶名,每行一個用戶;writers文件記錄擁有讀寫權(quán)限的用戶名,也是每行一個用戶。注意, readers文件比writers優(yōu)先,也就是說出現(xiàn)在readers中的用戶將會是只讀的,不管writers文件中是否存在該用戶。
5.設(shè)置開機啟動Fedora CVS服務(wù)器服務(wù)
1)檢查/etc/services中,F(xiàn)edora CVS服務(wù)器pserver是否開啟。Fedora CVS服務(wù)器pserver是遠(yuǎn)程登錄Fedora CVS服務(wù)器時對用戶的驗證方式。
$cat /etc/services | grep Fedora CVS服務(wù)器pserver
Fedora CVS服務(wù)器pserver 2401/tcp # Fedora CVS服務(wù)器 client/server operations
Fedora CVS服務(wù)器pserver 2401/udp # Fedora CVS服務(wù)器 client/server operations
如果命令輸出類似于上面的輸出,這說明我的系統(tǒng)已打開該服務(wù)。
2)創(chuàng)建Fedora CVS服務(wù)器pserver文件
切換至root用戶下:
#su root
cd /etc/xinetd.d/
#vi Fedora CVS服務(wù)器pserver
編輯該文件,內(nèi)容如下:
service Fedora CVS服務(wù)器pserver
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/Fedora CVS服務(wù)器
server_args = -f --allow-root=/home/Fedora CVS服務(wù)器root pserver
log_on_success += USERID
log_on_failure += USERID
}
其中,--allow-root=/home/Fedora CVS服務(wù)器root即倉庫所在目錄。
注意:每行的第一個"="左右兩側(cè)要有一個空格。
3)然后更改/etc/xinetd.d/Fedora CVS服務(wù)器
否則的話,在后面的遠(yuǎn)程登錄本機時會出現(xiàn)下面的問題
“沒有該倉庫”
- [test@liu ~]$ Fedora CVS服務(wù)器 -d :pserver:Fedora CVS服務(wù)器user@10.15.5.89:/home/Fedora CVS服務(wù)器root login
- Logging in to :pserver:Fedora CVS服務(wù)器user@10.15.5.89:2401/home/Fedora CVS服務(wù)器root
- Fedora CVS服務(wù)器 password:
- /home/Fedora CVS服務(wù)器root: no such repository
- [test@liu ~]$
更改方法如下:
把disable=yes 改為 disable=no ;env和server_args中路徑改為你的Fedora CVS服務(wù)器root路徑,我的是/home/Fedora CVS服務(wù)器root更改后的內(nèi)容如下
- # default: off
- # description: The Fedora CVS服務(wù)器 service can record the history of your source "
- # files. Fedora CVS服務(wù)器 stores all the versions of a file in a single "
- # file in a clever way that only stores the differences "
- # between versions.
- service Fedora CVS服務(wù)器pserver
- {
- disable = no
- port = 2401
- socket_type = stream
- protocol = tcp
- wait = no
- user = root
- passenv = PATH
- server = /usr/bin/Fedora CVS服務(wù)器
- env = HOME=/home/Fedora CVS服務(wù)器root
- server_args = -f --allow-root=/home/Fedora CVS服務(wù)器root pserver
- # bind = 127.0.0.1 }
3)重啟xinetd服務(wù),使配置生效
- 重啟xinetd
- # /etc/init.d/xinetd restart
- 停止 xinetd: [確定]
- 啟動 xinetd: [確定]
- 確定Fedora CVS服務(wù)器pserver是否啟動
- #netstat -l | grep Fedora CVS服務(wù)器pserver
- tcp 0 0 *:Fedora CVS服務(wù)器pserver *:* LISTEN
4)最后還必須檢查防火墻的設(shè)置,看2401端口是否打開打開
#/sbin/iptables -L&line;grep Fedora CVS服務(wù)器
如果看到ACCEPT tcp -- anywhere anywhere tcp dpt:Fedora CVS服務(wù)器pserver說明端口已經(jīng)打開,否則請打開防火墻2401端口
- #/sbin/iptables -A INPUT -i eth0 -p tcp --dport 2401 -j ACCEPT
- #/sbin/service iptables save
至此,F(xiàn)edora CVS服務(wù)器配置全部完成,下面進行測試。
三、客戶端測試
1、連接Fedora CVS服務(wù)器
剛才建立的Fedora CVS服務(wù)器端的IP為:10.15.5.89客戶端主機使用非root用戶,我的用戶名為test首先建立環(huán)境變量Fedora CVS服務(wù)器ROOT,以剛才建立的Fedora CVS服務(wù)器用戶Fedora CVS服務(wù)器user登錄:
- [test@liu ~]$ export Fedora CVS服務(wù)器ROOT=:pserver:Fedora CVS服務(wù)器user@10.15.5.89:/home/Fedora CVS服務(wù)器root
- [test@liu ~]$ Fedora CVS服務(wù)器 login
- Logging in to :pserver:Fedora CVS服務(wù)器user@10.15.5.89:2401/home/Fedora CVS服務(wù)器root
- Fedora CVS服務(wù)器 password:
- [test@liu ~]$
如果沒有錯誤提示,則代表成功登錄Fedora CVS服務(wù)器。
在此卻很有可能出現(xiàn):unrecognized auth response from 10.15.5.89: Fedora CVS服務(wù)器 pserver: cannot open /home/Fedora CVS服務(wù)器root/Fedora CVS服務(wù)器ROOT/config: Permission denied
尤其是當(dāng)你的linux版本較高時。這是由于selinux的原因,這是一種安全機制,具體可以上網(wǎng)查。只要關(guān)閉selinux就可以了:編輯/etc/selinux/config,將SELINUX設(shè)置為SELINUX=disabled,禁用SELINUX。重啟電腦就好了
2、檢出模塊
我們上面已經(jīng)建立了一個倉庫了: myProject 我們在客戶端將該模塊checkout
[test@liu ~]$ Fedora CVS服務(wù)器 checkout myProject
Fedora CVS服務(wù)器 checkout: Updating myProject
U myProject/helloworld.cpp
U myProject/makefile
[test@liu ~]$
好了,在當(dāng)前目錄下生成了目錄myProject,現(xiàn)在你就可以進入myProject進行修改,刪除,提交等操作了。
四、現(xiàn)在我們來說說多倉庫的建立
注意,我們用Fedora CVS服務(wù)器root僅僅是用來管理,所以,不要在它$HOME下面創(chuàng)建任何倉庫另外,Fedora CVS服務(wù)器root用戶的初始環(huán)境不應(yīng)該包含非空的$Fedora CVS服務(wù)器ROOT.(也就是必須設(shè)置環(huán)境變量) 使用Fedora CVS服務(wù)器root來進行的任何管理工作都指明Fedora CVS服務(wù)器ROOT是一個好的習(xí)慣.OK,開始給單個項目建倉庫假設(shè)有兩個項目,project1,project2,希望單獨存放,便于管理
1、分別給兩個工程建立各自的Fedora CVS服務(wù)器主目錄
#mkdir /home/Fedora CVS服務(wù)器root/pro1
#mkdir /home/Fedora CVS服務(wù)器root/pro2
2、 分別更改pro1和pro2目錄及其子目錄的屬主和屬組
#chown Fedora CVS服務(wù)器root.Fedora CVS服務(wù)器 /home/Fedora CVS服務(wù)器root/pro1
#chown Fedora CVS服務(wù)器root.Fedora CVS服務(wù)器 /home/Fedora CVS服務(wù)器root/pro2
3、更改目錄pro1和pro2的權(quán)限
#chmod 2775 /home/Fedora CVS服務(wù)器root/pro1
#chmod 2775 /home/Fedora CVS服務(wù)器root/pro2
(更高的安全要求則$chmod 2770 /home/Fedora CVS服務(wù)器root/pro1)
4、OK,開始建立倉庫
#su Fedora CVS服務(wù)器root
$Fedora CVS服務(wù)器 -d /home/Fedora CVS服務(wù)器root/pro1 init
$Fedora CVS服務(wù)器 -d /home/Fedora CVS服務(wù)器root/pro2 init
$chmod 2775 /home/Fedora CVS服務(wù)器root/pro1
$chmod 2775 /home/Fedora CVS服務(wù)器root/pro2
5、修改啟動文件
#vi /etc/xinetd.d/Fedora CVS服務(wù)器pserver
內(nèi)容如下:
- service Fedora CVS服務(wù)器pserver
- {
- disable = no
- socket_type = stream
- wait = no
- user = root
- server = /usr/bin/Fedora CVS服務(wù)器
- server_args = -f --allow-root=/home/Fedora CVS服務(wù)器root/pro1 --allow-root =/home/Fedora CVS服務(wù)器root/pro2 pserver
- log_on_success += USERID
- log_on_failure += USERID
- }
然后更改/etc/xinetd.d/Fedora CVS服務(wù)器, 否則的話,在后面的遠(yuǎn)程登錄本機時會出現(xiàn)下面的問題“沒有該倉庫”
[test@liu ~]$ Fedora CVS服務(wù)器 -d :pserver:Fedora CVS服務(wù)器user@10.15.5.89:/home/Fedora CVS服務(wù)器root/pro1 login
Logging in to :pserver:Fedora CVS服務(wù)器user@10.15.5.89:2401/home/Fedora CVS服務(wù)器root/pro1
Fedora CVS服務(wù)器 password:
/home/Fedora CVS服務(wù)器root/pro1: no such repository
[test@liu ~]$
更改方法如下:把disable=yes 改為 disable=no ;env和server_args中路徑改為你的Fedora CVS服務(wù)器root路徑,我的是/home/Fedora CVS服務(wù)器root更改后的內(nèi)容如下
- # default: off
- # description: The Fedora CVS服務(wù)器 service can record the history of your source "
- # files. Fedora CVS服務(wù)器 stores all the versions of a file in a single "
- # file in a clever way that only stores the differences "
- # between versions.
- service Fedora CVS服務(wù)器pserver
- {
- disable = no
- port = 2401
- socket_type = stream
- protocol = tcp
- wait = no
- user = root
- passenv = PATH
- server = /usr/bin/Fedora CVS服務(wù)器
- env = HOME=/home/Fedora CVS服務(wù)器root
- server_args = -f –allow-root=/home/Fedora CVS服務(wù)器root/pro1 --allow-root=/home/Fedora CVS服務(wù)器root/pro2 pserver
- # bind = 127.0.0.1 }
6、重啟xinetd服務(wù),使配置生效
重啟xinetd# /etc/init.d/xinetd restart
停止 xinetd: [確定]
啟動 xinetd: [確定]
7、建立更多的倉庫的技巧
由于xinetd的server_args長度限制,當(dāng)你想運行很多的單個倉庫的時候,可以這么做
1)修改Fedora CVS服務(wù)器pserver和Fedora CVS服務(wù)器文件#vi /etc/xinetd.d/Fedora CVS服務(wù)器pserver#vi /etc/xinetd.d/Fedora CVS服務(wù)器
修改它們的內(nèi)容中如下:
- service Fedora CVS服務(wù)器pserver
- {
- disable = no
- socket_type = stream
- wait = no
- user = root
- server = /home/Fedora CVS服務(wù)器root/Fedora CVS服務(wù)器.run
- log_on_success += USERID
- log_on_failure += USERID
- }
2)然后寫腳本/home/Fedora CVS服務(wù)器root/Fedora CVS服務(wù)器.run#vi /home/Fedora CVS服務(wù)器root/Fedora CVS服務(wù)器.run
腳本內(nèi)容如下:
- #!/bin/bash
- /usr/bin/Fedora CVS服務(wù)器 -f "
- --allow-root=/home/Fedora CVS服務(wù)器root/pro1 "
- --allow-root=/home/Fedora CVS服務(wù)器root/pro2 "
- --allow-root=/home/Fedora CVS服務(wù)器root/pro3 "
- --allow-root=/home/Fedora CVS服務(wù)器root/pro4 "
- --allow-root=/home/Fedora CVS服務(wù)器root/pro5 "
- --allow-root=/home/Fedora CVS服務(wù)器root/pro6 "
- pserver
3)更改Fedora CVS服務(wù)器.run的權(quán)限:#chmod +x /home/Fedora CVS服務(wù)器root/Fedora CVS服務(wù)器.run
4)重啟服務(wù):#service xinetd restart好了,現(xiàn)在多個獨立的倉庫也建立好了 .
【編輯推薦】