Как использовать trac AuthzPolicy для ограничения доступа к обозревателю хранилища? - PullRequest
0 голосов
/ 19 сентября 2019

Trac настроен с несколькими репозиториями Subversion

http://trac.company.com/trac/browser/

REPO1 REPO2 REPO3

В настоящее время сотрудники имеют доступ к этому как анонимный.Я добавляю новый репозиторий UTILITIES, который я не хочу, чтобы анонимные пользователи могли видеть.

Это - то, где AuthzPolicy входит, но я действительно изо всех сил пытаюсь получить этоработает.

В trac.ini у меня есть

[trac]
...
permission_policies = AuthzPolicy,
  ReadonlyWikiPolicy,
  DefaultPermissionPolicy,
  LegacyAttachmentPolicy

[components]
...
tracopt.perm.authz_policy.* = enabled


[authz_policy]
authz_file = /var/trac/conf/authzpolicy.conf

Но я не могу понять, что мне нужно добавить в authzpolicy.conf, чтобы заблокировать BROWSER_VIEW от анонимного.Я пробовал (различные комбинации):

[*]
* = !BROWSER_VIEW
anonymous = !BROWSER_VIEW

[repository:*]
* = !BROWSER_VIEW
anonymous = !BROWSER_VIEW

[repository:UTILITIES*]
* = !BROWSER_VIEW
anonymous = !BROWSER_VIEW

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

2019-09-19 12:33:19,518 Trac[authz_policy] DEBUG: Parsing authz security policy /var/trac/conf/authzpolicy.conf
2019-09-19 12:33:19,519 Trac[authz_policy] DEBUG: Checking BROWSER_VIEW on repository:UTILITIES@*/source:/@68
2019-09-19 12:33:19,521 Trac[authz_policy] DEBUG: Checking BROWSER_VIEW on repository:UTILITIES@*/source:/tags@68
2019-09-19 12:33:19,523 Trac[authz_policy] DEBUG: Checking BROWSER_VIEW on repository:UTILITIES@*/source:/branches@68
2019-09-19 12:33:19,524 Trac[authz_policy] DEBUG: Checking BROWSER_VIEW on repository:UTILITIES@*/source:/trunk@68
...
2019-09-19 12:33:19,628 Trac[authz_policy] DEBUG: Checking CHANGESET_VIEW on repository:UTILITIES@*/changeset:1@*
2019-09-19 12:33:19,636 Trac[authz_policy] DEBUG: Checking CHANGESET_VIEW on repository:UTILITIES@*/changeset:68@*

Если я удаляю BROWSER_VIEW из анонимного в DefaultPermissionPolicy, тогда ничто не может просмотреть репозитории, даже если я добавлю следующее вauthzpolicy.conf.

[*]
* = *

1 Ответ

0 голосов
/ 19 сентября 2019

Основной проблемой оказались разрешения на /var/trac/conf/authzpolicy.conf Мне нужно было предоставить веб-серверу доступ на чтение

$ chgrp apache /var/trac/conf/authzpolicy.conf
$ chmod 640 /var/trac/conf/authzpolicy.conf

Как только эта проблема была решена, я начал видеть другое поведение в зависимости от настроенных разрешений, инаконец-то придумали следующее для того, что мне нужно

[repository:UTILITIES@*]
john = BROWSER_VIEW
* = !BROWSER_VIEW

[repository:*@*]
john = !BROWSER_VIEW
* = BROWSER_VIEW

Джон может видеть УТИЛИТЫ, но не другие репозитории, а аноним может видеть все репозитории, кроме УТИЛИТ.

Я понимаю, что Джон может регистрироватьи посмотреть другие хранилища.Основная цель заключалась в том, чтобы анонимные пользователи не видели хранилище UTILITIES.

...