Subversion权限

0 svn permissions

我有一个在Ubuntu服务器上运行的subversion服务器,但我确实有一些权限问题.我的主svn文件夹及其所有子文件夹和文件都具有组subversion的读/写权限以及属于该组的每个人.

我使用svn协议连接到我的svn,例如:

svn co svn://192.168.1.2/config
Run Code Online (Sandbox Code Playgroud)

现在我的问题是,当我使用我的电脑连接到SVN服务器时,我没有写/读权限.如果我设置o + r和o + w然后我可以读写,但除非设置了"其他"权限,否则svn会给我许可错误.

我应该如何在svn服务器上设置权限,以便了解我正在使用远程计算机进行连接并向我授予组权限.

谢谢.

Dav*_* W. 5

如果您正在使用该svn://协议,则读/写权限必须适用于正在运行该svnserve进程的用户.事实上,这就是为什么file://当你有多个用户时你不应该使用协议的原因...

当您使用svn://协议时,您要求svnserve进程读取和写入Subversion存储库.因此,您作为用户不需要实际的读/写权限.

实际上,您不希望除svnserve进程之外的任何人能够直接触摸您的存储库文件.标准设置是让Subversion存储库中的文件只能由正在运行Subversion服务器进程的进程的用户访问:无论是httpd或是svnserve.

要解决您的问题,请确保正在运行svnserve命令的用户拥有Subversion存储库目录树中的文件.确保所有文件和目录都设置为rwx------rwxr-xr-x.这样,除了svnserve进程之外没有人可以触摸文件.

那么,你如何指定安全性?在Subversion存储库目录中,有一个名为的目录conf.最简单的方法是配置svnserve.conf在此目录下调用的文件.您有三个部分感兴趣:

  • 关于第11行,有两行# anon-access = read# auth-access = read-write.您可以删除#行的开头以启用这两个参数.anon-access设置未登录时的访问类型.默认为读取.您可能希望将此更改为.另一种是您登录时的访问类型.您希望保留默认的读写.

  • 关于conf/svnserve.conf文件中的第20行,有一行# password-db = passed.在第11行中,您指定了登录的访问用户.现在,您要指定包含登录名和密码的文件.#从该行的开头删除以指定该 conf/passwd文件具有您的用户名和密码.passwd该目录中有一个示例文件.注意:确保此文件具有相应的权限rw-------.你不希望任何人能够打开它并看到密码!

  • 通常情况下,这就是你感兴趣的.大多数网站都说任何可以登录的人都应该能够做出改变.毕竟,如果有人弄得一团糟,你可以随时撤消它.但是,如果您想更严格地知道谁可以更改哪些文件,您希望在conf/svnserve.conf文件中的#27行周围进行操作.这看起来像# authz-db = authz.再次#从头开始删除.在conf目录中,有一个示例authz文件,向您展示如何设置谁具有对存储库特定部分的读取或读写访问权限.我强烈建议你这样做三次,也许三次.否则,你将为自己创造很多工作,让你所有的开发者都讨厌你.开发人员从一个项目转到另一个项目并不罕见.如果您严格锁定项目,以便只有某些开发人员可以写入某些项目,那么每次开发人员切换项目时您都会更改此文件,开发人员必须在他们开始工作之前等待您.轻触.轻触.