如何在 ecryptfs 中使用临时文件描述符?

如何在 ecryptfs 中使用临时文件描述符?

我希望能够运行一个脚本,让它提示我输入密码,然后挂载一个ecryptfs目录。我不希望密码留在文件系统上,或显示在日志中,ps等等。我以为我可以使用临时文件描述符来实现这一点;但是,ecryptfs使用以下语句会返回错误。

willi@hostname:~$ exec 3<<<"passphrase_passwd="$(zenity --password)
willi@hostname:~$ sudo mount -t ecryptfs -o ecryptfs_cipher=aes,\
  ecryptfs_key_bytes=16,ecryptfs_passthrough=no,\
  ecryptfs_enable_filename_crypto=y,ecryptfs_fnek_sig=1234678765432345678,\
  key=passphrase:passphrase_passwd_fd=3 /mountpoint/ /mountpoint/
Error attempting to evaluate mount options: [-1] Operation not permitted
Check your system logs for details on why this happened.
Try updating your ecryptfs-utils package, and/or
submit a bug report on https://bugs.launchpad.net/ecryptfs

返回错误后,我可以验证ecryptfs没有读取文件描述符,因为密码仍然在其中:

willi@hostname:~$ cat <&3
passphrase_passwd=test

我回顾了encryptfs 自动挂载脚本;尽管我想避免将密码放在文件系统的文件中。

我正在使用 103 版本ecryptfs-utils

willi@hostname:~$ ecryptfsd --version
ecryptfsd (ecryptfs-utils) 103

This is free software.  You may redistribute copies of it under the terms of
the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
There is NO WARRANTY, to the extent permitted by law.

如何使用临时文件描述符ecryptfs

答案1

事实证明,问题出在我zenity以普通用户身份运行,然后使用sudo执行 mount 命令。当我将这两个命令放入脚本中并以 root 身份运行整个脚本时,一切正常。

相关内容