Nextcloud 的 File Access Control(文件访问控制)应用让管理员建立并管理一组规则组。每个规则组包含一条或多条规则;只有组内所有规则都成立,才算该组匹配请求,随后拒绝访问。规则条件可以涉及 IP 地址、用户组、协作标签及下文列出的其他项目。
访问被拒绝后
用户被拒绝访问某个文件时,不能:
- 创建或上传该文件;
- 修改文件;
- 删除文件;
- 下载文件;
- 通过 Nextcloud 桌面、移动等客户端同步文件。
示例
按照应用管理的说明安装 File Access Control 应用后,进入配置页面,找到 Flow 应用的设置。

第一个规则组 Support only 9-5 拒绝 Support 用户组成员在下午5点至次日上午9点之间访问任何文件。第二个规则组 Internal testing 阻止 Internal testers 用户组成员从本地网络以外访问文件。
拒绝访问文件夹
阻止访问文件夹最简单的方法是使用协作标签。如“可用规则”一节所述,文件本身或其上级文件夹之一带有指定标签即可。给文件夹或文件分配标签,再以规则组阻止该标签。
检查结果不依赖用户对标签的权限。因此建议使用受限或不可见标签,否则用户可以移除标签后重新分配。
下面的示例阻止访问带有 Confidential 标签的文件夹。

阻止特定文件上传
可以阻止某些文件上传到 Nextcloud。定义基于 MIME 类型的规则后,访问控制引擎会阻止上传尝试。定义这类规则时,原文推荐使用正则表达式,以覆盖目标文件类型的各种已知媒体类型。
下面的正则表达式用于阻止 ZIP 文件上传:
/^application\/(zip|x-zip-compressed)$/i

常见配置错误
阻止用户组
拒绝某个用户组访问时,要确认共享机制没有让用户绕回去。如果用户能创建公开链接,就能退出登录,再通过自己创建的公开链接访问文件。此时访问者没有登录身份,也就不属于被阻止的用户组,因而可能读取或修改文件。
原文建议的变通方案是建立一个包含实例所有用户的用户组,再复制同一规则,将条件设为 not member of(不是该组成员),拒绝所有不属于该组的访问者。
外部存储
虽然不能经由 Nextcloud 访问被阻止的外部存储文件,但有直接访问外部存储权限的用户,仍然可以在那里直接修改文件。若要完全阻止用户,原文建议关闭 Allow users to mount external storage(允许用户挂载外部存储)选项。
可用规则
所有规则都可以通过操作符选项反转,例如从 is 改成 is not。
- 文件协作标签:文件本身或文件所有者的任何上级文件夹带有指定标签即可。访问控制中的标签应当受限,否则用户可以移除标签以重新获得访问权;推荐配合文件自动标记使用。
- 文件 MIME 类型:例如文本文件的
text/plain、文件夹的httpd/unix-directory。完整列表见 mimetypealiases.dist.json。 - 文件名:文件的名称;
is与is not比较不区分大小写。 - 文件大小:只在上传时可用。
- 请求远端地址:访问者的 IPv4 或 IPv6 地址范围。
- 请求时间:请求发生的时间段与时区。
- 请求 URL:请求文件的 URL,指文件实际提供服务的地址,而非用户正在浏览的页面地址。
- 请求 User-Agent:浏览器或客户端的 User-Agent;已有 Nextcloud 桌面、Android 和 iOS 客户端预配置选项。
- 用户组成员身份:用户是否属于指定用户组。











暂无评论内容