元数据访问控制
JuiceFS 文件系统的元数据(如目录结构、文件属性和时间戳等)保存在 JuiceFS 服务器中,通过 JuiceFS 令牌(Token)进行授权访问。用户可以通过 JuiceFS Web 控制台管理令牌,支持基于 IP 范围、读写权限和挂载子目录等的访问规则。
访问令牌
JuiceFS 访问令牌是系统随机生成的一个字符串,用于获取单个文件系统的访问权限。默认令牌可以在文件系统设置页面找到。用户通过 juicefs mount
挂载文件系统或 juicefs auth
进行交互认证时,系统将提示输入此令牌。
$ sudo juicefs mount example /jfs
Token for example:
$ sudo juicefs auth example
Token for example:
此外也可以通过命令行参数提供给 juicefs auth
以免交互的方式完成认证,适合自动化部署或自启动脚本。
$ sudo juicefs auth example --token=${JFS_TOKEN}
认证通过之后,令牌将被保存在 ${HOME}/.juicefs/example.conf
中,仅限当前用户读写。
令牌管理
默认令牌允许用户从任意 IP 范围对整个文件系统进行读写操作。如需进行更精细的配置,可以前往访问控制管理界面。
令牌分为两大类,一类用于客户端访问文件系统内容,另一类仅供访问监控 API。
客户端访问令牌
客户端访问令牌用于授权客户端访问文件系统,常用选项说明如下:
- IP 范围:仅允许来自指定 IP 范围的访问
- 读写权限
- 只读:仅允许读操作(open, read, readdir 等)。
- 可读可追加写:在读操作的基础上同时允许以追加模式打开文件并写入。
- 可读可写:允许所有读写操作。
- 挂载选项
- 挂载子目录:只能挂载这个子目录之下的路径,通过
--subdir
参数指定。 - 允许后台任务:勾选后将允许客户端执行后台任务,如数据块删除、合并及同步等。
- 挂载子目录:只能挂载这个子目录之下的路径,通过
仅限访问 API 的令牌
JuiceFS 通过 Prometheus API 为每个文件系统导出监控数据,此列表中的令牌仅可用于访问监控 API,无法访问文件系统内容。