TortoiseSVN使用-授权访问

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时计算 Flink 版,1000CU*H 3个月
简介: TortoiseSVN使用-授权访问

image.png
@[toc]

3.4.6 授权访问

总结:

  • 如果是匿名访问(就是不用输入用户名+密码的访问方式),请只开启anon-access = write
  • 如果授权访问,请先设置anon-access = none,然后打开3个:auth-access = write、password-db = passwd、authz-db = authz

注意:必须设置anon-access = none,否则会代码提交报错失败。

①要设置授权访问就需要创建用户,并为用户设定权限

打开授权访问的配置

[1]打开 D:\DevRepository\Subversion\CRM\conf\svnserve.conf (svnserve.conf文件: 核心配置文件)

image.png

image.png

[2]将第 19 行 anon-access = write 注释掉:# anon-access = write

表明该版本库不接受匿名访问

[3]将第 20 行# auth-access = write 注释打开:auth-access = write

表明该版本库使用授权访问

[4]将第 27 行注释打开:password-db = passwd

表明使用同目录下的 passwd 文件保存用户信息

[5]将第 36 行注释打开:authz-db = authz (authz文件: 权限认证相关)

[6]打开 passwd 文件创建用户 (passwd文件: 用户密码相关)

tom = 123456
jerry = 123456
nick = 123456
tester = 123456

image.png

[7]打开 authz 文件:#后面注释的是例子

image.png

[/]表示该仓库下的所有路径

[CRM:/oneLayer/1]中CRM为仓库名,表示该仓库下的“/oneLayer/1”路径

@developer= rw 表示developer该组的所有成员访问权限为可读可写,设置组权限需要用@符号表示,而直接设置用户权限则不需要添加@

[CRM:/oneLayer/1]

jerry = rw,表示jerry 用户只拥有CRM仓库下/oneLayer/1路径下的所有读写权限访问权限,而/oneLayer/1前面的路径则没有访问权限

*=因为后面没有写访问权限,所以表示其他人没有访问权限

<1>创建用户组

[groups] 
# harry_and_sally = harry,sally 
# harry_sally_and_joe = harry,sally,&joe 
@developer = rw

<2>指定路径,给用户和用户组授权

# [/foo/bar] 
# harry = rw 
# &joe = r 
# * =屏蔽那些未设定的用户,让它们没有任何权限 
[/]
@developer = rw
tester = r
* =
[CRM:/oneLayer/1]
jerry = rw

[CRM:/oneLayer/2]
nick = rw

<3>权限的继承性:父目录设置的权限,对子目录同样有效——除非子目录进行 了更为具体的设定(这个没验证过,需博主自己验证下)

[/subDir] 
userOther = rw 
* =

这个例子表示当前版本库下的 subDir 目录只有 userOther 有读写权限,其它用户 无任何权限

模拟登录tom用户,验证能否提交成功。答案是可以提交。

image.png

模拟登录测试用户tester,验证能否提交成功。答案是不可以提交,因为权限不够。

image.png

image.png

做一个小测验,需求:假设我的项目结构如图,假设每一个包含text.txt的文件夹都是一个真实的项目,且存在多层级结构,我现在想实现tom用户具有CRM路径(目前CRM路径就是SVN的某一仓库的根目录)下的所有读写访问权限,而jerry用户只CRM/oneLayer/1路径下的读写权限,而nick用户只有CRM/oneLayer/2路径下的读写权限,而tester测试用户只有读权限没有写权限。

  • 这个项目想模拟的就是新建的tom用户具有管理员权限,jerry和nick用户只有部分路径的访问读写权限,而测试用户只有读没有写的权限。对应的真实场景就是:我自己搭建了SVN,我自己创建管理员账户并授权,但是新建别的用户我想控制权限,让他们只有自己项目的访问权限,而别人的项目没有拉取代码的权限,想演练下如何实现。

image.png

  • 前提说明:目前CRM路径就是SVN的某一仓库的根目录,就是对应auth配置文件中的[/]

  • passwd文件

    tom = 123456
    jerry = 123456
    nick = 123456
    tester = 123456
    
  • auth文件

    [groups]
    # 控制新增用户权限
    [/]
    @developer = rw
    tester = r
    * =
    [CRM:/oneLayer/1]
    jerry = rw
    
    [CRM:/oneLayer/2]
    nick = rw
    
  • 演练场景1,验证tom用户能否checkout下载/CRM/oneLayer/1下的项目oneLayerProject,如图,答案是可以成功下载,说明它拥有/路径下的所有权限。

