【问题标题】:svnadmin create ignoring sticky group bit on directorysvnadmin 创建忽略目录上的粘性组位
【发布时间】:2010-12-16 15:02:40
【问题描述】:

我正在使用带有 Apache 的 Subversion,并希望普通用户(即非 root)能够创建新的存储库。我认为这很容易使用带有组 www-data 和组粘性位设置的父目录。不幸的是,“svnadmin create ...”只留下了它的 db 目录,没有设置粘性组。我怎样才能解决这个问题?这会在尝试通过 Apache 提交时导致“权限被拒绝”错误。

我已经让这个与“只有 root 可以创建存储库”策略一起工作,因为 root 可以在完成后只 chown 文件。但这不是我想要的。

这是我测试的痕迹:

ctndocs@beta:~$ ll -d svn
drwsrwsr-x 6 ctndocs www-data 4096 2009-11-14 18:27 svn
ctndocs@beta:~$ cd svn
ctndocs@beta:~/svn$ umask
0002
ctndocs@beta:~/svn$ mkdir test
ctndocs@beta:~/svn$ svnadmin create test
ctndocs@beta:~/svn$ ls -l test
total 24
drwxrwsr-x 2 ctndocs www-data 4096 2009-11-14 18:31 conf
drwxrwxr-x 6 ctndocs www-data 4096 2009-11-14 18:31 db
-r--r--r-- 1 ctndocs www-data    2 2009-11-14 18:31 format
drwxrwsr-x 2 ctndocs www-data 4096 2009-11-14 18:31 hooks
drwxrwsr-x 2 ctndocs www-data 4096 2009-11-14 18:31 locks
-rw-rw-r-- 1 ctndocs www-data  229 2009-11-14 18:31 README.txt

请注意 db 目录中缺少“s”。其他都还好。

【问题讨论】:

    标签: linux svn apache file-permissions


    【解决方案1】:

    如果您可以获得 root 权限并且您的文件系统支持文件访问控制列表(对于任何现代 fs 都是如此),您可以在文件系统上启用 FACL,然后为 www-data 设置默认组权限:

    mount /fs/root -o remount,acl
    setfacl -Rdm g:www-data:rwx /fs/root/path/to/svndir
    setfacl -Rm g:www-data:rwx /fs/root/path/to/svndir
    

    之后,svndir 下创建的所有内容将默认由www-data 组写,您可以使用getfacl 进行验证。

    不要忘记将acl 选项附加到文件系统的/etc/fstab,以便在下次启动后也启用FACL。

    【讨论】:

    • 谢谢。我想我知道如何添加“acl”——我将它添加到 / 的 fstab 条目中——但是你建议我在哪里添加 setfacl 内容?
    • 嗯...不确定我是否理解您的问题。因此 setfacl 命令用于操作文件的 ACL,有点像 chmod 但更高级。因此,您需要更改包含您的 SVN 存储库的文件夹的组权限和默认值。
    猜你喜欢
    • 2017-03-01
    • 2012-03-31
    • 2012-10-25
    • 1970-01-01
    • 2018-07-10
    • 1970-01-01
    • 2021-07-17
    • 1970-01-01
    • 2011-08-12
    相关资源
    最近更新 更多