设为首页 收藏本站
查看: 1169|回复: 0

[经验分享] Linux下SVN Server 的使用及权限配置权限

[复制链接]

尚未签到

发表于 2018-10-22 06:21:56 | 显示全部楼层 |阅读模式
  转载自:http://www.iyunv.com/Article/201407/314503.html
  Linux下SVN Server 的使用及权限配置权限
  
  一、安装SVN
  Linux 下可以直接通过如下命令直接获取svn server:(我使用的服务器系统为Debian 7.5 稳定版)
  apt-get install subversion
  安装完成后,可通过svnserve --version 查看安装的版本,我所使用的svn server 版本为1.6.17:
  二、创建代码库
  创建库(以test库为例):
  sudo svnadmin create /home/user/svn/test
  这样,一个简单的代码仓库就创建完成了。
  接下来启动svn服务:
  svnserve -d -r /home/user/svn/
  然后client端就可以通过“svn://ip.ip.ip.ip/test”来访问svn了。
  三、权限配置
  进入test目录之后,你会看到里边有个“conf”文件夹,进入conf文件夹,ls一下,你会看到有三个文件authz、passwd、svnserve.conf三个配置文件,其中authz用来配置用户访问权限的,passwd用来配置用户及密码,svnserve.conf是对整个svnserve的进程进行配置的。
  简单的说,就是svnserve.conf中打开四句,
  passwd,写上用户名和密码
  authz,建组,并对组设置rw权限
  终止进程,重启
  使用nano或者vi工具打开svnserve.conf,找到“# password-db = passwd”,这一句是指定当前库所对应的用户配置文件的,我们需要把最前边的“#”和空格删掉;
  找到“# anon-access = none”
  “# auth-access = write”这两句,第一句是用来控制匿名访问的,我们直接给它设置成none就好了,第二句用来控制经过验证允许访问库的用户的权限,这里我们设置成write就可以,当然,也要把前边的“#”和空格都删掉;
  找到“# authz-db = authz”,这一句是用来指定当前库对应的用户权限配置文件的,我们把最前边的“#”和空格都删掉,这样库在运行的时候要根据authz这个配置文件去匹配用户权限。
  到这里,我们的所有配置文件都可以起到他们应有的作用了,接下来就是对细节的具体配置:
  对于passwd:
  很简单,在最后直接添加用户就好,格式为:“用户名 = 密码”,例如:“test_user = 12345”
  对于authz:
  主要是分为两类配置:[groups]类配置、以[repo:/]开头的配置。
  1.[groups]的配置很容易理解,就是群组。格式也比较简单,即“group_name = user1,user2,user3”,如果有多个用户,可以直接通过“,”的方式拼接就可以了,例如:
  [groups]
  # 经理
  g_manager = michael
  # 北京办人员
  g_beijing = scofield
  # 上海办人员
  g_shanghai = lincon
  # 总部一般员工
  g_headquarters = rory, linda
  2.以[repo:/]开头的配置,上边的[gourps]配置是用来划分用户分组的,那么以[repo:/]开头的配置就是用来具体的划分用户读写权限的了,其中repo是你的库的名字,即上边我们通过“svnadmin create /home/user/svn/test”命令所创建的库“test”,下边我们直接用例子来说明它的使用方法:
  对项目根目录做限制,该目录只允许经理才能修改,其他人都只能拥有读的权限:
  [test:/]
  @g_manager = rw
  * = r
  “[test:/]” 表示这个目录结构的相对根节点,或者说是 test 项目的根目录。这里的 “@” 表示接下来的是一个组名,不是用户名。因为目前 g_manager 组里面只有一个 michael,你当然也可以将 “@g_manager = rw” 这一行替换成 “michael = rw” ,表达的意义完全一样。
  “*” 表示“除了上面提到的那些人之外的其余所有人”,也就是“除了部门经理外的其他所有人”
  “* = r” 则表示“那些人只能读,不能写”。
  对于根目录下边的子目录,其权限配置方式是相同的,是需要把地址指明就可以了,即[test:/folder1/folder2],这里就不赘述了。
  注意:配置中我们可能会遇到“* =”这样的情况,他的目的是用来隔断权限的继承性。如果在某一级目录的权限配置里加上这一句,则表明除了该配置中的用户之外的其他用户完全没有这一级目录的任何权利,既不可读,更不可写。
  当所有的三个文件全都配置完成之后,接下来就是要让它们都生效了,首先我们需要确保svnserve服务已经停掉了,可以通过“ps aux|grep svn”的方式来查看svn时候还在运行,如果还在运行的话直接通过“kill -9 [svn进程编号]”的方式把它停掉就可以了,然后在通过命令“svnserve -d -r /home/user/svn/”来重新启动svn服务,以上配置的三个文件就都起作用了!
  然后client端就可以通过“svn://ip.ip.ip.ip/test”来访问svn了。
  ---
  Linux下SVN Server 的使用及权限配置权限
  SVN用户权限配置
  repository目录下的conf有三个文件:
  svnserve.conf、passwd、authz,依次修改
  你可以直接删除默认的svnserve.conf文件,然后使用下面的配置:
  # vi svnserve.conf
  [general]
  anon-access = none
  auth-access = write
  password-db = passwd
  authz-db = authz
  realm = Test
  说明:
  anon-access = none #不允许匿名用户访问
  auth-access = write #通过验证的用户可以读和写
  password-db = passwd #用户保存文件
  authz-db = authz #权限管理文件
  realm = Test#仓库名称
  设置用户账号。你可以直接删除默认的passwd文件,然后使用下面的配置:
  # vi passwd
  [users]
  linzuxin = linzuxin
  说明:
  [users] #是必须的,标记为用户配置开始
  linzuxin = linzuxin # linzuxin 是用户名 , linzuxin 是密码。注意,是明文密码
  往后所以仓库的用户都在这里记录就可以了。至于那个用户,允许访问那个仓库,在权限管理里限制。
  设置用户权限。你可以直接删除默认的authz文件,然后使用下面的配置:
  # vi authz
  [groups]
  devops = linzuxin
  [/]
  @devops = rw
  说明:
  devops = linzuxin #devops是组名,linzuxin是用户名,归为这一组,可以有多个用户,用逗号隔开
  @devops = rw #说明devops组对所有目录都有读写权限
  ---
  实际中:
  vi /var/local/**.com/conf/passwd
  vi /var/local/**.com/conf/svnserve.conf
  # find / -name svn
  usr/bin/svn
  ps aux|grep svn
  kill -9 4727
  svnserve -d -r /var/local/
  ---
  举例:想给svn增加一个前台用户。对某几个目录具有rw权限。
  先进入,cd /var/local/*****/conf
  (此处*****是我们的域名)
  1.vi svnserve.conf
  
  authz-db=authz
  2.vi authz
  [groups]
  devops = whb,zy,gc,xhc,jjx,wjh
  front = ml
  [/]
  @devops = rw
  [/front]
  @front = rw
  [/paimai/public]
  @front = rw
  [/paimai/template]
  @front =rw
  3.ps aux|grep svn
  4.kill -9 4727
  
  5.svnserve –d –r /var/local/****.com
DSC0000.png

  6.报这个错:
DSC0001.jpg

DSC0002.jpg ----

  svn: No repository found in 'svn:..解决方案
  svn服务未启动或者是启动的时候未指定svn仓库路径
  使用如下命令:
  sudo svnserve -d -r /var/svn
  后面的目录是你svn服务的仓库路径
  另外要使用sudo取得管理员权限,否则可能在提交代码的时候出现权限问题
  7。
DSC0003.jpg

  
  8.项目里,增加
  front
  
DSC0004.png

  
  就成功了!
  
  有一次,SVN update 发生冲突了。提示Cleanup。
  仍不成功。原来没有点:Break locks.
DSC0005.jpg

  ---
  虽然折腾了好几次,在实际中,还是会出现一些问题。
  我在配置yi.**网站时
  开始,连不上,是服务器没开放3690端口。
  看到:
  iptables -I INPUT -p tcp --dport 3690 -j ACCEPT (加这句有用,临时开放)
  #vi /etc/sysconfig/iptables (永久开放)
  添加以下语句
  -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT(网上这么写,但会报错)
  后来,改写为:
  -A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT(可以)
  重启iptables
  #service iptables restart
  再按以上去配置。三个配置文件都要改。后面要重启。注意目录。
  如果是:svnserve -d -r /home/user/svn/
  然后client端就可以通过“svn://ip.ip.ip.ip/test”来访问svn了。
  如果写成:svnserve -d -r /home/user/svn/test
  client端就可以通过“svn://ip.ip.ip.ip/”来访问
  客户端清除密码:Settings->Saved Data
  客户端修改URL:Relocate


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-624635-1-1.html 上篇帖子: 删除已配对的View Security Server、View Replica Server 下篇帖子: 根据sql的hash_value查看sql的正直执行计划
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表