Svn 颠覆权限

Svn 颠覆权限,svn,permissions,Svn,Permissions,我有一个subversion服务器在Ubuntu服务器上运行,但我确实有一些权限问题。 我的主svn文件夹及其所有子文件夹和文件对group subversion和属于该组的所有人都具有读/写权限 我使用svn协议连接到我的svn,例如: svn co svn://192.168.1.2/config 现在我的问题是,当我使用计算机连接到SVN服务器时,我没有写/读权限。如果我设置了o+r和o+w,那么我可以读写,但除非设置了“其他人”权限,否则svn会给我权限错误 我应该如何在svn服务器上

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

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

svn co svn://192.168.1.2/config
现在我的问题是,当我使用计算机连接到SVN服务器时,我没有写/读权限。如果我设置了o+r和o+w,那么我可以读写,但除非设置了“其他人”权限,否则svn会给我权限错误

我应该如何在svn服务器上设置权限,以便它理解我正在使用远程计算机进行连接,并为我提供组权限


谢谢。

如果您使用的是
svn://
协议,则读/写权限必须针对运行
svnserve
进程的用户。事实上,这正是当您有多个用户时不应该使用
文件://
协议的原因

当您使用
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
    设置不登录时的访问类型。默认值为read。您可能希望将此更改为“无”。另一种是登录时的访问类型。您希望保留默认值,即读写

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

  • 通常,这就是你感兴趣的全部。大多数网站说,任何可以登录的人都应该能够进行更改。毕竟,如果有人把事情搞得一团糟,你总是可以把它复原的。但是,如果您想更严格地要求谁可以更改哪些文件,那么您需要在
    conf/svnserve.conf
    文件中的第27行进行修改。这看起来像是
    #authz db=authz
    。再次从开头删除
    #
    。在
    conf
    目录中,有一个示例
    authz
    文件,向您展示了如何设置对存储库特定部分具有读写访问权限的用户。我强烈建议你在做这件事之前三思而后行。否则,您将为自己创建大量工作,并使所有开发人员都讨厌您。开发人员被从一个项目拉到另一个项目并不罕见。如果您已经严格锁定了项目,因此只有特定的开发人员可以编写特定的项目,那么每次开发人员切换项目时,您都会更改此文件,并且开发人员必须等待您,然后才能完成他们的工作。轻触。轻触


如果您使用的是
svn://
协议,则读/写权限必须针对运行
svnserve
进程的用户。事实上,这正是当您有多个用户时不应该使用
文件://
协议的原因

当您使用
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
    
    svnserve -d -r /svn/repository/
    
    sudo svnserve -d -r /svn/repository