У меня есть скрипт 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.

1 ответ1

0

Согласно 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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .