我有两台机器:
在Linux服务器上,我安装了Apache,Samba和SVN。
我创build了映射到htdocs /目录的samba共享,以便我可以从Windows访问networking文件。
以下说明了我的工作stream程:
我现在的问题是,目前我能够通过Samba编辑Windows盒子上的文件,我必须将文件的所有者更改为nobody(apache用户),并将Samba共享设置为使用SHARE权限。
当我尝试使用SVN提交和更新等我不能因为我的Linux用户不是'没有',并没有权限这样做。 所以我必须成为根做一个SVN [命令],然后将所有文件更改回“无人”,以便我不能在Windows上编辑。
我希望能够做的是让我的本地Linux用户拥有Web文件,这将使SVN命令工作,Windows(通过samba)也可以使用同一个用户。
我怎样才能使这个工作,有没有办法让Windows和Linux用户匹配?
拥有Apache运行的组所拥有的文件和目录。 创build目录SGID 。
chgrp -R group1 /path/to/htdocs find /path/to/htdocs -type d -exec chmod 2775 {} \;
在SAMBA共享下指定这个组,可以使用force group=group1
来完成。
使用户可以使用该组的成员对SAMBA进行身份validation。 在valid users
指定此用户,并在SAMBA中的共享内write list
。 这也应该允许你提交SVN。
另外,在smb.conf中指定create mask=0664
和directory mask=2775
,这将在创build时设置适当的权限。 如果这些文件与Apache拥有相同的用户,则可以在两个设置中将最后一位设置为0。
如果一切都一致地应用,您应该能够执行所有需要的操作,而不会对任何function产生负面影响。
华纳,这个答案对我来说是个救命恩人。 有一件事我不知道,你需要考虑是否有人想从命令行运行SVN更新。 见http://svnbook.red-bean.com/en/1.1/ch06s05.html ,它涵盖了这一点。