Администратор SVN может создавать папки, но не может их удалять - PullRequest
1 голос
/ 10 июля 2009

Действительно странная проблема здесь. Я настраиваю сервер SVN и в основном пытаюсь обеспечить соблюдение следующих правил:

  1. По умолчанию все пользователи имеют доступ только для чтения
  2. svnadmin может записывать в корень (для создания новых проектов) и в папку проекта (для создания директорий trunk / branch / tags)
  3. разработчики могут создавать каталоги в // ветвях и могут фиксировать изменения в // trunk
  4. Только администратор / менеджер проекта может создавать теги релиза

Вот мои настройки:

svnserve.conf

[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz

PASSWD

[users]
svnadmin = svnadmin
user1 = user1

AuthZ

[groups]
svnadmin = svnadmin
developers = user1

[/]
* = r
@svnadmin = rw

[/test-project/branches]
@developers = rw

[/test-project/trunk]
@developers = rw

Я вошел в систему как svnadmin и создал / test-project, / test-project / trunk, / test-project / ветки и / test-project / trunk - хорошо.

Вы вошли как user1 и получили отказ в доступе при попытке создать что-либо в корне или в / test-project - хорошо.

Еще как user1, я создал папку в багажнике и добавил файл - хорошо.

Теперь я вошел в систему как svnadmin и удалил файл ... , но я не могу удалить папку! Более конкретно, он говорит Доступ запрещен

У svnadmin есть rw во всем хранилище, так почему я не могу удалить / test-project / trunk / ??? (конечно, user1 может удалить эту папку).

Хуже того, я заметил, что svnadmin не может удалить теги / test-project, / test-project / branch, / test-project / trunk или / test-project /. Теперь у меня есть хранилище тестовых проектов в моем хранилище, и я не могу от него избавиться.

Что-то не так с моими настройками? Что я могу сделать?

Ответы [ 2 ]

2 голосов
/ 10 июля 2009

Разобрался сам и выложил здесь ответ в пользу любого, кто сталкивается с такой же проблемой.

Очевидно, что в отличие от реальной ОС Linux, на которой работает этот сервер SVN, у вас не должно быть групп с такими же именами, как у пользователей.

* Авт 1006 *

[groups]
svnadmin = svnadmin
developers = user1

[/]
* = r
@svnadmin = rw

[/test-project/branches]
@developers = rw

[/test-project/trunk]
@developers = rw

на самом деле должно быть ...

[groups]
svnadmins = svnadmin # note the pluralization of the group name
developers = user1

[/]
* = r
@svnadmins = rw # note the pluralization of the group name

[/test-project/branches]
@developers = rw

[/test-project/trunk]
@developers = rw

Это объясняет, почему @ developers смогли удалить все каталоги, которые они создали, в то время как @ svnadmin не было; однако это не объясняет, почему @ svnadmin смог создать каталоги в первую очередь ...

... хотя я не буду этим заниматься, так как моя конфигурация сейчас работает.

0 голосов
/ 28 сентября 2012

Речь идет не о том, чтобы сделать их pural, вы должны поставить '/' после имени каталога, по какой-то причине он не является рекурсивным, если в конце нет символа '/'. Таким образом, вам не нужно помещать разрешения на удаление вверху.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...