2

我有一个个人维基,我会在上面做笔记。wiki 的页面位于 subversion 工作副本目录“pages”中,我将它们的权限设置为 664,由 www-data:www-data 拥有。我的用户名在“www-data”组中,所以我可以手动签入和弄乱页面。

有一段时间,我遇到了一个问题,因为每次我运行签入时,文件都会归我所有:www-data 而不是 www-data:www-data,我将无法再通过以下方式更改 wiki 文件我的网页界面!我通过翻转“pages”目录上的 setgid 位解决了这个问题,但我仍然对为什么会首先发生这种情况感到困惑:

每次我将某些东西签入颠覆时,似乎 svn 删除它并重新创建它。为什么?此行为是否支持某些我不知道的功能?有没有办法改变它?

谢谢!

4

2 回答 2

3

设置“粘性”权限位。

find -type d -exec chgrp www-data {} + 
find -type d -exec chmod g+s {} + 

这将鼓励结帐的文件创建阶段继承目录权限,而不是切换到最后编辑它的人。

编辑:dow +s == setgid。留给后代和其他读者的信息。

于 2008-10-07T13:45:00.047 回答
2

我认为你用错了。您可以做的仍然是将所有内容都保留在 subversion 中,并将您的本地工作副本与您开发的 www 目录分开。

然后只需通过某个脚本(可能作为提交后挂钩)为 www 用户自动更新 www 工作副本(或者如果您不希望 www 文件夹中的 .svn 目录导出),然后设置权限因此。

工作流程是:

  1. 编辑 /home/youruser/yourwiki-working-copy/ 中的文件
  2. 做svn提交
    • post-commit 挂钩更新 /var/www/ 中的文件(或 wiki 所在的任何位置)
  3. 转到 1。

这样,您就不必担心权限问题,甚至可以让多个人在网站上工作,同时享受版本控制的所有好处。

于 2008-10-07T11:34:09.983 回答