Зашифрованная папка монтируется заданием cron, не сохраняется

1248
Sdlion

У меня есть скрипт A.sh, который запрашивает сервер; получает пароль монтирования и монтирует личную папку на клиенте.

Затем у меня есть скрипт Init.sh, который сначала проверяет состояние интернет-соединения, а затем выполняет A.sh.

Если я выполню вручную A.sh, личная папка будет доступна во всех сеансах пользователя. Но если я выполню Init.sh или A.sh через задание cron, вывод покажет, что папка смонтирована, но это не будет отражено в других местах.

  • A.sh получает пароль для монтирования папки
  • Добавляет его в связку ключей printf "%s" "$PASS" | sudo ecryptfs-add-passphrase --fnek -
  • Из вывода извлекает подпись и хеши фнека.
  • И, наконец, монтирует папку с sudo mount -t ecryptfs -o ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_sig="$SIGNATURE",ecryptfs_fnek_sig="$FNEK",ecryptfs_unlink_sigs,ecryptfs_passthrough=no,no_sig_cache,key=passphrase:passphrase_passwd="$PASS" "$PRIVATE_FOLDER" "$MOUNT_POINT"

Я знаю, что он монтируется, потому что на выходе в логах Mounted eCryptfsпоказана строка . Я не знаю, почему это заканчивается в конце сценария.

Задание cron запускается под этим пользователем crontab.

0

1 ответ на вопрос

0
Sdlion

Согласно https://wiki.archlinux.org/index.php/ECryptfs

auto-mount, auto-umount [пустые файлы] - если они существуют, модуль pam_ecryptfs.so (при условии, что он загружен) автоматически монтирует / размонтирует этот зашифрованный каталог, когда пользователь входит / выходит

«Если они существуют» относится к файлам в ~/.ecryptfs/каталоге.

Если вы хотите, чтобы личная папка автоматически отключалась после завершения вашей ssh ​​или локальной сессии touch ~/.ecryptfs/auto-umount.

Но похоже, что это поведение автоматического монтирования будет сохраняться до тех пор, пока файл pam_ecryptfs.so загружается в память в неинтерактивных сеансах, как и задания cron. Даже если нет ~/.ecryptfs/auto-umountнабора файлов.

Комментируя строку

session optional pam_ecryptfs.so unwrap 

on /etc/pam.d/common-session-noninteractiveостановит автоматическое монтирование на неинтерактивных сеансах, таких как задания cron.

Похожие вопросы