svnadmin create 忽略目录上的粘性组位
我正在将 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您可以获得 root 权限并且您的文件系统支持文件访问控制列表(对于任何现代 fs 都是如此),您可以在文件系统上启用 FACL,然后为
www-data
设置默认组权限:之后,在
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
:After that, everything created under
svndir
will be by default group-writable bywww-data
, which you can verify withgetfacl
.Don't forget to append the
acl
option to/etc/fstab
for the filesystem, to have FACLs enabled also after next boot.