1. 程式人生 > >SVN配置使用者和許可權以及初始化匯入資料

SVN配置使用者和許可權以及初始化匯入資料

 4,配置使用者和許可權

svn的許可權管理涉及到一下檔案:
passwd檔案   --   /conf目錄下   用於存放本svn庫的使用者名稱和密碼,用 = 分割,左邊是使用者名稱,右邊是密碼(明文)。
authz   --   /conf目錄下   用於存放本svn庫的訪問授權資訊。
svnserve.conf   -- /conf目錄下   用於存放本svn庫的全域性訪問控制資訊。

來到E:\svndemo\repository\conf目錄,修改svnserve.conf:
# [general]
# password-db = passwd
改為:
[general]
password-db = passwd 然後修改同目錄的passwd檔案(設定使用者密碼),去掉下面三行的註釋再加兩個使用者:
# [users]
# harry = harryssecret
# sally = sallyssecret
最後變成:
[users]
harry = harryssecret
sally = sallyssecret
svnadmin = admin
zgz = zgz0809
最後修改同目錄的authz檔案,它定義了兩部分的內容:
1,對組成員的定義,
2,對目錄的授權定義,
可以針對一個單一使用者授權,也可以針對在[groups]裡面定義的一個組授權,還可以用*萬用字元來對所有的使用者授權,
授權的選項有:只讀訪問('r'),讀寫訪問('rw'),或者無權防問('').
authz檔案中可以對任意多個目錄進行許可權控制,一下是一個例子:

[groups]
harry_and_sally = harry,sally
#設定許可權組

[/]
svnadmin = rw

[/truck]
zgz = rw
harry = rw
sally = r
* = r

[/sanguo]
zgz = rw
harry = r
sally = rw
* = r

[/ts]
@harry_and_sally = rw
# 以@為鍵值意味著對前面定義的組進行授權
* = r

# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r

使用者svnadmin許可權最大,他可以進行根目錄(注意:是伺服器目錄svn://localhost/,下邊會介紹的)下所有檔案(包括子目錄下的檔案)的讀寫操作,而/truck,/sanguo,/ts是在伺服器的根目錄下建立的三個子目錄。
使用者zgz 和harry對 /truck具有讀寫許可權,sally 只有讀的許可權。
使用者zgz 和sally對 /sanguo具有讀寫許可權,harry 只有讀的許可權。
使用者harry 和sally對 /ts具有讀寫許可權,zgz只有讀的許可權。(* = r 表示所有使用者都具有讀的許可權,當然zgz也就自然具有了。注意這裡 @harry_and_sally = rw 表示給harry_and_sally組所有使用者授權,該組在上邊[groups]標籤中已定義)

注意:如果使用者對一個目錄具有某種許可權,那麼他對其子目錄也有同樣的許可權(例如:svnadmin),所以在授權時要特別注意,儘量只付給滿足使用者需要的最小的許可權。

微笑

我自己上面的方面試了不行。自己解決辦法(手動插入)

在svn的password ,auths,svnserver.conf檔案下配置不成功,SVN Server介面選中某個版本庫,右鍵->all tasks->Manage Security->add,新增使用者名稱和密碼即可。這樣使用者就在相應的版本庫中建立了許可權。

微笑

6,初始化匯入

來到我們想要匯入的專案根目錄,在這個例子裡是E:\svndemo\wc1,目錄下有一個readme.txt檔案:
進入到E:\svndemo\wc1裡。右鍵->TortoiseSVN->Import...
URL of repository輸入“svn://localhost/” ,如果服務安裝在其他機器則將localhost改換為目標機器的IP地址“svn://10.8.6.87/”。
ok
完成之後目錄沒有任何變化,如果沒有報錯,資料就已經全部匯入到了我們剛才定義的版本庫中。

需要注意的是,這一步操作可以完全在另一臺安裝了TortoiseSVN的主機上進行。例如執行svnserve的主機的IP是10.8.6.87,則URL部分輸入的內容就是“svn://10.8.6.87/”,一般為了便於管理不會匯入到服務的根目錄下,而是匯入到工程的子目錄,如/truck,/sanguo,/ts。匯入的URL就添svn://localhost/truck。

微笑

這裡我自己做的如下

最後在SVN服務管理器上(SVN Server manager)裡SVNRepository裡就出現了readme.txt這個檔案了!