image.png

  • 演练场景2,验证nick用户能否checkout下载/CRM/oneLayer/2下的项目twoLayerProject,如图,答案是可以成功下载,说明它拥有/oneLayer/2路径下的所有权限。

image.png

  • 演练场景3,验证nick用户能否checkout下载/CRM/oneLayer/1下的项目oneLayerProject,如图,答案是不可以成功下载,说明它没有/oneLayer/1路径下的所有权限。

image.png

本人其他相关文章链接

1.Windows下版本控制器(SVN) - 1、开发中的实际问题+2、版本控制简介
2.Windows下版本控制器(SVN)-验证是否安装成功+配置版本库+启动服务器端程序
3.Windows下版本控制器(SVN)-TortoiseSVN使用+权限配置+合并深度介绍+分支介绍
4.Windows下版本控制器(SVN)- 配置版本库
5.Windows下版本控制器(SVN)-启动服务器端程序
6.TortoiseSVN使用-授权访问
7.TortoiseSVN使用-TortoiseSVN更换或重置登录用户
8.TortoiseSVN使用-合并分支代码
9.TortoiseSVN使用-权限配置
10.TortoiseSVN使用-合并深度介绍

目录
相关文章
|
1月前
|
存储 缓存 JSON
商品图片批量上传接口设计与实现
本文介绍如何使用Python Flask实现商品图片批量上传接口,涵盖设计、验证、存储及错误处理。支持多文件上传、格式大小校验,并提供完整代码与性能优化方案,助力电商或CMS系统高效管理图片。
132 0
|
开发工具 git C++
【git 实用指南】git下载、拉取 代码
【git 实用指南】git下载、拉取 代码
3117 2
|
Ubuntu Linux KVM
分享一些OpenStack的qcow2格式实例镜像
分享一些OpenStack的qcow2格式实例镜像
14306 0
分享一些OpenStack的qcow2格式实例镜像
|
安全 Shell 网络安全
设置 码云 SSH 推送和拉取代码
设置 码云 SSH 推送和拉取代码
497 0
|
弹性计算 固态存储 大数据
2024阿里云服务器租用价格表(一年/按月/按小时报价明细)
阿里云服务器2024年最新租用价格表显示,轻量应用服务器2核2G3M带宽一年82元(约6.8元/月),2核4G4M带宽轻量服务器一年298元。新老用户共享99元一年的2核2G3M带宽ECS经济型e实例服务器与199元一年的企业专享2核4G5M带宽ECS u1实例服务器优惠。4核16G10M带宽游戏服务器70元/月,8核32G10M带宽160元/月。GPU服务器如gn6v和gn6i等提供新用户专享折扣。续费折扣方面,续费一年享有7.5折,续费五年则有3折优惠。按小时计费的云服务器ECS实例中,如ecs.u1-c1m4.large(2核8G)每小时0.45元。
30700 17
|
SQL 关系型数据库 MySQL
mysql和polardb
mysql和polardb
3949 2
|
消息中间件 监控 安全
探究如何在Linux系统中修改进程资源限制:四种方法调整进程限制,让你的系统高效运行(包含应用层getrlimit和setrlimit API)
探究如何在Linux系统中修改进程资源限制:四种方法调整进程限制,让你的系统高效运行(包含应用层getrlimit和setrlimit API)
2304 0
|
存储 Unix Linux
分布式文件系统协议:NFS(Network File System)网络文件系统
NFS(Network File System)网络文件系统是一种分布式文件系统协议,最初由Sun Microsystems开发,并在1984年首次发布。 NFS允许不同计算机通过网络共享资源,特别是文件和目录,就像它们是本地存储的一部分一样。使用NFS的客户端可以挂载远程服务器上的文件系统,使得用户能够以透明的方式访问远程数据,实现跨多个系统的文件共享。
5066 1
|
Linux Shell
Linux系统诊断小技巧(14):启停问题之如何修复initrd损坏
initrd丢失、损坏或者没有正常工作,是导致系统启动失败比较常见的原因。 如何解决这类问题呢?重新做initrd即可。那么,具体怎么操作呢?我们讨论下。这里我们主要是围绕阿里云的实例问题展开。
3022 0
下一篇
oss云网关配置