1. 程式人生 > >svn新增使用者,許可權

svn新增使用者,許可權

1、查詢SVN的安裝地址 我的在/opt/svn下面,不知道地址的話find / -name svn可以找到。
2、svn下有個目錄conf,命令

cd /opt/svn/conf/

進入,conf中的四個配置檔案:
authz hooks-env.tmpl passwd svnserve.conf
       svnserve.conf   #svn版本庫配置檔案
       passwd      #svn使用者配置
       authz       #許可權配置
       hooks-env.tmpl  #環境變數配置例項
3、 vi passwd 進到編輯頁面,在[users]下新增新增的使用者。格式為:

使用者名稱 = 密碼
admin = admin
zs = 123
然後Ctrl + C退出編輯模式,Shift+ : ,接著x儲存退出。

4、vi authz 進到編輯頁面,authz 中主要是分為兩類配置:[groups]類配置、以[repo:/]開頭的配置。

[groups]的配置很容易理解,就是群組。格式也比較簡單,即

“group_name = user1,user2,user3”

如果有多個使用者,可以直接通過“,”的方式拼接就可以了,例如:

[groups]
# 經理
g_manager = michael
# 北京辦人員
g_beijing = scofield
# 上海辦人員
g_shanghai = lincon
# 總部一般員工
g_headquarters = rory, linda

.以[repo:/]開頭的配置,上邊的[gourps]配置是用來劃分使用者分組的,那麼以[repo:/]開頭的配置就是用來具體的劃分使用者讀寫許可權的了,其中repo是你的庫的名字,即上邊我們通過

“svnadmin create /home/user/svn/test”

命令所建立的庫“test”,下邊我們直接用例子來說明它的使用方法:
對專案根目錄做限制,該目錄只允許經理才能修改,其他人都只能擁有讀的許可權:

[test:/]   
@g_manager = rw
* = r

“[test:/]” 表示這個目錄結構的相對根節點,或者說是 test 專案的根目錄。這裡的 “@” 表示接下來的是一個組名,不是使用者名稱。因為目前 g_manager 組裡面只有一個 michael,你當然也可以將 “

@g_manager = rw” 這一行替換成 “michael = rw”

,表達的意義完全一樣。
“*” 表示“除了上面提到的那些人之外的其餘所有人”,也就是“除了部門經理外的其他所有人”
“* = r” 則表示“那些人只能讀,不能寫”。

對於根目錄下邊的子目錄,其許可權配置方式是相同的,是需要把地址指明就可以了,即[test:/folder1/folder2],這裡就不贅述了。

注意:配置中我們可能會遇到“* =”這樣的情況,他的目的是用來隔斷許可權的繼承性。如果在某一級目錄的許可權配置里加上這一句,則表明除了該配置中的使用者之外的其他使用者完全沒有這一級目錄的任何權利,既不可讀,更不可寫。

當所有許可權與使用者全都配置完成之後,接下來就是要讓它們都生效了,首先我們需要確保svnserve服務已經停掉了,可以通過

ps aux|grep svn

的方式來檢視svn時候還在執行,如果還在執行的話直接通過“kill -9 svn程序編號”的方式把它停掉就可以了,然後在通過命令

svnserve -d -r /opt/svn –listen-port 9998
–listen-port 9998 是我指定9998的埠啟動,不加上這段預設是3690埠

來重新啟動svn服務,以上配置的三個檔案就都起作用了!

svn list svn://xx.xxx.x.x/svn

在linux做登入的操作,我測試用下而已