当前位置:  开发笔记 > 编程语言 > 正文

避免让subversion修改Linux文件权限.

如何解决《避免让subversion修改Linux文件权限.》经验,为你挑选了2个好方法。

我的所有代码库都存储在一个subversion存储库中,我将其分散在负载均衡的Apache Web服务器中,从而可以轻松检查代码,运行更新,并将我的代码无缝地开发到生产环境中.

我确信有一个简单的方法(除了在每次结账时执行脚本),其中一个不便之处就是在使用subversion更新或检出的文件上设置(返回)Linux权限.我们的安全团队已经将它设置了OwnerGroup在设置的httpd.conf文件,以及内的所有目录documentRoot的700收到的权限,所有非可执行文件(例如*.PHP,*.smarty,*.PNG)收到的Linux权限600,所有可执行文件接收700(例如*.sh,*.pl,*.py).所有文件必须具有所有者和组apache:apache,以便httpd服务读取,因为只有文件所有者设置为通过权限进行访问.

每次我运行一个svn update,或者svn co,即使文件可能没有被创建(即svn update),我发现文件的所有权设置为运行svn命令的帐户,通常是文件权限被设置为除了它们之前的东西(即更新之前的.htm文件是600,但之后svn update,它被设置为755,甚至是777).

绕过subversion尝试更新文件权限和所有权的最简单方法是什么?有没有什么可以在svn客户端或Linux服务器上完成以保留原始文件权限?我正在运行RHEL5(现在只有几个选择实例).



1> Petesh..:

文件的所有者将被设置为运行svn命令的用户,因为它实现了基础向上命令 - 它删除并替换了更新的文件,这将导致所有权"更改"到相关用户.防止这种情况的唯一方法是实际执行svn up作为文件应该被拥有的用户.如果要确保它们由特定用户拥有,请以该用户身份运行该命令.

关于权限,svn只服从帐户的umask设置 - 它可能类似于066 - 为了确保组和其他帐户无法访问该文件,您需要在执行svn之前发出'umask 077'这样可以确保只有发出命令的用户帐户才能访问这些文件.

除非.svn目录是安全的,否则我会注意将subversion数据部署到Web服务器的安全问题.


+1表示注意.svn的潜在后果.好决定.

2> thomson_matt..:

您可以在Subversion中将属性存储在文件中(请参阅http://svnbook.red-bean.com/en/1.0/ch07s02.html).您对svn:executable属性特别感兴趣,它将确保存储可执行权限.

但是,对于所有权限,没有通用的方法.Subversion也不存储所有权 - 它假设,如果你检查出来,你就拥有它.

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有