svnserve权限设置.doc_第1页
svnserve权限设置.doc_第2页
svnserve权限设置.doc_第3页
svnserve权限设置.doc_第4页
svnserve权限设置.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Svnserve单项目权限设置目录Svnserve单项目权限设置1目录1前言1一 项目结构2二 建立版本库2三 配置权限3四 导入项目版本库5五 启动svnserve9六 将svnserve设置为系统服务91,安装svnservice92,删除服务93,配置服务是自动启动10致谢10前言目前网络上有很多的关于svn安装与权限设置的文章(基于SVN自带的svnserve),但是如果您像我一样按照那些文章来进行我们的subversion的安装和设置会发现有很多问题,可以说每篇文章都有这样或那样的错误。或者断章取义,或者根本就没亲自验证就写出来,贴到网络上,然后又有很多人直接转帖到自己的博客,空间中。这就造成了网络上大量的权限设置文章根本是无法正确设置权限的。在学习那些“权限设置精细”文章的过程中,给我们的身心都造成了严重的伤害。至少给我幼小的心灵造成了创伤。每次上网搜到一篇文章都觉得这次总该可以了吧,结果全盘照抄了,还是不行。累的我真的想放弃了。还好后来有一篇文章给了我启发,那是我找过的唯一一篇有我需要的细节的文章。这篇文章是专门写给像我一样的菜鸟,而又因为这样或那样的原因需要了解svnserve权限设置的人,也就是“侏儒”。如果您对windows比较了解,也就是身高在1.5米以上的,偏矮的人,正常人,比较高的人,非常高的人,或者像姚明一样的巨人的话,那你会发现此篇文章极尽啰嗦,繁琐。对此我深表歉意!一 项目结构亿联网络技术有限公司是一家专注于网络通讯产品的研发及销售的高科技企业。目前,公司主要致力于VoIP网关、VoIP终端、WIFI和IP-PBX等网络通讯产品的开发、生产和销售。产品以出口为导向,95%产品远销英国、德国、美国、韩国等50多个国家与地区,拥有一批诸如Nortel、FranceTelecom, Skype等优质合作伙伴资料库的目录结构如下:ref 项目名称department 存放每个部门资料 hardware 硬件资料目录 embedded 嵌入式资料目录 PC PC软件资料目录com研发部均可读的公共资料temp 临时文件人员情况与权限需求分析:Stonelu,公司副总,研发中心最大的“官”,毫无疑问当然需要访问所有的目录了,虽然可能他不太有时间查看那些个资料,但是权限还是得给人家设在那的嘛,谁叫人家是老大呢。 Nancy,项目经理,研发中心的第二把交椅,访问所有目录,查看项目进度也是理所当然的,对整个资料库具有读写权限。 wxz,硬件部经理,需要对硬件部目录有读写权限。 Ly,硬件部职员,对硬件部资料可读写。 wwt,嵌入式经理,对嵌入式可读写。 tjy,嵌入式员工,对嵌入式资料可读写。 azm,PC部经理,对PC资料库可读写。 ljp,PC部员工,对PC部可读写。 Com文件夹下的文件,nancy可读写,其余员工可读。 Temp文件夹下的文件,全体员工可读写。二 建立版本库在服务器D盘目录下(也可在本机,并且盘符可自由选择),新建svn文件夹,再在svn下新建ref文件夹。(文件夹名称可自行设定)然后,创建版本库:第一种方式:在DOS命令行中运行svnadmin create D:svnref第二种方式:鼠标右键单击ref,选择TotoiseSVN-在此创建版本库.进行创建,默认“本地文件系统(FSFS)”,点击确定,完成创建。三 配置权限编辑版本库D:svnrefconfsvnserve.conf文件,如下:generalanon-access = none#保证只有认证用户可以访问,即关闭匿名访问auth-access = write#通过认证的使用权限password-db = passwd#指定了用户密码文件authz-db = authz#指定了授权文件realm = ref#客户端凭证缓存编辑版本库D:svnrefconfpasswd文件,如下:usersstonelu = stonelu # ”=” 前为帐号,后为密码nancy = nancywxz = wxzly = lywwt = wwttjy = tjyazm = azmljp = ljp编辑版本库D:svnrefconfauthz文件,授权如下:groupsg_vip = stonelug_manager = nancyg_hardware = wxz,lyg_embedded = wwt, tjyg_pc = azm,ljpg_common = stonelu,wxz,ly,wwt,tjy,azm,ljp/ #根目录的权限* = #全体员工对根目录无权限g_manager = rw #项目经理对根目录具有读写权限g_vip = r/ref/g_manager = rwg_vip =r* = /ref/department/hardwareg_manager = rwg_hardware = rwg_vip = r* #可加可不加,因为不显示设定权限,即表示没权限/ref/department/embeddedg_manager = rwg_embedded = rwg_vip = r/ref/department/pcg_manager = rwg_pc = rwg_vip = r/ref/comg_manager = rwg_common = r/ref/tempg_manager = rwg_common = rw附: 1. #号表示注释。以上每个文件夹权限设置中对每个组与用户的权限设置顺序可调换,如:根目录的设置也可以写成:/g_manager = rwg_vip = r* 2. 文件夹权限具有向后继承,但不具有向前效应。简言之就是权限具备继承性,任何子目录,均可继承其父目录的所有权限,除非它自己已被明确设置了其他的权限。如本例:为g_manager设置了根目录“/”的读写权限,则根目录下的文件g_manager均具有读写权限。但是在该目录的下一级目录,如:“/ref/”为其他用户设置了权限,把默认访问权限设为了可读,(在根目录,默认是不可访问)必须也加上g_manager rw,否则g_manager在“/ref/”中跟其他用户一样也是可读权限。3. 我们发现wwt这个帐号同时存在“g_embedded”和“g_common”两个分组里面,这是因为 svnserve.exe 允许我们这样设置。4. /ref/ 表示这个目录结构的相对根节点,或者说是ref资料库的根目录。设置权限时“”表示组名,设置的是整个组的权限,如果该组只有一个用户,则可将“组名”替换为“用户名”如:你可以将“g_manager = rw”替换为“nancy = rw” 。5. 如果设置了可读写权限,则在稍后的操作中,我们可以从版本库更新我们的工作拷贝,也可以提交修改;如果设置了可读权限,则只有更新工作拷贝,不能提交修改,如果您提交了,将会得到“Access deny”警告,也就是禁止提交修改。6. 如果一个目录下有多库,则文件夹目录写法有点不一样。如本例中的/ref/,应该改写为ref:/。但是要是您也是像本例这样只想创建单库单项目的话,则按上面的操作即可。7. 如果像本例这样的单库单项目也照网络上大多数的文章那样,把目录写成ref:/,则会造成严重的权限问题。主要的问题有:1. 如果根目录没设可读权限,则对所有文件都没可读权限.2. 而如果对根目录设置了可读权限,则对根目录下的所有文件都具有了可读权限。这样就造成了普通员工的权限只有两种可能:要不对所有文件都没有权限;(这肯定不是我们要的)要不就对整个项目库具有可读权限。(造成严重的安全漏洞,毕竟某些关键内容,我们并不希望太多人看到)本人在设置权限时就因这个问题而浪费了很多时间,伤透了脑筋。四 导入项目版本库在本机D:temp目录下,建立好上述资料库的目录结构,鼠标右键单击temp,选择TotoiseSVN-导入,如下图所示:弹出对话框:1. 版本库在本机上安装,并且假设你电脑的IP地址为:192.168.0.125(当然这个是我在公司的IP地址),则在“版本库URL:”中输入“svn:/localhost/ref”或“svn:/192.168.0.125/ref”等效。2. 版本库在服务器上安装:假设服务器的IP地址为:192.168.1.2,则在地址栏中输入:svn:/192.168.1.2/ref 。在“最新信息”里,可依您的兴趣填写,你可写您喜欢的女孩的名字,如果刚好是您心情郁闷时,也可写”F”开头的英文词。当然如果是直接拿来版本控制,则最好填写”import”之类比较切合实际的词组或语句。如下图:此时你可以打开IE或文件夹,在地址栏中输入下面的任意一个:svn:/192.168.0.125/ref svn:/127.0.0.1/ref svn:/localhost/ref 此时你可以打开IE或资源管理器的地址栏,甚至运行中输入上述三种方式之一,即可打开如下对话框: 输入用户名和密码,可勾上“保存认证”,免去每次输密码的麻烦,得到如下对话框:上图是对ref目录有权限的用户显示出来的结果,如果您对ref目录没有可读权限,则结果不一样。如:您输入的用户是ljp,则显示如下: 说明ljp对ref没有可读权限。当然了,ljp用户对ref/department/pc下的文件是有权限的,我们可在上图的URL中的ref后面加上/department/pc,或者关闭上图,在地址栏中输入:svn:/127.0.0.1/ref/department/pc再输入密码,显示如下:我们可在“pc”点右键,选择“创建文件夹”,输入文件名“test”,可以看到test文件夹已添加到pc下面。刚好也验证了我们设置的权限是正确的。Ljp能对pc下的文件进行读写操作。五 启动svnserve打开“开始运行”输入“cmd”,打开命令行窗口,输入:svnserve d r D:svnref,即可启动svnserve。注意不要关闭命令行窗口,关闭窗口也会把svnserve停止。这样每次开机都得手动启动服务。“那有没有更好的办法呢?”(好白痴的问题)。如果想省去每次开机都得自己手动启动svnserve的麻烦,我们可以把它设为系统服务。六 将svnserve设置为系统服务1,安装svnservice在Windows NT中(包括Windows XP, Windows 2000, Windows 2003 Server)本身包含了一个安装服务的工具,叫做Service Control,也就是sc.exe。例如我的Subversion安装在D:Subversion,版本库在D:svnroot,而我希望对应的Subversion服务名为svnservice,安装这个svn服务的命令就可以这样写: sc create svnservice binpath= D:Subversionbinsvnserve.exe -service -r D:svnroot displayname= SVNServicedepend= Tcpip请注意,因为便于察看,上面的命令分为多行,但在实际执行时应该在一行里。另外,在以前启动svnserve时会使用-d选项,也就是守护进程模式,在这里不能使用,会导致服务无法启动。同样,-i和-t选项也不能使用。在命令行窗口执行完这个命令之后,服务还没有启动,你可以继续运行net start svnservice启动这个服务,然后使用net stop svnservice停止服务。另外还有两点需要小心处理。首先,如果路径中包括空格,一定要用“”处理“”号,例如上面的例子中如果svnserve.exe在“c:program filessubversion”中,则命令应该写为“binpath= c:program filessubversionbinsvnserve.exe”(“”中的内容),整个命令如下,红色部分是改变部分:sc create svnservicebinpath= D:program filesSubversionbinsvnserve.exe -service -r D:svnroot displayname= SVNServicedepend= Tcpip其次,sc对选项的格式还有要求,例如“depend= Tcpip”不能写为“depend = Tcpip”或“depend=Tcpip”,也就是“=”前不能有空格,而后面必须有空格。2,删除服务如果服务安装的有问题,你可能需要删除服务。要删除前面添加的服务,只需要运行sc delete svnservice,svnservice就是我们创建服务时使用的名字。3,配置服务是自动启动默认情况下安装的服务不会随Windows的启动而启动,为了使svn服务能够随Windows启动而启动,需要修改一下sc create命令(首先要删除),增加start= auto选项: sc create svnservice binpath= D:Subversionbinsvnserve.exe -service -r D:svnroot displayname= SVNService depend= Tcpip start= auto 当然你也可以使用图形化的工具修改服务的属性,你可以在“开始-运行.”中执行services.msc,然后在界面中修改。致谢本文的完成是建立在各位前辈的基础上的,在此我要感谢写过svn安装,设置

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论