Ecryptfsを使用して暗号化されたディレクトリを作成およびマウントするスクリプトを作成しようとしています(sshログオン時(パスフレーズはパイプ経由で送信されます)および他のいくつかのスクリプトによって)。私はすでにecryptfs-setup-privateについて知っています。
私がやろうとしていること:
#!/bin/bash
mkdir 1 &> /dev/null
mkdir 2 &> /dev/null
echo "passphrase_passwd=zxc" > ecryptfs_passphrase_passwd
OPTS="ecryptfs_cipher=aes,ecryptfs_key_bytes=32,ecryptfs_enable_filename_crypto=y,ecryptfs_fnek_sig=7513645981364589,ecryptfs_passthrough=n"
cat ecryptfs_passphrase_passwd | \
mount -t ecryptfs -o ${OPTS},key=passphrase:passphrase_passwd_fd=0 1 2
そして、次の出力で何らかの理由で失敗します。
# ./mountit
Error attempting to evaluate mount options: [-22] Invalid argument
Check your system logs for details on why this happened.
Try updating your ecryptfs-utils package, and/or
submit a bug report on https://launchpad.net/ecryptfs
# tail /var/log/syslog
...
Apr 27 19:28:23 debian mount.ecryptfs: Error initializing key module [/usr/lib/ecryptfs/libecryptfs_key_mod_gpg.so];
Apr 27 19:28:23 debian mount.ecryptfs: parse_options_file: mmap failed on fd [0]; rc = [-22]
Apr 27 19:28:23 debian mount.ecryptfs: tf_pass_file: Error parsing file for passwd; rc = [-22]
私は何が間違っているのですか?
どのバージョンのeCryptfsを使用していますか?
このバグの修正を ecryptfs-utils-94 でリリースしたと思います:
* src/libecryptfs/cmd_ln_parser.c: LP: #683535
- fix passphrase_passwd_fd for pipes
- handle memory allocation failures
- free memory in error paths
バグ#683535 を参照してください。
完全な開示:私はeCryptfsの作成者および保守者の1人です。