Subversion ----> svnserve.conf / authz / passwd / hooks-env.tmpl <<翻译笔记>>
svnserve.conf
假如你使用这个文件去允许访问这个仓库,那么这个文件控制着svnserve后台进程的配置。(但是如果你只是允许通过http和/或者 file:URLs,则这个文件就不起作用了。)原文是irrelevant,中文是不相干,无关的意思,这里笔者将其意译为不起作用。
可以通过访问http://subversion.apache.org/获取更多信息。
[general]
anon-access和auth-access两个选项分别控制着访问仓库的未经身份验证的用户和已认证的用户。
它们的有效值是write,read和none。
把值设置成none,结果等价于禁止读和写两种操作。
对仓库的访问权限,read允许只读访问权限,write允许完整的读和写的访问权限。
下面的示例配置是默认的配置,指定匿名的用户对仓库只有读的访问权限,然而已经认证的用户对仓库拥有读和写的访问权限。
anon-access = read auth-access = write
password-db选项控制着密码数据库文件的位置。除非你以“/”开头指定一个新的路径,该文件的路径是相对于包含这个配置文件(笔者注:该配置文件是指svnserve.conf)的目录。
如果SASL被激活可用,那么该文件(笔者注:该文件是指passwd)将无效。注释掉下面的一行表示使用默认的密码文件。
password-db = passwd
auth-db选项控制着基于路径的访问控制的认证规则(文件)的位置。除非你以“/”开头指定一个新的路径,该文件的路径是相对于包含这个配置文件(笔者注:该配置文件是指svnserve.conf)的目录。指定的路径可能是仓库的相对路径URL(^/)或者Subversion 仓库的文本文件的绝对文件路径(file://)。如果你不指定一个authz-db的值,基于路径的访问控制将无效。注释掉下面的一行表示使用默认的认证文件。
authz-db = authz
groups-db选项使用组定义控制文件的位置,并允许分开维护组与授权规则。 groups-db文件的格式与authz-db文件的格式相同,并且应包含带有组定义的单个[groups]部分。 如果启用该选项,则authz-db文件不能包含[groups]部分。 除非指定以/开头的路径,否则文件的位置相对于包含此文件的目录。指定的路径可能是仓库的相对路径URL(^/)或者Subversion 仓库的文本文件的绝对文件路径(file://)。 默认情况下不使用此选项。
groups-db = groups
此选项指定仓库的身份验证领域。 如果两个仓库具有相同的身份验证领域,则它们应具有相同的密码数据库,反之亦然。 默认领域是仓库的uuid。
realm = My First Repository
force-username-case选项使svnserve对用户名进行大小写标准化,在与上面配置的authz-db文件中的授权规则进行比较之前。 有效值为“upper”(大写用户名),“lower”(小写用户名)和“none”(用于比较用户名,不进行大小写转换,这是默认行为)。
force-username-case = none
hooks-env选项指定钩子脚本环境配置文件的路径。 如果指定了绝对路径,则此选项将覆盖每个仓库的默认值,并可用于在单个文件中为多个仓库配置钩子脚本环境。 除非指定绝对路径,否则文件的位置相对于包含此文件的目录。
hooks-env = hooks-env
[sasl]
此选项指定是否要使用Cyrus SASL库进行身份验证。 默认值为false。 启用此选项需要使用Cyrus SASL支持构建svnserve; 运行'svnserve --version',检查并查找'Cyrus SASL身份验证可用'的字样。
use-sasl = true
这些选项指定希望SASL提供的安全层的所需强度。 0表示不加密,1表示仅完整性检查,大于1的值与加密的有效密钥长度相关(例如128表示128位加密)。 以下值是默认值。
min-encryption = 0 max-encryption = 256
passwd
此文件是svnserve的示例密码文件。 它的格式类似于svnserve.conf的格式。 如下面的示例所示,它包含一个标记为[users]的部分。 每个用户的名称和密码如下,每行一个帐户。
[user]
# harry = harryssecret # sally = sallyssecret
authz
此文件是svnserve的示例授权文件。 其格式与mod_authz_svn授权文件的格式相同。 如下所示,每个部分定义路径的授权和部分名称指定的(可选)仓库。
授权如下。 授权行可以参考:
- 单个用户,
- 在特殊[groups]部分中定义的一组用户,
- 在特殊[aliases]部分中定义的别名,
- 所有经过身份验证的用户,使用“$authenticated”令牌,
- 只有匿名用户,使用'$anonymous'令牌,
- 任何人,使用'*'通配符。
可以通过在规则前加上“〜”来反转匹配。 规则可以授予读('r')访问权限,读写('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 # [/foo/bar] # harry = rw # &joe = r # * = # [repository:/baz/fuz] # @harry_and_sally = rw # * = r
hooks-env.tmpl
此文件是示例钩子脚本环境配置文件。默认情况下,挂钩脚本在空环境中运行。 如下所示,每个部分定义特定钩子脚本的环境变量。 [default]部分定义了所有钩子脚本的环境变量,除非被特定于钩子的部分覆盖。
此示例为所有钩子脚本配置UTF-8语言环境,以便可以将特殊字符(如变音符号)打印到stderr。 如果UTF-8与mod_dav_svn服务器一起使用,则httpd.conf中的SVNUseUTF8选项也必须设置为“yes”。 使用svnserve,svnserve进程的LANG环境变量必须设置为此处给出的相同值。
[default] LANG = en_US.UTF-8
这为预提交钩子设置了PATH环境变量。
[pre-commit] PATH = /usr/local/bin:/usr/bin:/usr/sbin
笔记:
去掉svnserve.conf中anon-access的注释,把默认值设置成none,然后再checkout,会报错
--listen-port选项修改svnserve监听端口,例如,svnserve -d -r /opt/svn --listen-port 12050
对于-r的理解。
-r指明了一个虚拟的根目录,在客户端进行co时,指出的位置都是相对于这个根目录。
例如:svn://192.168.1.103:12050/myrepo中,12500后的“/”指的是:/opt/svn
拼起来就是:/opt/svn/myrepo!
如果有多个svnserve服务器,可以设置多个svn虚拟根目录,一个svnserve进程对应一个svn虚拟根目录,当然,每个进程监听的端口是不一样的。
svnserve.conf的anon-access和password-db结合使用实现用户名登录认证
修改conf/passwd文件实现添加svn账户:
[user]
用户名 = 密码
修改conf/authz文件设置用户对当前svn库拥有读写权限:
[/]
用户名 = rw
参考博客:
https://blog.csdn.net/test1280/article/details/70655251
idea 使用svn???
前提是开启svn 服务器,右击项目 -> Subversion -> share directory...
idea 使用git???
Subversion ----> svnserve.conf / authz / passwd / hooks-env.tmpl <<翻译笔记>>的更多相关文章
- 【转】SVN添加文件时的错误处理:...\conf\svnserve.conf:12: Option expected
转载地址:http://www.linuxidc.com/Linux/2014-09/106683.htm 安装完SVN服务器,添加完用户权限后,准备将本地的项目add到服务器上时,报"C: ...
- svnserve.conf - snvserve 的仓库配置文件
SYNOPSIS 总览 repository-path/conf/svnserve.conf DESCRIPTION 描述 每个代码仓库都有一个 svnserve.conf 文件来控制 svnserv ...
- SVN svnserve.conf: Option expected 的解决方法 以及 Authorization failed 的解决方法
① 在 CentOS 6.5 上安装配置了 SVN,在本地 Checkout 的时候报错: 显示:/www/svnroot/webfile/conf/svnserve.conf:12: Option ...
- svnserve.conf: Option expected的问题解决方法
经常有新手配置基于svnserve的subversion服务器后,在客户端访问subversion版本库时出现这个错误:svnserve.conf:12: Option expected为什么会出现这 ...
- svn错误 svnserve.conf:12: Option expected解决办法
经常有新手配置基于svnserve的subversion服务器后,在客户端访问subversion版本库时出现这个错误:svnserve.conf:12: Option expected为什么会出现这 ...
- svn服务器 vim 修改 authz passwd 添加用户
进入svn服务器 vim 修改 authz passwd 添加用户 SVN服务器之------2,配置PhpStorm连接SVN服务器(其他IDE大同小异) - 学到老死 - 博客园 https:// ...
- ubantu svn 安装、卸载、配置hooks
1.安装之前先看是否已经安装了 svn -version 若已经安装会有以下提示,若没有安装,进行下一步 若想卸载了执行命令 ( sudo apt-get remove --purge subvers ...
- centos7安装并配置svn(转)
一.安装 1. 通过 yum install subversion来安装 2. 查看svn版本 使用: svnserve –version 3. 创建svn版本库 使用命令: svnadmin cre ...
- CentOS搭建Nginx+Subversion环境(包括多个版本库的配置)
Apache Subversion(简称SVN,svn) 因为某种原因我们需要用Nginx作为Subversion的http前端,但目前没有现成的Nginx+Subversion搭配方式. 而Subv ...
随机推荐
- Oracle sql function LISTAGG
select business_unit, voucher_id, listagg( vat_txn_type_cd, ',') within group (order by business_uni ...
- BIOS 中断向量表
中断 描述 INT 00h CPU:除零错,或商不合法时触发 INT 01h CPU:单步陷阱,TF标记为打开状态时,每条指令执行后触发 INT 02h CPU:非可屏蔽中断,如引导自我测试时发生内存 ...
- 文本框defalutValue的使用
以下页面中的文本框的值无论怎么改变,点击“原始值”按钮始终会得到初始页面的时候的值,即“ffffffffffffff” <!DOCTYPE html> <html> <h ...
- Qt3D 5.9 and future
2017-05 http://blog.qt.io/blog/2017/05/24/qt3d/ Qt3D future 5.9 Use Qt Quick or QPainter to render i ...
- Typescript 和 Javascript之间的区别
TypeScript 和 JavaScript 是目前项目开发中较为流行的两种脚本语言,我们已经熟知 TypeScript 是 JavaScript 的一个超集,但是 TypeScript 与 Jav ...
- Selenium WebDriver的工作原理
先通过一个简单的类比说个好理解的,这个比喻是我从美版知乎Quora上看到的,觉得比较形象.好理解拿来用用. 我们可以把WebDriver驱动浏览器类比成出租车司机开出租车. 在开出租车时有三个角色: ...
- Java EE开发技术课程第五周(Applet程序组件与AJAX技术)
1.Applet程序组件 1.1.定义: Applet是采用Java编程语言编写的小应用程序,该程序可以包含在HTML(标准通用标记语言的一个应用)页中,与在页中包含图像的方式大致相同.含有Apple ...
- 同事问如何判断同花顺,我用javascript的二维数组写了个简易demo
有个前同事在群里问如何判断是否为同花顺我用javascript的二维数组写了个简易demo. <!DOCTYPE html> <html> <body> <s ...
- 作业(更新ing)
暴政警告 2019.4.19 1.YBT完成 7 道题目(1)广搜 3 道 (2)最短路 4 道 2.写至少 2 篇博客 (据说集中精力,一个上午/下午就能写完) 1. 一个 又一个 球细胞数目 ...
- 如何在Github创建repository
第一步:登陆Github,点击new repository 第二步:输入相应内容创建 第三步,创建完成,如下.