Один пользователь только для чтения для SVN - PullRequest
5 голосов
/ 11 ноября 2008

Я делаю техническое обслуживание на частном сервере SVN. Аутентификация обрабатывается через Apache basic HTTP + mod_authz_svn. Мне нужно, чтобы у каждого пользователя был доступ для чтения / записи, за исключением одного пользователя только для чтения. Тем не менее, пользователь только для чтения должен пройти аутентификацию. Я установил свой конфигурационный файл authz так:

[/]
* = rw
read-only = r

Но это не работает. Пользователь «только для чтения» все еще может фиксировать изменения. Я могу сделать вещи только для чтения для всех, но бит *, кажется, переопределяет то, что я пытаюсь установить для «только для чтения».

FWIW, соответствующий фрагмент Apache:

 <Location /repos>
   DAV svn
   SVNPath ...
   SVNIndexXSLT "/svnindex.xsl"

   AuthzSVNAccessFile ...

   AuthType Basic
   AuthName ...
   AuthUserFile ...
   Require valid-user
 </Location>

Ответы [ 2 ]

8 голосов
/ 11 ноября 2008

В этом случае пользователь только для чтения имеет право на запись, поскольку он также соответствует группе *.

Безопасный способ достичь желаемого - создать группу из всех пользователей, кроме только для чтения, например,

[groups]
all-but-ro = harry, sally, ...

[/]
@all-but-ro = rw
read-only = r

(в качестве альтернативы вы можете просто сгенерировать много строк = rw из файла passwd)

Возможно, svn совпадает сверху вниз - это не задокументировано, и я не тестировал. Так что попробуйте

[/]
read-only = r
* = rw
0 голосов
/ 11 ноября 2008

Хммм, предыдущие записи могут быть правильными в порядке ACL, но ...

Моя конфигурация включает в себя

AuthzSVNAccessFile "<path-to-svn-acl-file>"

Может ли это быть проблемой?

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