事实上这是一个插件(APP),也是ownCloud/Nextcloud的一项重要功能:文件访问控制。文件访问控制APP可以提供丰富强大的访问管理功能,从单文件权限到组文件,再到IP地址屏蔽,可以引用访问的时间、文件类型、用户、组等因素。
演示环境:Nextcloud 12 (本来想用ownCloudX,结果发现ownCloud里没这个插件,幸好Docker把ownCloud切换成Nextcloud只需要两行命令+几秒钟)
访问Nextcloud实例->应用->Files->File access control->启用,即可启用插件。(顺便留意一下旁边的Files automated tagging,一会儿我们将用到它)。
完成启用后,到管理(在Nextcloud13和ownCloudX中应为“设置”)->文件访问控制即可开始。
文件访问控制提供了以下几种过滤规则:
text/plain
当一个用户被禁止访问一个文件(夹),他将无法进行以下操作:
点击“添加规则组”以添加一个规则组,先给规则组起个名吧,比如“Example”。
规则的设置都很简单,我这儿展示几个稍复杂些的:
在左侧第一个下拉菜单中选择“文件MIME类型”:
第二个下拉菜单中选择对该规则的动作:是、不是、匹配、不匹配:后面的内容填写文件的MIME类型。
一个完整的子规则如下:
上图中的规则会对所有文件MIME类型为images/png
(也就是png格式的图片,注意文件后缀名不等于MIME类型),那么所有png图片都将被予以限制(参见上文的限制内容)。
“匹配”、“不匹配”指的是对正则表达式的匹配,你可以使用正则表达式进行配置,例如:
上图中的正则表达式/^image\/(jpeg|png|bmp)$/i
匹配MIME类型为jpeg、png、bmp的文件,这些格式的文件都将受到控制。
对所有的png文件都予以限制不是个常见的需求,因为这个影响的所有用户,包括管理员。所以我们可以
缩小限制范围,比如再加上时间限制:
上面这个规则限制了用户只能在北京时间(Asia/Shanghai)9:00到18:00操作文件,如果将“之间”改为“不在之间”,那么用户在9:00到18:00将无法操作文件。
ownCloud/Nextcloud有一个功能是“协作标签”,其实就是文件(夹)的标签,例如:
我们可以利用这些标签对文件进行管理,比如我要对所有带有“MP4”标签的文件进行限制,可以这样写:
效果如下图,已经无法对标记为MP4的文件进行各种操作了:
即使是仅有的“下载”,当你点击它时,会出现这样的页面:
但是这样存在一个巨大的缺陷,即前文所提到的用户可以自行去掉便签,接触对文件的限制。那么这是我们可以用Files automated tagging插件,这个插件可以自动为文件打上标签,并且可以使标签无法被移除。
到应用页面启用这个插件,然后到管理->工作流里找到“文件自动设置标记",,可以看到这个插件的机制的文件访问控制插件一样,是使用规则组进行配置,下面是一个给所有JPEG类型的文件打上“JPG”标签的规则(新标签可以在上方的“协同标签”中添加):
然后在文件访问控制中添加如下规则,就可以实现对特定标签的持续控制:
该插件还提供了针对用户IP拒绝访问的功能,即常说的封IP,这个还是挺有用的。格式为IP+网段,例如:
文件访问控制提供了可以自由组合的规则,能够充分适应管理者的需求,有条理地管理Nextcloud上的文件和用户行为。
本文由 橙叶博客 作者:FrankGreg 发表,转载请注明来源!
请问在服务器本地把文件拷贝到data目录下的用户文件夹下,怎么可以让用户通过网络访问呀?原来以为拷贝进去就行了,拷进去后用账户登录看不到新的文件夹。
请问在服务器本地把文件拷贝到data目录下的用户文件夹下,怎么可以让用户通过网络访问呀?原来以为拷贝进去就行了,拷进去后用账户登录看不到新的文件夹。
博主,请问有办法设置某个让用户只能在线浏览文件图片,而禁止下载文件的嘛?
你好,这个问题解决来吗?我也想问这个问题
博主,我的安装好了,但是没有这个插件啊,能指导一下吗
你好,我遇到一个问题
开启缓存,需要修改nextcloud目录下config/config.php文件,但是修改了这个文件,就不能访问nextcloud服务器了,提示服务器错误,是因为nextcloud不允许从外面修改他的文件吗?还是其他权限问题,搞了一天了
可能是语法什么的有错误
搞定了,最后改用了redis,才成功,但是遇到一个问题,就是你的一片文章关于隐藏inex.php在地址栏显示的问题,我照搬你的,然后,index.php不显示了,但是不能访问nextcloud服务器了,我的是13.0.5版本,环境是 apache2,ubuntu16.04
请问,怎么去掉特定组的下载功能
如果需要对某个文件夹下面的文件只读,不可修改和删除该如何做呢?
App:GroupFolders,也许有用
请教博主,我想实现以下功能,研究了 2 天目前还没有较好的方案;
需求:
1. 建立一个用户组
2. 该用户组只有下载的权限,不能建立文件夹和上传文件,包含自己根目录下的文件;
目的:
1. 实现一个用户组来管理文件(创建、修改、删除)
2. 另外一个用户组下载文件
方案1:
限制该用户组下面的所有成员存储空间配额为 “零”
是否还有其他方案可以配置用户或用户组的对文件管理的详细权限呢?
请教一下没有没批量更新标签的工具或是插件
文中提到的Files automated tagging就可以~
好的,非常感谢~~~我尝试用你方法试试。搞定的话,告诉你一声。^_^
你好,请教一个问题~~~ 我在使用时在线播放会遇到视频无字幕的问题。然而我不会修改nextcloud的html5视频播放器的源码,实现可以挂载字幕的问题。例如网页播放器常见的webvtt格式的字幕~请问我该如何修改???小白不懂,只能看懂一点html5···
看了一下源码,发现几乎纯js写的,有点头痛……
可以尝试在js/viewer.js里第16行左右添加字幕标签.
但是变量什么的都在videojs/video.js里,很复杂,好像是用正则匹配得到的视频地址。
提供个思路:使用正则表达式匹配到获得字幕的地址,然后使用
其余的我就爱莫能助了,因为我对js也不熟……