如何允许 pam 执行 mount

如何允许 pam 执行 mount

我正在尝试在我的 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

相关内容