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, но разрешения установлены как 700
  • svn не в группе /some и разрешения установлены как 750

В обоих случаях, svn не может спуститься в /some потому что бит выполнения отсутствует на /some,

Возможны два решения:

  • добавить другой бит выполнения в /some поэтому разрешения выглядят как 751
  • добавить бит выполнения группы в /some и убедитесь, что пользователь svn является членом группы

Вы должны проверить все каталоги выше вашего репо. Так что если ваш путь выглядит /i/am/very/long/reposнужно проверить /i, /i/am до /i/am/very/long/repos,

Другие вопросы по тегам