5 个版本
0.1.27 |
|
---|---|
0.1.26 | 2024 年 4 月 24 日 |
716 在 文件系统 中
每月 29 次下载
165KB
3K SLoC
EncryptedFS
在 Linux 上使用 FUSE 挂载的加密文件系统。它可以用来创建加密目录。
可以安全地在不受信任的服务器上备份加密文件夹,无需担心数据泄露。
您也可以将其存储在任何云存储中,如 Google Drive、Dropbox 等,并在多个设备上同步。
用法
您可以使用它作为命令行工具来挂载加密文件系统,或者直接使用库来构建自己的二进制文件(对于库,您可以参考 文档)。
命令行工具
要使用加密文件系统,您需要在系统上安装 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
。
默认值分别为 ChaCha20
和 600_000
。
日志级别
您可以通过在命令行中添加 --log-level
参数来指定日志级别。可能的值包括:TRACE
、DEBUG
、INFO
(默认)、WARN
、ERROR
。
--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