收起左侧

飞牛 NAS 外置存量硬盘专属权限管理工具

3
回复
208
查看
[ 复制链接 ]

1

主题

40

回帖

0

牛值

江湖小虾

一、工具诞生背景(大家都会遇到的痛点)

飞牛 NAS 原生存储机制有个硬性限制:硬盘必须在系统内格式化,才会被识别为内置存储,系统自带的应用权限面板才能正常管控文件夹。

很多玩家手里早就存满电影、资源的旧硬盘,直接插上机器只会被识别成外置磁盘,原生面板完全无法控制外置盘的读写权限

不同影音、刮削、下载应用都对应独立的系统账号(比如 trim-media),想要让软件正常读取、写入盘里的资源,只能手动 SSH 敲一堆 Linux 命令改属主、属组、权限,门槛极高,还很容易踩坑:

  1. 单纯 chown 只能改用户,容器自带 AppUsers 组残留,软件只能读不能写;
  2. 权限无法灵活切换,私有库、共享媒体盘、公共上传盘只能硬改代码;
  3. 新建文件夹后还要重复执行 3 条授权命令,操作繁琐。

基于这个痛点,我开发了一套网页可视化权限工具,不用记任何命令,浏览器点选就能一键完成目录归属、读写权限**配置,专门适配挂载在 /vol00下的所有磁盘。

二、关于我硬盘显示中文盘符的说明(重要前置提醒)

很多人会疑惑,为什么我的磁盘路径是 /vol00/4T电影盘这种中文名字,这里统一解释清楚:

飞牛原生外接硬盘不会自定义中文目录名,我是通过修改 /etc/fstab,使用磁盘 UUID 自定义挂载路径实现中文盘符,贴出我的 fstab 参考:

plaintext

# 根文件系统(系统必需,请勿移除)
UUID=e2fe866e-92f4-41bc-9151-84ba568807b2 / ext4 errors=remount-ro 0 1

# 交换文件(系统必需)
/swapfile none swap sw 0 0

# EFI系统分区(系统必需)
UUID=6890-5F3A /boot/efi vfat umask=0077 0 1

#东芝4T电影盘 EXT4
UUID=cdc2a561-49d9-4e5c-952f-8f19678bce10 /vol00/4T电影盘 ext4 rw 0 0
#希捷4T机械硬盘 EXT4
UUID=75824c67-6535-476d-be03-242518e0da60 /vol00/4T机械硬盘 ext4 rw 0 0
#西数1T备份盘 EXT4
UUID=e6399d7b-4802-4773-851c-c43d6eff5646 /vol00/1T备份盘 ext4 rw 0 0

给使用者的两点关键提示

  1. 工具不区分中文 / 英文文件夹名称:只要磁盘挂载在 /vol00内,不管目录叫什么名字,工具都能正常扫描、授权;盘符是中文完全不影响功能。
  2. 两种情况适配方案:
    ① 想自定义中文盘符:修改 /etc/fstab,通过 UUID 挂载到 /vol00/自定义名称,重启生效;
    ② 不想折腾挂载脚本:只要你的磁盘最终挂载根目录是 /vol00,工具直接正常使用;
    ③ 磁盘不在 /vol00挂载:要么改 fstab 统一挂载到 vol00,要么打开 app.py修改第一行 BASE_DIR = "/vol00"为你的实际挂载路径。

额外提醒:外置存量硬盘千万别在飞牛系统里格式化,会清空硬盘全部影视数据!

三、工具完整核心功能

  1. 双重强制修正属主属组,根治只读 bug
    工具内部自动执行 chown -R + chgrp -R两条命令,彻底覆盖残留的 AppUsers 用户组,目录完整归属目标应用账号,不会出现只能浏览无法写入的问题。
  2. 三档权限下拉自由切换,无需反复改代码打包
    • 700 私有模式:仅绑定账号拥有读写,其他软件完全无法访问,适合私密资源库;
    • 775 媒体共享模式:账号 + 同组可读写,其余程序仅可读,绝大多数影音刮削软件通用;
    • 777 全开模式:所有账号、应用完整读写,适合多人公共上传盘。
  3. 两种目录操作模式
    • 使用现有目录:直接选中已存在的文件夹一键授权;
    • 新建子目录:选定上级磁盘目录,输入名称自动创建文件夹并同步配置权限。
  4. 多层安全防护
    • 路径白名单校验:仅允许操作 /vol00内目录,杜绝越权访问系统文件;
    • 账号名校验:仅允许合法字母数字下划线账号;
    • 权限白名单:只放行 700/775/777 三种安全权限,拒绝非法参数。
  5. 纯网页可视化操作,小白零门槛
    打开浏览器即可使用,页面自动加载全部磁盘目录,操作成功 / 失败实时弹窗提示,完全不用 SSH 命令。

