当前位置: 首页 > news >正文

群晖Nas - Docker(ContainerManager)上安装SVN Server和库权限设置问题

上次安装了Gitlab,可以参考这篇(群晖Nas - Docker(ContainerManager)上安装GitLab),今天来搞SVN服务器,废话不多说。

下载镜像

还是先下载镜像(garethflowers/svn-server),下载不了看上一篇Gitlab的文章。

在这里插入图片描述
下载完毕后,运行。

运行安装

在这里插入图片描述
容器名字好了后,下一步

在这里插入图片描述
这里我创建了一个共享文件夹专门放SVN库,对应映射路径是/var/opt/svn
端口号自定义。
然后下一步,完成。

创建库

结束后可以在运行的实例上右键鼠标点击打开终端机。

在这里插入图片描述
我们运行命令,点击新增,通过命令启动
在这里插入图片描述
然后在输入框里输入

svnadmin create /var/opt/svn/newgame

这里newgame就是库的名字。然后点击这个svnadmin按钮。

在这里插入图片描述
这里只有光标闪,看不到提示。
当你看到文件夹有数据了就创建成功了。
在这里插入图片描述

SVN项目配置

通常可以在每个库里面有个conf目录,里面可以配置用户等。
在这里插入图片描述

这里我们先说通常对于库如何设置,后面有针对多个库共享的方法。

svnserver.conf

anon-access = none
auth-access = write
password-db = passwd
authz-db = authz

anon-access是匿名用户,我们不希望访问
auth-access-登录用户我们希望write
password-db用户的密码文件路径,通常是本目录的passwd文件
authz-db详细的库设置。

全部库采用统一设置

如果所有库都要配置一次哪些人可以访问有时不方便,特别是需要建立一个人可以访问所有库,其实也很简单。
配置文件中我们可以输入路径
在上面创建库完成的截图中,我在库的根目录放了一个authz和passwd文件。
我统一在这里设置。让所有库都按照这个配置来决定用户权限。

我们使用绝对地址来读取相同文件就可以了。

password-db = /var/opt/svn/passwd
authz-db = /var/opt/svn/authz

SVN拉取项目

拉取地址为:

svn://192.168.3.18/newgame

在这里插入图片描述

关于authz的配置

authz通常可以配置组,每个组的访问权限等。
下面是个示例:

### This file is an example authorization file for svnserve.
### Its format is identical to that of mod_authz_svn authorization
### files.
### As shown below each section defines authorizations for the path and
### (optional) repository specified by the section name.
### The authorizations follow. An authorization line can refer to:
###  - a single user,
###  - a group of users defined in a special [groups] section,
###  - an alias defined in a special [aliases] section,
###  - all authenticated users, using the '$authenticated' token,
###  - only anonymous users, using the '$anonymous' token,
###  - anyone, using the '*' wildcard.
###
### A match can be inverted by prefixing the rule with '~'. Rules can
### grant read ('r') access, read-write ('rw') access, or no access
### ('').[/]
@dqmj=rw[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
dqmj=thinbug,liutao# [/foo/bar]
# harry = rw
# &joe = r
# * =[decode:/]
@dqmj = rw
# * = r[newgame:/]
@dqmj = r
# * = r

我们看到dqmj是一个组名,包含了两个用户ID,
后面的[decode:/]和[newgame:/]是两个库,对应这两个组的权限。

设置更详细的目录权限
如下:我们设定newgame里的这个路径只有dqmj的可以提交,组group2的无权拉取访问。

[newgame:/Project/DecodeUnity/Assets/ResAll/Scenes]
@dqmj = rw
@group2=

其他说明

SVN的authz和passwd修改后不用重启,直接生效的。

这里没有说http如何访问svn的问题,这个镜像本身不带http,因为使用的人比较多就采用的这个镜像。
后面有空了再补充文章。

http://www.lryc.cn/news/588419.html

相关文章:

  • k8s-高级调度(二)
  • SVN客户端(TortoiseSVN)和SVN-VS2022插件(visualsvn)官网下载
  • Kotlin Map映射转换
  • LeetCode 424.替换后的最长重复字符
  • vim扩展
  • 0-1搭建springboot+vue的教务管理系统(核心源码)
  • c++算法一
  • kali安装失败-选择并安装软件包-一步到位
  • 几种上传ipa到app store的工具
  • 深度解读virtio:Linux IO虚拟化核心机制
  • Redis7持久化
  • Gstreamer之”pad-added“事件
  • 并发编程核心概念详解:进程、线程与协程的本质与差异
  • 融合竞争学习与高斯扰动的多目标加权平均算法(MOWAA)求解多无人机协同路径规划(多起点多终点,起始点、无人机数、障碍物可自定义),提供完整MATLAB代码
  • 【抖音滑动验证码风控分析】
  • 【人工智能99问】什么是深度学习?(2/99)
  • RK3568/3588 Android 12 源码默认使用蓝牙mic录音
  • 显示器核心三要素详解:刷新率、分辨率、色深
  • PHP password_get_info() 函数
  • 渗透笔记1-4
  • Java 树形结构、层级结构数据构建
  • 【LeetCode 热题 100】94. 二叉树的中序遍历——DFS
  • 第四章 uniapp实现兼容多端的树状族谱关系图,剩余组件
  • 用基础模型构建应用(第九章)AI Engineering: Building Applications with Foundation Models学习笔记
  • GaussDB in的用法
  • Elasticsearch 9.x 升级变化
  • C++后端面试八股文
  • 【postgresql数据库实现表的树结构查询】
  • 乳化硅油市场报告:深度解析与未来趋势
  • 信息收集的基本流程