收起左侧

没有文件夹加密功能,那我自己来搭建吧

5
回复
840
查看
[ 复制链接 ]

0

主题

2

回帖

0

牛值

江湖小虾

2026-1-9 17:32:03 显示全部楼层 阅读模式

以前用群晖,文件夹可以进行加密,挂载后,才能查看,而现在切换到飞牛后,发现官方没有这个功能。怎么办?发挥自己动手,丰衣足食的光荣传统,自己搭一个!!!

发现有两个方案可以实现,一个是gocryptfs,一个是cryfs,都是基于内核的FUSE 用户空间文件系统框架的。两个方案大同小异,对比如下。我选了gocryptfs。

区别对比

特性 gocryptfs (推荐) CryFS
加密单位 基于文件(1对1加密) 基于数据块(拆分为固定大小的块)
隐私保护 加密文件名和内容,但泄露文件大小、数量和目录结构 完全隐藏。攻击者无法知道文件大小、数量或目录结构
读写性能 极快。开销非常小,适合 NAS 存储大量数据 较慢。因为要维护复杂的块映射,随着文件增多性能下降明显
存储效率 高。原始文件多大,加密后基本还是多大 较低。由于采用固定块,会产生大量小文件,且存在空间浪费
云同步 非常友好(只同步变动的文件) 较友好,但因为块太多,同步工具压力大
审计/成熟度 经过专业安全审计,非常稳定 基于博士论文设计,尚未经过同级规模的审计

登录飞牛SSH,开干

安装步骤

  1. 先进入root

    sudo -i
    
  2. 安装需要的包

apt update
apt install gocryptfs fuse
  1. 因为ssh挂载用户权限和飞牛web页面用户可能不一致,或者要通过SMB 访问,必须打开允许其他用户访问的选项。
sudo nano /etc/fuse.conf

取消里面user_allow_other的注释,然后Ctrl+S保存,Ctrl+X退出

  1. 建立加密目录和解密挂载目录
    例如:在存储1中建立文件夹xiaomimi,文件夹内部建立存放加密数据的文件夹mi,和挂载解密的明文文件夹ming

image.png

  1. ssh中初始化加密文件夹

    cd /vol1/1000/xiaomimi
    先切换到xiaomimi目录,后面的指令都是在此文件夹下执行
    
    gocryptfs -init ./mi
    
    执行如下所示:输入两次你的加密密码,会生成一个恢复密钥,自己复制保存,以防自己忘记密码时恢复用
    -------------------------------------------
    Choose a password for protecting your files.
    Password:
    Repeat:
    
    Your master key is:
    
        631d7c49-718edfe0-d7baf442-79b291c2-
        cbd4d2eb-ffdf421d-d0d5824f-bc8400ee
    
    If the gocryptfs.conf file becomes corrupted or you ever forget your password,
    there is only one hope for recovery: The master key. Print it to a piece of
    paper and store it in a drawer. This message is only printed once.
    The gocryptfs filesystem has been created successfully.
    You can now mount it using: gocryptfs mi MOUNTPOINT
    
    
  2. 使用时,把加密文件夹挂载到明文文件夹,然后在明文文件夹ming中进行增删改查,内容会自动加密到加密文件夹mi

    gocryptfs -allow_other ./mi ./ming
    

注意:一定要加-allow_other选项,不然ssh挂载了,web端可能没有权限修改

好了,你现在可以把你的小秘密都放到ming文件夹中了!!!!!!!!

  1. 放好了小秘密,卸载明文文件夹,小秘密从ming文件夹消失,藏起来啦!

    fusermount -u ./ming
    

特别注意事项:有些人可能会遇到挂载后,无法在ming文件夹根目录建立文件夹,但可以建立文件的问题,似乎是FUSE对挂载根目录权限太严的原因,这时候,只要挂载后,ssh中去执行强行建立一个子文件夹,然后子文件夹中,就不存在无法建立文件夹的问题了。

挂载ming后,切换到ming目录,建立一个子文件夹

cd ming

mkdir -p mimi
一定要加-p参数,不然无法建立,然后所有数据丢mimi文件夹就好了

为了防止大家每次打命令太累,提供两个脚本,放任意目录,用ssh或者应用市场中的FntermX网页终端执行即可,大家自行取用:

挂载mount.sh:

#!/bin/bash

# 配置路径(请根据你的实际路径修改)
CIPHER_DIR="/vol1/1000/xiaomimi/mi"
MOUNT_POINT="/vol1/1000/xiaomimi/ming"

# 检查是否已经挂载
if mountpoint -q "$MOUNT_POINT"; then
    echo "⚠️ 错误:文件夹已经挂载了。"
    exit 1
fi

echo "🔐 正在准备挂载加密文件夹..."
echo "请输入 gocryptfs 主密码:"

# 执行挂载命令
# -allow_other 确保文件管理器可见
sudo gocryptfs -allow_other "$CIPHER_DIR" "$MOUNT_POINT"

if [ $? -eq 0 ]; then
    echo "✅ 挂载成功!你现在可以在文件管理器访问了。"
else
    echo "❌ 挂载失败,请检查密码是否正确。"
fi

卸载unmount.sh:

#!/bin/bash

# 配置路径
MOUNT_POINT="/vol1/1000/xiaomimi/ming"

echo "🔓 正在尝试卸载加密文件夹..."

# 使用 fusermount 卸载
# -u 卸载,-z 懒惰卸载(如果文件被占用,等不占用后再彻底卸载)
sudo fusermount -u "$MOUNT_POINT"

if [ $? -eq 0 ]; then
    echo "✅ 卸载成功,数据已锁定。"
else
    echo "⚠️ 卸载失败,请确保没有程序(如文件管理器或下载器)正在占用该文件夹。"
fi

用脚本还是不够优雅,还有一种方案是利用docker建立一个网页页面,在页面中进行输入密码,然后点击按钮进行挂载和卸载,等研究好了,再更新出来~~~

收藏
送赞 4
分享

本帖子中包含更多资源

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

x

0

主题

2

回帖

0

牛值

江湖小虾

2026-1-12 16:56:50 楼主 显示全部楼层

在终端输入,总感觉不够优雅

动画《间谍过家家》中角色亨利·亨德森的动态表情GIF,他瞪大双眼,面露震惊,配合重复出现的文字“噢不”与“这太不优雅了”,生动展现其对不优雅事物的强烈反应。该片段源自其经典台词衍生的“优雅,太优雅了”梗,通过夸张表情和重复文字制造幽默效果。

能不能用docker搭建一个页面,然后在页面进行挂载和卸载呢?

Of course!

来,开干:docker 文件夹中建立olivetin文件夹,然后再建立子文件夹config

image.png

在config中建立配置文件config.yaml,写入如下内容:

actions:
  - title: "🔐 挂载加密文件夹"
    icon: "📂"
    # 使用管道符传递密码,-passfile /dev/stdin 是最安全且不留痕迹的方式
    shell: |
      echo "{{MY_PASSWORD}}" | gocryptfs -allow_other -passfile /dev/stdin /xiaomimi/mi /xiaomimi/ming
    arguments:
      - name: "MY_PASSWORD"
        type: "password"
        title: "请输入 gocryptfs 主密码"

  - title: "🔓 卸载加密文件夹"
    icon: "🔒"
    # 使用 fusermount 卸载,注意路径与挂载时一致
    shell: "fusermount -u /xiaomimi/ming"

然后打开docker,选Compose,新增项目

输入项目名称:olivetin,目录选刚才创建的docker/olivetin目录,选创建compose文件

输入如下内容:

services:
  olivetin:
    image: jamesread/olivetin:latest
    container_name: olivetin
    restart: unless-stopped
    ports:
      - "1337:1337"
    environment:
      - TZ=Asia/Shanghai
    volumes:
      # 映射配置文件
      - /vol1/1000/docker/olivetin/config/config.yaml:/config/config.yaml:ro
      # 映射需要加密/解密的数据根目录 (请根据你实际路径修改)
      - /vol1/1000/xiaomimi:/xiaomimi:shared
      # 映射 FUSE 相关设备和配置,允许容器执行挂载动作
      - /etc/fuse.conf:/etc/fuse.conf:ro
      - /usr/bin/gocryptfs:/usr/bin/gocryptfs:ro
      - /usr/bin/fusermount:/usr/bin/fusermount:ro
      - /lib/x86_64-linux-gnu:/lib/x86_64-linux-gnu:ro
    # 必须开启特权模式,否则无法在宿主机建立挂载点
    privileged: true
    # 强制以 root 运行以确保有权限操作宿主机目录
    user: "0:0"

选上创建后立刻启动,然后:原~~ 启动,错了,Docker,启动~~~

image.png

等待图标小点点变绿以后,浏览器输入:飞牛IP:1337

当当当当~~~~

image.png

点点小鼠标,输入密码,就可以挂载和卸载啦!!!

优雅,实在是优雅!!!

image.png

本帖子中包含更多资源

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

x

1

主题

19

回帖

0

牛值

江湖小虾

2026-1-13 21:31:51 显示全部楼层

赞!!!

1

主题

52

回帖

0

牛值

初出茅庐

2026-2-10 10:28:26 显示全部楼层

感谢分享~!

在 飞牛 还没有 文件夹加密 功能出来前。

这个非常实用。

储存一些 私人 文件,很好。

7

主题

13

回帖

0

牛值

江湖小虾

fnOS1.0上线纪念勋章飞牛百度网盘玩家

2026-2-21 01:54:30 显示全部楼层

感谢分享~!

这个支持其他用户使用吗?

只要有相应文件夹权限就可以挂载  详情 回复
7 天前

0

主题

2

回帖

0

牛值

江湖小虾

7 天前 楼主 显示全部楼层
污双双 发表于 2026-2-21 01:54
感谢分享~!
这个支持其他用户使用吗?

只要有相应文件夹权限就可以挂载
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则