2015-05-08 2 views
1

У меня есть сервер SVN с 3 хранилищами на нем. (A, B и C). Я пытаюсь ограничить пользователя (в этом примере MrX) иметь полный доступ к репозиторию B, но вообще не имеет доступа к репозиторию A или C (предпочитайте его даже не видеть). Я прочитал сообщения и подумал, что у меня это правильно, но когда я вхожу в систему как JJ, я все еще вижу все репозитории A и C. Что я делаю неправильно.SVN-разрешения для репозиториев

Ниже приведены настройки, которые у меня есть для репозиториев. Примечание. Я хотел бы, чтобы все остальные имели все права на чтение записи в репозиторий A и C.

Если это имеет значение, я использую CollabNet SubversionEdge на Windows Server с обычными пользователями (не аутентификации LDAP)

[A:/] 
*=rw 
MrX = 

[B:/] 
MrX =rw 


[C:/] 
*=rw 
MrX = 
+0

Я пробовал вашу настройку, и она действительно не работает так, как вы хотите. Я предполагаю, что ответ здесь: http://svnbook.red-bean.com/en/1.8/svn.serverconfig.pathbasedauthz.html#svn.serverconfig.pathbasedauthz.groups. Другим важным фактом является то, что ** групповые разрешения не переопределяются отдельными разрешениями пользователя **. Скорее, предоставляется комбинация всех согласованных разрешений. ... Разрешения для членов группы могут быть расширены только за пределы разрешений, которые группа уже имеет. Ограничение пользователей, которые являются частью группы, меньше разрешений их группы, невозможно. –

+0

Да, спасибо. Я предположил, что ответ был там (в книге SVN), но не нашел его. Так вы говорите это, потому что * в базовом каталоге есть, я не могу заблокировать пользователя? Если нет, я открыт для любой работы или предложения. – jvoigt

+0

http://svnbook.red-bean.com/en/1.8/svn.serverconfig.pathbasedauthz.html: * Следует помнить, что наиболее конкретный путь всегда совпадает с первым. Сервер пытается сопоставить сам путь, а затем родительский путь, потом родительский элемент и т. Д. Чистый эффект заключается в том, что упоминание определенного пути в файле доступа всегда будет переопределять любые разрешения, унаследованные от родительских каталогов. * Это означает, что вы можете разрешить всем * rw * на корневом пути, но вы можете * запретить MrX на магистрале *, поскольку это более сложный путь, чем корень. Это было бы примерно так: '[/] * = rw' и' [/ trunk] MrX = '. –

ответ

1

У меня похожая ситуация, с той лишь разницей в том, что я не нацеливание один пользователя, но вместо этого @usergroup.

Для меня следующие настройки работы:

[/] 
~MrX = rw 

[A:/] 

[B:/] 
MrX = rw 

[C:/] 

Что я делаю здесь назначая доступом RW по умолчанию для всех для каждого репозитория, за исключением MrX. MrX затем имеет доступ RW только к репо B.