Я хотел бы иметь возможность запустить сценарий, запросить пароль, а затем смонтировать 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
?
Оказывается, проблема заключалась в том, что я запускал zenity
как обычный пользователь, а затем используя sudo
для выполнения команды монтирования. Когда я вставил обе команды в сценарий и запустил весь сценарий от имени пользователя root, все заработало отлично.