元数据访问控制

JuiceFS 文件系统的元数据(如目录结构、文件属性和时间戳等)保存在 JuiceFS 服务器中,通过 JuiceFS 令牌(Token)进行授权访问。用户可以通过 JuiceFS Web 控制台管理令牌,支持基于 IP 范围、读写权限和挂载子目录等的访问规则。

访问令牌

JuiceFS 访问令牌是系统随机生成的一个字符串,用于获取单个文件系统的访问权限。默认令牌可以在文件系统设置页面找到。用户通过 juicefs mount 挂载文件系统或 juicefs auth 进行交互认证时,系统将提示输入此令牌。

  1. $ sudo juicefs mount example /jfs
  2. Token for example:
  3. $ sudo juicefs auth example
  4. Token for example:

此外也可以通过命令行参数提供给 juicefs auth 以免交互的方式完成认证,适合自动化部署或自启动脚本。

  1. $ sudo juicefs auth example --token=${JFS_TOKEN}

认证通过之后,令牌将被保存在 ${HOME}/.juicefs/example.conf 中,仅限当前用户读写。

令牌管理

默认令牌允许用户从任意 IP 范围对整个文件系统进行读写操作。如需进行更精细的配置,可以前往访问控制管理界面。

令牌分为两大类,一类用于客户端访问文件系统内容,另一类仅供访问监控 API。

客户端访问令牌

客户端访问令牌用于授权客户端访问文件系统,常用选项说明如下:

  • IP 范围:仅允许来自指定 IP 范围的访问
  • 读写权限
    • 只读:仅允许读操作(open, read, readdir 等)。
    • 可读可追加写:在读操作的基础上同时允许以追加模式打开文件并写入。
    • 可读可写:允许所有读写操作。
  • 挂载选项
    • 挂载子目录:只能挂载这个子目录之下的路径,通过 --subdir 参数指定。
    • 允许后台任务:勾选后将允许客户端执行后台任务,如数据块删除、合并及同步等。

仅限访问 API 的令牌

JuiceFS 通过 Prometheus API 为每个文件系统导出监控数据,此列表中的令牌仅可用于访问监控 API,无法访问文件系统内容。