启动时挂载 EncFS

启动时挂载 EncFS

我正在尝试让 EncFS 加密主目录在启动时挂载而无需用户输入(直接挂载,而不是通过 ssh)。尝试了各种解决方案(在 pam_mount.conf.xml 中添加卷条目,对各种 pam 文件进行各种调整),但都没有成功。可以手动挂载 encfs 目录,但需要手动输入密码。可以使用 expect 脚本完成所有这些操作...

有许多关于在启动时自动挂载 encfs 的帖子,但是无法让它们中的任何一个工作(缺少预期脚本)。

有人能建议如何做到这一点吗(我正在使用 Debian Squeeze)?或者使用 expect 脚本是最好的方法吗?

谢谢!

答案1

您可以通过管道将密码传输至恩夫斯像这样:

echo password | encfs -S /crypted /uncrypted

答案2

我只是使用像下面这样的 bash 脚本:

#!/bin/bash
ENCFS6_CONFIG="/home/<user>/.keys/encfs/key_data.xml" encfs -o nonempty --extpass='/home/<user>/.keys/encfs/key_data_pw' /run/media/<user>/data /home/<user>/DATA

EncFS 文档中对ENCFS_CONFIG和的使用有详细记录。extpass

答案3

同样在 Squeeze 上,我在 /etc/rc.local 中使用以下行:

/usr/local/sbin/mount_crypted_encfs.exp

脚本如下:

#!/usr/bin/expect -f

set timeout 1

spawn /usr/bin/encfs /crypted /uncrypted -- -o allow_other -o default_permissions
expect "EncFS Password:"
send "myPassword\r" 

expect eof

但十分之一的时间,它会挂载失败,我必须手动运行期望脚本:-/

答案4

我使用 SD 卡作为密钥来打开 encfs 文件夹,但您也可以使用特定于您的系统的文件。

encfs /home/user/crypted /home/user/uncrypted -o umask='007' --public  --extpass='udevadm info --query=all --name=/dev/mmcblk0p1 | grep ID_SERIAL'

将其放入你的 rc.local,或将其作为服务运行

相关内容