我希望能够运行一个脚本,让它提示我输入密码,然后挂载一个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 身份运行整个脚本时,一切正常。