如何使用 trac AuthzPolicy 来限制对存储库浏览器的访问?
How do I use trac AuthzPolicy to restrict access to repository browser?
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@*
如果我在 DefaultPermissionPolicy
中从匿名中删除 BROWSER_VIEW
,那么即使我在 authzpolicy.conf
.
中添加以下内容,也无法浏览存储库
[*]
* = *
主要问题是 /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
John 可以看到 UTILITIES 但不能看到其他存储库,anonymous 可以看到除 UTILITIES 之外的所有存储库。
我知道 John 可以注销并查看其他存储库。主要目的是防止匿名用户看到 UTILITIES 存储库。
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@*
如果我在 DefaultPermissionPolicy
中从匿名中删除 BROWSER_VIEW
,那么即使我在 authzpolicy.conf
.
[*]
* = *
主要问题是 /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
John 可以看到 UTILITIES 但不能看到其他存储库,anonymous 可以看到除 UTILITIES 之外的所有存储库。
我知道 John 可以注销并查看其他存储库。主要目的是防止匿名用户看到 UTILITIES 存储库。