4、SVN学习之svn的权限设置
在一个项目中有多个成员共同开发,其中各自所负责的模块并不相同,所以svn给其分配的权限也要不同,以防止zhangsan负责的模块被lisi修改而造成麻烦。
1、假设公司要开发一个项目名称为cms,并采用svn进行版本控制,svn管理人员首先会在svn的root目录下新建一个cms的工厂。命令如下:
2、项目经理会在自己的电脑上新建一个cms项目,并且把项目的基本结构建立起来,假如cms项目,有UI开发、code开发、test测试三个文件夹。UI开发下面又有html开发与js开发。各目录下又分别有一个文件。如下图所示:
3、由svn管理人员在svnserve.conf文件中打开password-db = passwd authz-db = authz ,即把前面 的#号去掉。password-db = passwd意思是说用户与密码对应的数据保存在passwd文件中。 authz-db = authz 一些权限的信息保存在文件authz中。打开文件passwd向里面添加用户信息,如下图所示:
4、打开文件authz,在里面设置组与相应的权限。添加的内容如下所示:其中g_admin=admin意思为admin用户隶属于权限组g_admin,g_ui=zhangsan,lisi意思是zhangsan,lisi隶属于权限组g_ui;g_code=wangwu意思是wangwu隶属于权限组g_code;g_test=zhaoliu,qianqi意思是zhaoliu,qianqi隶属于权限组g_test。[/]
@g_admin=rw *=r 的意思是权限组g_admin对所有的目录都有读与写的权限。而其它用户则只有读(r)的权限。[/ui/html] zhangsan=rw 的意思是:zhangsan对目录/ui/html有读与写的权限。[/ui/js] lisi=rw意思是lisi对目录/ui/js有读与写的权限。[/code] @g_code=rw的意思是g_code权限组对目录/code有读与写的权限。[/test] @g_test=rw的意思是g_test权限组对目录/test有读与写的权限。
g_admin=admin g_ui=zhangsan,lisi g_code=wangwu g_test=zhaoliu,qianqi [/] @g_admin=rw *=r [/ui/html] zhangsan=rw [/ui/js] lisi=rw [/code] @g_code=rw [/test] @g_test=rw
5、项目经理在本地创建相应的项目后,然后在空白处右击鼠标选择Import,如下图所示:
点击后出现如下图所示对应框,点击OK
然后会出现让登录的对话框,这里添加admin用户名与密码。
点击OK后相应的项目信息就会传到svn服务器对就的cms工厂中。如下图所示
6、在本地假设有目录D:\study_source\svn\cms_d\admin,这个目录是假设的项目经理的计算机。项目经理要对cms项目进行操作与编码,那么他首先要从svn服务器上把项目cms下载到本地,如下图所示的目录就假设是项目经理的计算机。
项目经理只需要在打开的文件夹上右键,然后选择SVN Checkout就可以了,如下图所示:
然后在弹出来的对话框中输入如下图所示的信息:
点击OK后,如下图所示:
7、项目经理在code文件夹下新建一个文件2.code,如下图所示:
然后在空白的地方点击右键在出现的菜单中选择svn commit,在出现的对话框中,如下图所示:
点击ok后就可以添加一个文件。项目经理可以对任何一个文件夹与其里面的内容进行操作。
8、假设同样有lisi的一个文件目录,D:\study_source\svn\cms_d\lisi,与项目经理一样先从svn服务器上把cms项目的内容checkout到本地,然后让lisi在目录code下添加一个文件3.code,添加完成后在空白处右键选择SVN commit,会出现如下菜单:
点击Ok后,如下图所示:
这样就会提示出错,其原因是因为,lisi只对ui/js目录有读写的权限,别的目录只有读的权限,这里要向code目录添加一个文件,显然是不对的。以这样的原理就可以对所有的目录分类对待,从而答到权限控制的效果。
相关推荐
pub_svnserve.conf的 pub_authz.conf的配置文件有非法字符的原因引起,需要查找pub_authz.conf提的非法内容比如多余的空格删除或直接将pub_authz.conf