TFS 的替代方案:Redmine【Part4】設定 apache 與 subversion 的多專案權限

摘要:Mac OSX 與 Redmine 的邂逅【Part4】設定 apache 與 subversion 的多專案權限

假設我們在subversion有多個專案,並且希望多個專案的權限要不一樣,那我們可以透過下列的方式達成。

subversion的目錄建置方式請參閱 Mac OSX 與 Redmine 的邂逅【Part1】安裝 Redmine + Subversion

設定方式如下:

  1. 修改/Applications/redmine-1.0.2-0/apache2/conf/httpd.conf
    • <location /svn>
        DAV svn
        #SVNListParentPath on
        SVNParentPath /Applications/redmine-1.0.2-0/subversion/repos
        AuthType Basic
        AuthName "Subversion Login"
        AuthUserFile /Applications/redmine-1.0.2-0/subversion/svnuser.auth # 使用者的帳號密碼存放文件
        AuthzSVNAccessFile /Applications/redmine-1.0.2-0/subversion/svnaccess.pub # svn的存取規則
        Require valid-user
      </location>
  2. 利用指令 htpasswd -m /Applications/redmine-1.0.2-0/subversion/svnuser.auth username 來建立帳號、密碼
     
  3. 新增/Applications/redmine-1.0.2-0/subversion/svnaccess.pub 文件
    • 寫入下面內容:

      ## 設定群組
      [groups]
      admin = admin1, admin2
      g_code = user1,user2
      g_doc = user3,user4
       
      ## 設定根目錄權限,r=讀、w=寫
      [/]
      * =
      @admin = rw    #admin群組可以讀寫全部

      [proj1:/]        # 版本目錄名稱
      @g_code = rw      #群組g_code可以讀寫
      @g_doc=r             #群組g_doc只能讀

      [proj2:/]
      user3=rw              #使用者user3可以讀寫
      user4=r                 #使用這user4可以讀

備註:

  • 使用者的帳號密碼與/Applications/redmine-1.0.2-0/subversion/svnuser.auth 是關聯的。
  • svnaccess.pub 的規則變更是不用重啟apache就可以套用的。