SVN-сервер разрешает коммиты только при запуске от имени пользователя root - PullRequest
2 голосов
/ 07 июня 2011

Итак, два дня назад у меня был новый блестящий сервер SVN. Я установил его для WebDAV без проблем. Только когда я попытался принять несколько проектов, я столкнулся с проблемой.

Сначала у меня были все папки проекта в одном репозитории. Но потом я увидел ошибку в своем пути и переключился на несколько репозиториев. Вместо того, чтобы редактировать файл /etc/apache2/sites-available/default с каждым новым проектом, я решил использовать svnserve deamon.

Итак, проблема в том, что я могу делать коммиты из 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

EDIT

Я попробовал предложенную повторную проверку с демоном, не работающим от имени root, и все еще без сигары. Та же ошибка разрешения.

РЕДАКТИРОВАТЬ 2

Я также пытался запустить демон от имени пользователя svn, но не повезло. В какой-то момент я испортил свою основную группу и больше не имел привилегий sudo! Мне пришлось взломать свой собственный сервер через учетную запись приятеля

РЕДАКТИРОВАТЬ 3 ОТВЕТ

Ну, после нескольких часов работы, вот настройка, с которой я начал работать.

Сначала я удалил все существующие проверки и убил демона. Затем я установил все права доступа 774 для всех моих репозиториев (см. Ниже) Затем я запустил демон с помощью этой команды sudo -u svn - svnserve -d -r / storage / svn / Это позволило мне запустить демона как пользователь 'svn' без ввода пароля. (svn не имеет пароля или оболочки по соображениям безопасности) Наконец, я дважды проверил все мои конфигурационные файлы и смог сделать заказ точно так, как надеялся. Справочник хранилищ

drwxr-xr-x 6 root root 4096 2011-06-07 10:34 .
drwxr-xr-x 4 root root 4096 2011-06-05 00:48 ..
lrwxrwxrwx 1 svn  svn     6 2011-06-06 22:35 all -> repos/
drwxrwxr-- 6 svn  svn  4096 2011-06-06 13:53 EmpowerView
drwxrwxr-- 6 svn  svn  4096 2011-06-06 13:54 GoogleVoicemail
-rwxrwxr-- 2 svn  svn   307 2011-06-07 08:47 passwd
drwxrwxr-- 6 svn  svn  4096 2011-06-06 13:54 PerlinNoise
drwxrwxr-- 7 svn  svn  4096 2011-06-05 02:15 repos
-rwxrwxr-- 3 svn  svn  2273 2011-06-07 09:50 svnserve.conf

(Примечание. Все мои репозитории имеют общие редакторы и разрешения, поэтому в каждой папке conf / folder репозитория я помещаю жесткие ссылки на файлы passwd и svnserve.conf выше)

Ответы [ 2 ]

2 голосов
/ 07 июня 2011

Возможно, демон svn имеет разрешение на чтение в вашем хранилище, но не имеет разрешения на запись.

Сначала выясните, под каким пользователем запускается демон svn. Затем выберите полный репозиторий для этого пользователя. Таким образом, демон также может писать ваши коммиты.

1 голос
/ 07 июня 2011

Странные вещи случаются, когда вы делаете коммит или извлекаетесь как root.Попробуйте извлечь указанный репозиторий не как root, и, если это сработает, вы сможете после этого зафиксировать его как обычного пользователя.

Если это по-прежнему не работает, проверьте разрешения для самого репозитория.Возможно, что разрешения не установлены, чтобы разрешить доступ пользователям без полномочий root.

...