关于svn:linux权限继承

linux permission inheritance

我想了解一下 linux 权限继承和颠覆。
如果我签出属于 "svn:svn" 的东西并提交它,然后,在最初签出的目录上运行 svn update,文件将获得我的权限。我是组svn的成员。我可以将自己从 svn 组中删除以在我进行更新时强制保持 svn:svn 的权限吗?
我正在使用 Subversion 客户端来检查文件,这使用 svn 作为用户。
谢谢

  • 你是如何使用 Subversion 的?例如,您是运行 svnserve 还是通过 http 运行所有内容?或者,您使用的是 svn ssh?


您需要在该目录的组权限上设置粘性位。

1
chmod g+S svndir

这将强制组权限由其后代继承。

  • 1:这是正确的,但请注意这是您在本地计算机上执行的操作,而不是对存储库有任何影响的操作。每当有人签出模块时,必须在结帐机器上完成此操作。


您可以在父目录上设置组粘性位,这会自动将该目录分配给在其中创建的任何新文件

1
chmod g+s .

我认为它不会将粘性位应用于任何子目录,因此您必须为每个子目录复制它,但至少文件会以正确的组所有权出现。


Subversion 不会在存储库中存储文件所有权或权限。如果您检查某些东西,它就归您所有。我不确定您要完成什么,但它将涉及一个脚本来更改本地计算机上的文件所有权。

  • 好的,这是我无法解决的问题。我正在使用 GUI (Sycro) 来签出并提交回购协议。我还有一个更新网络服务器的钩子。如果我签出一个文件,修改它并提交,钩子会用文件和正确的(Svn)用户名更新服务器。但是......如果我终端到网络服务器并进行更新,权限是我。如何做我解决这个问题?如果我以"svn"身份登录网络服务器,它不会让我更新.. 告诉我存在权限问题。