11.12.2007

svn http, user-password and access control

使用 http:// 作為svn 的 url,是利用 apache 的 dav_svn module。
dav 是 (distribution authorization and versioning ,是 http 協定的一個擴充)。
AuthUserFile  /etc/apache2/dav_svn.passwd
AuthzSVNAccessFile /etc/apache2/dav_svn.authz
所以
  1. 要先準備好這兩個file,並且 follow .conf 的內容,擺在對應的path 中
  2. user-passwd file 的內容是用 htpasswd 操作的,add user, change password 都要用htpasswd 來作。
  3. svn 下各個 folder 的access 權限就由 dav_svn.authz 設定。 這個file 是plain text。
Add User :
htpasswd  'target .passwd file' user-name
這裡 'target.passwd file' 就是 /etc/apache2/dav_svn.passwd.

權限設定:
[/]
* =
guest = r
svntest = rw
charles-chang = rw
意思是對 [/] 目錄的權限設定:
* - 所有人 - 無法access
guest - 僅能讀取,無法修改
svntest, charles-chang 都是一般user,可以讀取,修改。
當然,要用htpasswd把 guest, svntest, charles-chang都加到 user-passwd file 中
僅能讀取的 user 一樣可以最 checkout,add file.. 但是在 commit 時會出現 error,svn log上也不會有 該user的更動紀錄。

沒有留言: