#加密 #FUSE #系统 #安全 #命令行

bin+lib encryptedfs

在 Linux 上使用 FUSE 挂载的加密文件系统。它可以用来创建加密目录。

5 个版本

0.1.27 2024 年 4 月 25 日
0.1.26 2024 年 4 月 24 日

716文件系统

每月 29 次下载

Apache-2.0

165KB
3K SLoC

EncryptedFS

在 Linux 上使用 FUSE 挂载的加密文件系统。它可以用来创建加密目录。

可以安全地在不受信任的服务器上备份加密文件夹,无需担心数据泄露。
您也可以将其存储在任何云存储中,如 Google Drive、Dropbox 等,并在多个设备上同步。


encryptedfs-bin crates.io docs.rs test

用法

您可以使用它作为命令行工具来挂载加密文件系统,或者直接使用库来构建自己的二进制文件(对于库,您可以参考 文档)。

命令行工具

要使用加密文件系统,您需要在系统上安装 FUSE。您可以通过运行以下命令安装它(或根据您的发行版)

Arch

sudo pacman -Syu && sudo pacman -S fuse3

Ubuntu

sudo apt-get update && sudo apt-get -y install fuse3

从 AUR 安装

您可以使用以下命令安装加密文件系统的二进制文件

yay -Syu
yay -S encryptedfs

使用 cargo 安装

您可以使用以下命令安装加密文件系统的二进制文件

cargo install encryptedfs

以下是一个如何使用加密文件系统的基本示例

encryptedfs --mount-point MOUNT_POINT --data-dir DATA_DIR

其中 MOUNT_POINT 是加密文件系统将被挂载的目录,DATA_DIR 是存储加密数据的目录。
它将提示您输入密码以加密/解密数据。

更改密码

加密密钥存储在一个文件中,并使用从密码派生的密钥进行加密。这提供了更改密码的可能性,而无需解密和重新加密所有数据。这是通过使用旧密码解密密钥并用新密码重新加密它来完成的。

要更改密码,您可以运行以下命令

encryptedfs --change-password --data-dir DATA_DIR

其中 DATA_DIR 是存储加密数据的目录。
它将提示您输入旧密码,然后输入新密码。

加密信息

您可以通过将以下参数添加到命令行来指定加密算法和派生密钥哈希轮数

--cipher CIPHER --derive-key-hash-rounds ROUNDS

其中 CIPHER 是加密算法,ROUNDS 是派生密钥哈希的轮数。
您可以使用以下命令检查可用的加密算法:encryptedfs --help

默认值分别为 ChaCha20600_000

日志级别

您可以通过在命令行中添加 --log-level 参数来指定日志级别。可能的值包括:TRACEDEBUGINFO(默认)、WARNERROR

--log-level LEVEL

在 Docker 中启动

docker pull xorio42/encryptedfs

启动一个容器以在其中设置挂载

docker run---设备/dev/fuse--cap-addSYS_ADMIN --安全-opt apparmor:unconfined xorio42/encryptedfs:latest/bin/sh

在容器中创建挂载和数据目录

mkdir fsmnt&&mkdir fsdata

启动 encryptedfs

encryptedfs--挂载-点 fsmnt--数据-目录 fsdata

输入加密密码。

获取容器 ID

docker ps

在另一个终端中使用上述 ID 连接到正在运行的容器

docker exec-<ID> /bin/sh

从这里您可以在 fsmnt 目录中创建文件以进行实验

cd fsmnt
mkdir 1
ls
echo "test" > 1/test
cat 1/test

从源码构建

获取源码

[email protected]:radumarias/encryptedfs.git

依赖项

Rust

要从源码构建,您需要安装 Rust,有关如何安装的更多详细信息,请参阅此处

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

因此,Rust 开发者通常会将此目录包含在他们的 PATH 环境变量中。在安装过程中,rustup 将尝试配置 PATH。由于平台、命令外壳和 rustup 中的错误之间的差异,对 PATH 的修改可能需要在控制台重新启动或用户注销后才能生效,或者可能根本无法成功。

如果在安装后,在控制台中运行 rustc --version 失败,这可能是最可能的原因。在这种情况下,请手动将其添加到 PATH 中。

其他依赖项

还需要这些依赖项(或根据您的发行版)

Arch

sudo pacman -Syu && sudo pacman -S openssl lib32-openssl fuse3 base-devel

Ubuntu

sudo apt-get update && sudo apt-get install libssl-dev openssl fuse3 build-essentials

调试构建

cargo build

发布构建

cargo build --release

运行

cargo run -- --mount-point MOUNT_POINT --data-dir DATA_DIR

依赖项

~13–27MB
~383K SLoC