四、两种部署方案(新手优先选离线镜像)

方案 1:离线镜像 tar 包(推荐普通用户,开箱即用)

我导出了完整镜像 tar 文件,内置全部代码、运行环境,不用自己构建:

  1. 将 tar 镜像上传至 NAS 任意目录;
  2. 新建 Docker 项目 docker-compose.yml必须挂载 /etc/passwd,否则无法读取系统用户 UID/GID,工具直接报错);
  3. 启动容器,浏览器访问 NASIP:5000 直接使用。

方案 2:源码手动构建(适合懂 Docker、需要自定义挂载路径的用户)

替换 app.pyindex.html两个文件,执行**打包更新命令:

bash

运行

cd /vol1/1000/Docker/fn-nas-perm
docker compose rm -f
docker rmi fn-nas-perm-fn-perm-tool
docker compose build --no-cache
docker compose up -d

五、配套分享文件清单

  1. 权限工具完整离线镜像 tar 包
  2. 后端 app.py + 前端页面 index.html完整源码
  3. docker-compose.yml 标准部署模板
  4. UUID 自定义中文盘符 fstab 挂载参考(上文已贴)
  5. 完整图文操作教程

六、高频避坑总结

  1. 容器配置必须挂载 /etc/passwd:/etc/passwd:ro,缺失会读取不到系统用户,授权报错;
  2. 磁盘挂载路径不在 /vol00,二选一:修改 fstab 挂载目录 / 修改代码内 BASE_DIR;
  3. 存量外置硬盘禁止系统内格式化,会清空全部数据;
  4. 授权完成后可执行命令 ls -ld "目录完整路径" 核对属主、属组、权限是否生效。

结尾

工具全系列飞牛 NAS 通用,ARM、X86 机型都能正常运行,完美解决外接存量电影盘权限管控难题,省去大量 SSH 命令操作。使用中遇到任何问题,欢迎在评论区留言交流。

镜像文件:

通过网盘分享的文件:fn-nas-perm.tar
链接: https://pan.baidu.com/s/1wsLyeAzmxrThsx8eHjeo1w?pwd=trb8 提取码: trb8 复制这段内容后打开百度网盘手机App,操作更方便哦
--来自百度网盘超级会员v5的分享

程序本体:

通过网盘分享的文件:fn-nas-perm.rar
链接: https://pan.baidu.com/s/1XtoJxg2cAUGIWDax9U4o6w?pwd=yhpp 提取码: yhpp 复制这段内容后打开百度网盘手机App,操作更方便哦
--来自百度网盘超级会员v5的分享

导入方式:

image.png

效果:
image.png

image.png

收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

1

主题

40

回帖

0

牛值

江湖小虾

昨天 17:57 楼主 显示全部楼层

补充说明:

给大家解释下这个程序的运行逻辑:你填入账号,程序会自动读取这个账号对应的用户和用户组,递归设置在你选中的目录上,权限默认是 777。

经过我实际测试之后发现,自建的文件夹,不需要填各个应用的账号,只填写 nas 创建时的管理员账号就可以,权限放开后各个应用都能正常读写。如果是整块硬盘,直接给硬盘根目录设置一次就行,子目录会自动继承权限,分享给大家做个参考。

0

主题

8

回帖

0

牛值

江湖小虾

可以啊,强强强!

:谢谢支持  详情 回复
1 小时前

1

主题

40

回帖

0

牛值

江湖小虾

1 小时前 楼主 显示全部楼层
Roc.y 发表于 2026-7-21 13:31
可以啊,强强强!

:谢谢支持
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则