编辑.access和.passwd文件后修复SVN 500错误

时间:2009-10-05 17:58:54

标签: svn apache

我遇到了SVN的问题,我不太确定如何修复它。以下是已完成工作的历史记录以及错误消息传递的内容,希望我们能够集中精力解决问题。这是:

在外出度假时,我的团队中另一个不知道如何使用svn的人想要编辑我们的网页。他无法获得用户名和密码的正确组合,因此他进入我们的服务器,然后将他的名字和密码直接添加到.access和.passwd svn文件中。在此之后不起作用,他删除了这些行。过了一会儿,他放弃了。我不确定他是否做了别的事。

一旦我回来,我发现我检查到自己计算机上的文件的任何更改都不能再提交到存储库。错误消息是500内部服务器错误。

我认为在编辑.access和.passwd文件时,这个人可能已经改变了适当的空格。我尝试编辑这些文件,以便有一个“\ n”,所以在行尾没有转义字符和正确的用户信息,但两种方法都无济于事。

我唯一的另一条信息是,如果我检查svn的服务器错误日志,它有以下内容:

[Fri Oct 02 12:13:35 2009] [错误] [客户端...]文件不存在:/home/domain/svn.domain.com/failed_auth.html

[Fri Oct 02 12:13:35 2009] [错误] [客户端...](13)权限被拒绝:无法打开密码文件:/home/domain/svn/domain.passwd

[Fri Oct 02 12:13:35 2009] [错误] [客户端...](13)权限被拒绝:无法打开密码文件:/home/domain/svn/domain.passwd

[Fri Oct 02 12:13:35 2009] [错误] [客户端...]文件不存在:/home/domain/svn.domain.com/internal_error.html

我看了一下Permission Denied错误,有些论坛说我可以更改权限让'apache'可以访问这个文件,但1)我不知道为什么svn现在不能正常工作如果它以前工作,没有文件权限被更改和2)我不太了解安全性,并通过更改文件权限而不知道其含义是什么,我不想破坏我的网站的安全性(所以,如果这是我需要做的解决问题的方法,也许我正在寻找的是保证这是安全的,也许是一些示例命令,所以我设置了正确的权限)。

很抱歉这个问题很长,但任何帮助都会非常感激。我不想再次设置svn。

2 个答案:

答案 0 :(得分:1)

我能够解决问题,所以我想我会在这里发布,只是为了将来参考,如果有其他人遇到过同样的问题:

我没有提到的一件事(因为我没有意识到这一点很重要)是我的网站由Dreamhost托管。 Dreamhost提供自己的Subversion安装系统。我正在使用Dreamhost管理面板创建一个新的subversion存储库,当时我想我会查看该面板对存储库损坏的说法。

我进入了当前svn域的编辑面板,并查看了用户访问用户名和密码。名称和密码是原始的,我想我只是从文本字段中删除一行,然后提交更改。无论Dreamhost在幕后做什么,通过Dreamhost subversion管理面板刷新用户名和密码似乎都可以修复它,现在它已经恢复运行了!

答案 1 :(得分:0)

好的,我想出来了。 SVN的dreamhost .access和.password文件归dhapache用户所有。如果直接编辑它们,您将获得文件的所有权。这将导致各种身份验证问题,因为SVN将不再读取这些文件。

我找到了一种解决方法,允许我编辑文件并设置更复杂的权限。让dreamhost创建文件,然后创建自己的文件副本。然后编辑副本:cp myaccess.access project.access

这样可以保留分配给dhapache用户的权限,并允许您根据需要更改访问文件。