几年前我写这个答案时,这是实施解决方案的最佳方法。我现在建议您使用mount.ecryptfs_private 查看下一个答案。
我也在寻找一种自动挂载第二个eCryptfs卷的方法。以下脚本和配置修改集合将在登录时安全且自动地将卷安装到GUI或CLI。
有一个更好的解决方案正在创建中(尽管我认为在用户登录时尚未准备好自动安装,因为此脚本的保存期限有限。):
太小的硬盘驱动器上的ecryptfs-如何将链接添加到加密中?
脚本的安全性取决于您的主目录是否已使用eCryptfs加密,以便脚本和带有密码的密码可以解开密码。如果您在登录后用根外壳打开的情况下未锁定计算机,则可以访问密码,但是使用sudo NOPASSWD可以安全地安装分区,而无需输入密码或将密码短语保留在用户可读的文件中。
这些脚本的一个已知缺陷是注销时不会卸载您的第二个卷,因此它特别不适合多用户系统。
我的解决方案由几部分组成,包括两个Shell脚本,一个执行实际的安装,另一个充当包装。
这是包装器脚本,用于验证目录是否已安装,如果尚未安装,则它将使用sudo调用安装脚本:
/ home / johnf / scripts / automount_ecryptfs
#!/bin/bash
MOUNT_POINT=/home/johnf/slow
grep -q $MOUNT_POINT /proc/mounts
if [ $? -eq 1 ]; then
sudo /home/johnf/scripts/mount_other_ecryptfs
fi
该脚本调用/ home / johnf / scripts / mount_other_ecryptfs,如下所示。
请注意,该脚本假定您已启用文件名加密,如果没有启用,则有必要修改脚本以处理检测(请查看ecryptfs-recover-private),或者可以删除ecryptfs_fnek_sig挂载选项。
以下是/ home / johnf / scripts / mount_other_ecryptfs脚本:
#!/bin/bash
ENCRYPTED_VOLUME=/vol0/.ecryptfs/johnf/.Private/
MOUNT_POINT=/home/johnf/slow
PASSFILE=/home/johnf/scripts/ecryptfs_passphrase
MOUNT_PASSWORD=secret_passphrase
ECRYPTFS_SIG=`head -1 ${ENCRYPTED_VOLUME}//../.ecryptfs/Private.sig`
ECRYPTFS_FNEK_SIG=`tail -1 ${ENCRYPTED_VOLUME}//../.ecryptfs/Private.sig`
printf "%s" $MOUNT_PASSWORD | ecryptfs-insert-wrapped-passphrase-into-keyring ${ENCRYPTED_VOLUME}/../.ecryptfs/wrapped-passphrase
mount -t ecryptfs -o key=passphrase:passfile=${PASSFILE},ecryptfs_sig=${ECRYPTFS_SIG},ecryptfs_fnek_sig=${ECRYPTFS_FNEK_SIG},ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_passthrough=n ${ENCRYPTED_VOLUME} ${MOUNT_POINT}
您还需要创建一个带有密码的文件,该文件将被eCryptfs mount命令使用:
/ home / johnf / scripts / ecryptfs_passphrase:
passwd=secret_passphrase
您需要修改几个文件的权限:
chmod +x /home/johnf/scripts/automount_ecryptfs
sudo chown root:root /home/johnf/scripts/mount_other_ecryptfs /home/johnf/scripts/ecryptfs_passphrase
sudo chmod a=x /home/johnf/scripts/mount_other_ecryptfs
sudo chmod 400 /home/johnf/scripts/ecryptfs_passphrase
在创建脚本之前,您需要创建一个sudoers配置,以允许使用sudo执行安装脚本,而无需输入您的sudo密码。
将以下内容添加到/ etc / sudoers(或/etc/sudoers.d中的文件)。您将要用用户名替换johnf。必须使用安装脚本的绝对路径。
johnf ALL = NOPASSWD: /home/johnf/scripts/mount_other_ecryptfs
最后一步是在登录时调用automount_ecryptfs脚本。
在Ubuntu Unity(可能还有gnome)上,使用Startup Applications小程序创建一个新的启动程序,该程序调用/ home / johnf / scripts / automount_ecryptfs。
要将登录时自动将第二个eCryptfs卷挂载到bash shell中,您将需要修改〜/ .bashrc文件。添加以下内容:
/home/johnf/scripts/automount_ecryptfs
使用此配置后,您现在应该自动挂载第二个eCryptfs卷。