flydav icon indicating copy to clipboard operation
flydav copied to clipboard

能否支持目录过滤功能?在分配特定的目录给指定用户时,希望可以过滤目录中特定文件及文件夹

Open hhs66317 opened this issue 2 years ago • 4 comments

比如配置中,增加一个专门配置特定用户的目录过滤字段 sub_fs_exclude

这样在使用 admin 登录时,不能访问 /opt/usr/ 目录下 abc、bcd、x/y/z 目录,其他目录可以正常访问

另外关于目录权限的设置,如果能更细化一些就更好了(只读,读写,禁止),作为额外的设置,提供给有需要的人使用,不过如果只考虑轻量化,也可以不做支持。

[server]
host = "0.0.0.0"
port = 7086
path = ""
fs_dir = "/opt"

[auth]
    [[auth.user]]
    username = "admin"
    sub_fs_dir = "/usr/"
    sub_fs_exclude = "/abc|/bcd|/x/y/z"
    sub_path = ""
    password_hash = "99c3b031ec66335ae36b6687d5ec778a11915bb232c905079abbb6b8cdd927b5"
    password_crypt = "sha256"
    # add more users here
    # note: the above line is required by auto install script, do not delete.

hhs66317 avatar Feb 14 '23 06:02 hhs66317

这些是可以通过 Linux 自带的权限控制实现的。更复杂的功能,可以自行在服务的 downstream 部署 gateway 实现。

pluveto avatar Feb 14 '23 06:02 pluveto

Linux 权限的话,用 flydav 运行的权限来决定目录的读写权限,不能解决特定子目录开放给A,不开放给B的问题

在另外的地方额外配合控制权限,就太麻烦了,本身做为webdav也有权限控制的需求,一个配置文件直接就可以搞定是最方便的。

我现在主要是的类似软件是 chfs ,不过也有一些小问题,一直没有解决,它的权限控制基本上满足使用了

hhs66317 avatar Feb 14 '23 07:02 hhs66317

你可以描述一下你的使用场景吗?

pluveto avatar Feb 14 '23 07:02 pluveto

举个例子:

目录结构如下:

\---A
    \---B
        +---F
    +---C
    +---D
    +---E

admin用户需要对整个A目录有读写权限 B用户不能访问A/B/F(也不能看到),A/B下的其他目录可以读写,A下的其他目录只读 C用户A/C下的目录可以读写,A下的其他目录只读 D用户A/D下的目录可以读写,A下的其他目录只读,但不能访问A/B/F(也不能看到) E用户A/E下的目录可以读写,其他目录均不可读写

hhs66317 avatar Feb 14 '23 07:02 hhs66317