Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了redhat – svnserve似乎以root身份写文件.如何通过svnserve和apache访问同一个存储库?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

目的是使用svnserve和apache / webdav访问设置subversion. 当用户通过http / apache提交时,文件被写入文件系统并属于apache用户. 当用户通过svn / svnserve提交​​时,文件将写入文件系统并属于root用户. 我尝试将apache设置为svnserve用户而没有改进: cat /pathto/repo/conf/passwd [users]
目的是使用svnserve和apache / webdav访问设置subversion.

用户通过http / apache提交时,文件被写入文件系统并属于apache用户.

用户通过svn / svnserve提交​​时,文件将写入文件系统并属于root用户.

我尝试将apache设置为svnserve用户而没有改进:

cat /pathto/repo/conf/passwd
[users]
apache = XxXxXxX

 cat /pathto/repo/conf/svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd


[sasl]
use-sasl = false

svn: Commit Failed (details follow):
svn: Can't move '/pathto/repo/db/txn-protorevs/1091-ux.rev' 
to '/pathto/repo/db/revs/1/1092': Permission denied

确实,root是目录的所有者,我想要apache.

ls -ld /pathto/repo/db/revs/1/
drwxr-s--- 2 root svn 4096 Jul 17 15:25 /pathto/repo/db/revs/1/

现在我使用以下解决方法

chown -R apache /pathto/repo/db/

有没有人有一个干净的解决方案来运行svnserve?

更新1:svnserve作为独立服务运行

更新2:这是/ etc / sysconfig / svnserve内容

OPTIONS="--threads --root /pathto "

更新3:我同意JvO:使用http / apache / webdav作为唯一的访问系统会更简单.不幸的是,第三方软件只有svn://绑定而没有http://绑定.

更新4:修改svnserve init脚本应该有效,但有人有另一个想法吗?

更新5:添加赏金:寻找优雅的解决方法

解决方法

显然,您的svnserve进程以root身份运行.因此,更改配置以将该进程作为某个非特权用户运行(不清楚svnserve是如何从您的描述中启动的;可能是xinetd或其他内容).

安全方面,IMO的最佳方法是将apache和snvserve用户添加到公共组(如’svn’)并将存储库的权限更改为drwxrws —(即组权限为’sticky’ )

大佬总结

以上是大佬教程为你收集整理的redhat – svnserve似乎以root身份写文件.如何通过svnserve和apache访问同一个存储库?全部内容,希望文章能够帮你解决redhat – svnserve似乎以root身份写文件.如何通过svnserve和apache访问同一个存储库?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: