linux – Samba,Apache和SVN.获得权限

我有两台工作机器:

> Windows客户端(开发机器)
> Linux Web服务器(Ubuntu)

在Linux服务器上,我安装了Apache,Samba和SVN.

我创建了一个映射到htdocs /目录的samba共享,以便我可以从Windows访问Web文件.

以下说明了我的工作流程:

>从Linux服务器上的命令行,我将Web项目的工作副本从远程服务器检出到我本地Linux服务器的htdocs目录.
>在Windows机器上,我访问这些文件(使用samba)并在我的编辑器中编辑它们并在Web浏览器中测试它们
>回到Linux机器上,我将我的工作签入远程服务器.

我遇到的问题是,目前我可以通过Samba编辑Windows框中的文件,我必须将文件的所有者更改为nobody(apache用户)并将Samba共享设置为使用SHARE权限.

当我尝试使用SVN提交和更新等时,我不能,因为我的Linux用户不是’nobody’,并且没有权限这样做.所以我必须成为root做一个SVN [命令]然后将所有文件更改回’nobody’,这样我就无法在Windows上编辑.

我希望能够做的是让我的本地Linux用户拥有Web文件,这将使SVN命令工作,而Windows(通过samba)也可以使用同一个用户.

我怎样才能让它工作,有没有办法让Windows和Linux用户匹配?

解决方法

拥有一个组所拥有的文件和目录,即 Apache runs as.将目录设为 SGID.
chgrp -R group1 /path/to/htdocs
find  /path/to/htdocs -type d -exec chmod 2775 {} \;

在SAMBA共享下指定此组,可以使用force group = group1完成.

使用此组成员向SAMBA进行身份验证的用户.在有效用户中指定此用户,并在SAMBA中的共享中写入列表.这也应该允许您提交SVN.

另外,在smb.conf中指定create mask = 0664和directory mask = 2775,这将在创建时设置适当的权限.如果文件由与Apache相同的用户拥有,则可以在两个设置上将最终位设置为0.

如果一致地应用所有内容,您应该能够执行所有期望的操作,而不会对任何功能产生负面影响.

相关文章

linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...