我正在尝试在我的 Gentoo 系统上设置 ecryptfs,但是在自动挂载主文件夹时不断遇到问题。
ecryptfs 的工作方式是,有一个用用户密码加密的密码文件,其中包含解密主文件夹的密钥。当用户登录时,PAM 模块使用用户提供的密码解密文件并获取文件系统的密码,然后执行 mount 命令来挂载系统。
以 root 身份手动运行这个程序可以正常工作,但我无法通过 pam_mount 让它自动运行,下面是我遵循的指南:http://gentoo-en.vfose.ru/wiki/Encrypt_home_directory_with_ecryptfs
现在我遇到了这个问题:
mount.c:72): mount: only root can mount /home/.ecryptfs/petr.bena/.Private on /home/petr.bena
我在谷歌上搜索后发现,出于安全原因,PAM 不允许使用 mount 命令。说实话,我不在乎。我愿意牺牲系统的“安全性”,允许 PAM 进行挂载。因为在我看来,拥有未加密的主文件夹会带来更高的安全问题。
除了我之外没有其他人可以直接访问这台笔记本电脑,因此让非 root 用户能够进行挂载对我来说是可以的(所有非 root 用户都有 sudo)。
有没有办法允许 PAM 进行挂载?
更新:我发现在 fstab 中添加选项“用户”可以允许普通用户挂载,但现在我收到此错误:
(mount.c:72): mount: mount(2) failed: No such file or directory
这毫无意义,因为路径是正确的。很可能与 ecryptfs 本身有关
答案1
也许pam_ecryptfs 手册页有一些线索,提到需要在文件中输入/etc/pam.d
并且可能需要该文件/lib/security/pam_ecryptfs.so
(或在其他位置?)
要解开挂载密码并在登录时自动挂载私人目录,请将以下几行添加到
/etc/pam.d/common-auth: auth required pam_ecryptfs.so unwrap /etc/pam.d/common-session: session optional pam_ecryptfs.so unwrap
在 Linux Mint 上,我的/etc/pam.d/common-auth
文件有以下行:
auth optional pam_ecryptfs.so unwrap
并且/etc/pam.d/common-session
具有:
session optional pam_ecryptfs.so unwrap
实际上,包含“ecrypt”的任何文件/etc/pam.d/
都是这些:
$ grep ecrypt /etc/pam.d/*
/etc/pam.d/common-auth:auth optional pam_ecryptfs.so unwrap
/etc/pam.d/common-password:password optional pam_ecryptfs.so
/etc/pam.d/common-session:session optional pam_ecryptfs.so unwrap
/etc/pam.d/common-session-noninteractive:session optional pam_ecryptfs.so unwrap