svnadmin create 忽略目录上的粘性组位

发布于 2024-08-10 19:56:24 字数 937 浏览 7 评论 0原文

我正在将 Subversion 与 Apache 结合使用,并希望普通用户(即非 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”。其他的都还好。

I am using Subversion with Apache and want a normal user (i.e. non-root) to be able to create new repositories. I thought this would be easy enough to do using a parent directory with group www-data and the group sticky bit set. Unfortunately "svnadmin create ..." leaves only its db directory with the sticky group not set. How can I get around this? This causes "permission denied" errors when attempting to commit through Apache.

I have got this to work with a "only root can create repositories" policy as root can just chown the files when done. But thats not what I want.

Here is a trace of my test:

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

Note the lack of an "s" on the db directory. All the others are ok.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

那片花海 2024-08-17 19:56:24

如果您可以获得 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。

If you can get root permissions and your filesystem supports file access control lists (which is true for any modern fs), you can enable FACLs on the filesystem and then set the default group permissions for 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

After that, everything created under svndir will be by default group-writable by www-data, which you can verify with getfacl.

Don't forget to append the acl option to /etc/fstab for the filesystem, to have FACLs enabled also after next boot.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文