gpt4 book ai didi

svn - 如何允许用户 r/w 访问某些子文件夹但不允许访问父文件夹?

转载 作者:行者123 更新时间:2023-12-02 02:10:43 25 4
gpt4 key购买 nike

我已经设置了一个使用 Apache DAV 和 LDAP 服务的 SVN 存储库。当我使用对整个存储库具有读/写权限的用户访问存储库时,一切都顺利进行。

存储库有很多项目,看起来像这样:

repo_src
\a
\b
\c
\d
.. etc..

我需要授予某个用户“A”访问某个子目录“a”的权限,但不能访问其父目录及其兄弟目录(b、c、d 等)

我阅读了关于基于路径的授权的“版本控制与颠覆”一书(http://svnbook.red-bean.com/en/1.6/svn-book.html#svn.serverconfig.pathbasedauthz)。我完全按照那里的规定做了:我用这样的东西编辑了文件 svn.authz:

[src_repo:/a]
A = rw

[src_repo:/]
root = rw

在 Apache 中,svn 配置文件如下所示:

<Location /svn>
DAV svn

SVNParentPath /data/repos/
AuthName "Zentyal LDAP user required"
AuthType Basic
AuthBasicProvider ldap file
AuthBasicAuthoritative On
AuthzLDAPAuthoritative off

AuthLDAPURL ....
AuthLDAPBindDN ....
AuthLDAPBindPassword ...
AuthUserFile /dev/null
uthzSVNAccessFile /etc/apache2/svn.authz

require valid-user

</Location>

当我以用户A的身份通过WEB界面(http://host/svn/src_repo/a)访问子目录src_repo/a时,我可以读取该目录的内容及其内容文件。但是,当我尝试使用 TortoiseSVN 浏览目录 http://host/svn/src_repo/a 或使用“svn checkout http://host/svn/src_repo/a” check out 内容时”我收到这条消息:

svn: E175002: Server sent unexpected return value (405 Method Not Allowed) in response to PROPFIND request for '/'

显然 TortoiseSVN 和 svn 客户端正在尝试访问“/”(这不是预期的)。

如何设置 svn 服务器只允许子目录访问?为什么WEB访问不同于命令行或TotoiseSVN访问?

最佳答案

请重新阅读本书:您忽略并遗漏了 authz 文件规范中的一些明显内容

使用我的 repo collection 进行简短回答以 authz 文件为例

[/]
*=r

[Elgg-Russian:/]
@Coders=rw

[Elgg-TranslationRU:/]
@Translators=rw

[Hello:/]
lazybadger=rw

[Hello:/trunk]
lukoie=rw

[groups]
Coders=irrelevant,to,question
Translators=irrelevant,to,question
  • 我在单独的部分(作为根)定义 repo 集合的
  • 我使用简写“任何用户”- *
  • 我不使用简写“无权访问”,但它作为空字符串存在:*= 在任何部分都表示无权访问
  • 我有 3 个项目的三个存储库,不是 3 个项目的 1 个共享存储库,但即使在单个存储库的情况下(由于 SVNParentPath)我将从/部分开始

关于svn - 如何允许用户 r/w 访问某些子文件夹但不允许访问父文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13038067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com