SVN-сервер разрешает коммиты только при запуске от имени пользователя root
Итак, два дня назад у меня был новый блестящий сервер SVN. Я установил его для WebDAV без проблем. Только когда я попытался принять несколько проектов, я столкнулся с проблемой.
Сначала у меня были все папки проекта в одном репозитории. Но потом я увидел ошибку в своем пути и переключился на несколько репозиториев. Вместо того, чтобы редактировать /etc/apache2/sites-available/default
файл с каждым новым проектом, я выбрал использовать демон svnserve.
Итак, проблема в том, что я могу делать коммиты из Eclipse только тогда, когда демон запускается от имени root. Если нет, я получаю ошибку "Отказано в доступе". Есть идеи? Вот статистика каталогов:
drwxr-xr-x 6 root root 4096 2011-06-07 09:38 .
drwxr-xr-x 4 root root 4096 2011-06-05 00:48 ..
lrwxrwxrwx 1 svn svn 6 2011-06-06 22:35 all -> repos/
drw-rw-r-- 6 svn svn 4096 2011-06-06 13:53 EmpowerView
drw-rw-r-- 6 svn svn 4096 2011-06-06 13:54 GoogleVoicemail
-rw-rw-r-- 2 svn svn 307 2011-06-07 08:47 passwd
drw-rw-r-- 6 svn svn 4096 2011-06-06 13:54 PerlinNoise
drw-rw-r-- 7 svn svn 4096 2011-06-05 02:15 repos
-rw-rw-r-- 3 svn svn 2278 2011-06-07 08:46 svnserve.conf
РЕДАКТИРОВАТЬ
Я попробовал предложенную повторную проверку с демоном, не работающим как root, и все еще без сигары. Та же ошибка разрешения.
РЕДАКТИРОВАТЬ 2
Я также пытался запустить демон от имени пользователя svn, но не повезло. В какой-то момент я испортил свою основную группу и больше не имел привилегий sudo! Я должен был взломать свой собственный сервер через учетную запись приятеля.
1 ответ
У вас классическая проблема с разрешением. Возможно, ваш репозиторий находится в таком месте, как /some/dir/repos
с /some
являющийся svn
не имея доступа /some
потому что svn не владеет /some
а также:
svn
находится в группе/some
, но разрешения установлены как 700svn
не в группе/some
и разрешения установлены как 750
В обоих случаях, svn
не может спуститься в /some
потому что бит выполнения отсутствует на /some
,
Возможны два решения:
- добавить другой бит выполнения в
/some
поэтому разрешения выглядят как 751 - добавить бит выполнения группы в
/some
и убедитесь, что пользовательsvn
является членом группы
Вы должны проверить все каталоги выше вашего репо. Так что если ваш путь выглядит /i/am/very/long/repos
нужно проверить /i
, /i/am
до /i/am/very/long/repos
,