SVN的权限管理--方式之一

    技术2022-05-11  73

    SVN的权限管理--方式之一   1.配置httpd.conf文件 假设我们有如下需求,J2ME组需要用svn管理本组几个项目的代码和文档。前提是我们已经搭建好了SVN服务器(可以参考"Windows下安装和配置SVN Server"一文)。 首先在Apache2/conf/httpd.conf文件的末尾添加如下内容,后面将做解释说明。 <Location /j2me> DAV svn SVNParentPath F:/svnlib/j2me AuthzSVNAccessFile F:/svnlib/j2me/accessfile Require valid-user AuthType Basic AuthName " 身份验证" AuthUserFile F:/svnlib/passwd </Location>   SVNParentPath 所指定的目录表示J2ME组所有的"库"所在的根路径。 <Location /j2me> 表示用户可以通过http://svnserver/j2me/"库名" 的方式来访问指定的库,注意现在我们还没为J2ME组建立任何库。 AuthUserFile 所指定的文件用来存放用户名密码,稍后将说明如何生成和管理这个文件。 AuthzSVNAccessFile 所指定的文件用来管理用户组和用户的权限。稍后将说明的使用。   2.建库 假设J2ME组现在有两个项目project1和project2,下面分别为这两个项目分别建库,在DOS窗口中输入 svnadmin create f:/svnlib/j2me/project1 svnadmin create f:/svnlib/j2me/project2 若要上面的命令没能够正确执行,请确认%SVN_HOME%/bin是否已经被添加环境变量PATH中,在本例中是C:/svn-win32-1.4.2/bin,如果没有也可以先进入到%SVN_HOME%/bin目录下,然后再执行上面的命令。建好后project1和project2文件夹下会生成一些文件和目录。 3.创建用户     假设J2ME组现在有开发人员developer1, developer2,配置管理员renee,打开DOS窗口,先创建第一个用户:   htpasswd -c F:/svnlib/passwd developer1   htpasswd 是Apache提供的生成密码文件的命令,默认使用MD5给密码加密,所以即使用文件编辑器打开F:/svnlib/passwd文件,也看不到用户的密码信息,执行前也需要确认%APACHE_HOME%/bin是否已经被添加环境变量PATH中,在本例中是C:/Apache Group/Apache2/bin,如果没有也可以先进入到%APACHE_HOME%/bin目录下,然后再执行上面的命令。   -c  这个参数只在第一次创建用户时使用,表示生成一个密码文件,以后添加用户时就不再需要这个参数了。   F:/svnlib/passwd  这个参数必需与前面的AuthUserFile所指定的参数一致,表示密码文件所在的路径是F:/svnlib/,文件名为passwd。 developer1 表示要创建名为developer1的用户       回车后会两次提示输入密码,两次的密码一致后变成功创建了用户。接下来再创建两个用户 htpasswd F:/svnlib/passwd developer2 htpasswd F:/svnlib/passwd renee 4.配置权限     这里就要用到AuthzSVNAccessFile 所指定的文件了,首先需要在F:/svnlib/j2me路径下创建名为accessfile的文件(注意,没有扩展名),然后用文件编辑器打开这个文件,输入下面内容:   # 组信息 [groups] # 这里分为两个组,一个是开发组,一个是配置管理员组 g_developer = developer1, developer2 g_conf = renee   # 配置project1库的权限 [project1:/] # 这里需要注意的是为组赋权限的时候,需要在组名前面加上一个"@",而为用户赋权限的时候则直接使用用户名既可。 # 开发人员有读写权限 @g_developer = rw # 配置管理员有只读权限 @g_conf = r   # 配置project2库的权限 [project2:/] @g_developer = rw renee = r   5.补充     假设如果以后需要为Brew组库,可以在Apache2/conf/httpd.conf文件的末尾添加如下内容,基本与为J2ME组建时的操作一样。只是AuthUserFile 可以使用同一个文件,而AuthzSVNAccessFile 最好每个组有自己的文件,方便管理。   <Location /brew> DAV svn SVNParentPath F:/svnlib/brew AuthzSVNAccessFile F:/svnlib/brew/accessfile Require valid-user AuthType Basic AuthName " 身份验证" AuthUserFile F:/svnlib/passwd </Location> Brew 组的用户可以通过http://svnserver/brew/"库名"来访问指定的库。

    最新回复(0)