Проблема с авторизацией на основе пути - PullRequest
0 голосов
/ 10 июля 2019

У нас есть сервер Subversion с множеством хранилищ и пользователей, прошедших проверку подлинности через AD, который работает в течение последних нескольких лет. Теперь мы должны ограничить доступ к репозиториям, и у меня есть следующая проблема, которую я не могу решить. Есть пользователи, которые должны иметь доступ только к определенным подпапкам в нескольких репозиториях. Поэтому я ограничил права доступа всех пользователей на «нет доступа» для всех репозиториев и предоставил права доступа пользователям для соответствующей подпапки. Теперь у нас есть проблема, что такие репозитории не видны и доступ к таким репозиториям возможен только при использовании полного пути:

[/]
# Restrict access for all users
* = 

[repos1:/subdir1]
@user1 = rw

[repos1:/subdir2]
@user2 = rw

Для user1 и user2 repos1 не указан на веб-странице (mysvnserver / svn). TortoiseSVN не может получить доступ к хранилищу для этих пользователей. user1 и user2 могут получить доступ к subdir1 / subdir2, только если используется полный путь (mysvnserver / svn / repos1). Это подразумевает, что пользователи знают, какие хранилища существуют и к каким частям они могут получить доступ.

Я хочу, чтобы user_group1 видела хранилище и имела полный доступ только к subdir1, а user_group2 - полный доступ только к subdir2.

Разрешение только для чтения доступа к корню для всех пользователей [/] * = г приводит к тому, что user1 и user2 имеют доступ на чтение ко всем репозиториям, а это не то, что нам нужно. Другие пользователи смогут создавать новые папки на верхнем уровне репозитория, поэтому это необходимо сделать следующим образом - ограничить доступ для всех пользователей и предоставить пользователям доступ к соответствующим подкаталогам репозитория.

Так как мне этого добиться?

1 Ответ

0 голосов
/ 10 июля 2019
[/]
* = r
[repos1:/subdir1]
@user1 = rw
@user2 =
[repos1:/subdir2]
@user1 =
@user2 = rw
[repos1:/subdir3]
@user1 =
@user2 =
[repos1:/subdir4]
@user1 =
@user2 =
…
[repos1:/subdirN]
@user1 =
@user2 =

[repos2:/]
* =
...
[reposN:/]
* =

т.е. - разрешить доступ на чтение только к используемому репо (из /), добавить разрешения на запись при необходимости.И «наследование» не означает «без изменений» или «без дополнительных ограничений» - попробуйте

...