Я пытаюсь получить зашифрованный EncFS домой для монтирования при загрузке без ввода данных пользователем (напрямую, а не через ssh). Пробовали различные решения (добавление записи тома в pam_mount.conf.xml, различные настройки в различные файлы pam) без радости. Можно смонтировать каталог encfs вручную, но требуется ввод пароля вручную. Все это можно сделать с помощью сценария ожидания ...
Есть несколько сообщений об автоматическом монтировании encfs при загрузке, но невозможно заставить работать ни один из них (за исключением сценария ожидания).
Может ли кто-нибудь подсказать, как это сделать (я использую Debian Squeeze)? Или сценарий ожидания - лучший способ?
Спасибо!
Вы можете передать пароль Encfs как это:
echo password | encfs -S /crypted /uncrypted
Я просто использую сценарий bash, подобный этому однострочному:
#!/bin/bash
ENCFS6_CONFIG="/home/<user>/.keys/encfs/key_data.xml" encfs -o nonempty --extpass='/home/<user>/.keys/encfs/key_data_pw' /run/media/<user>/data /home/<user>/DATA
Использование ENCFS_CONFIG
и extpass
хорошо документирован в документации по EncFS.
Также в Squeeze я использую эту строку в /etc/rc.local:
/usr/local/sbin/mount_crypted_encfs.exp
А сценарий такой:
#!/usr/bin/expect -f
set timeout 1
spawn /usr/bin/encfs /crypted /uncrypted -- -o allow_other -o default_permissions
expect "EncFS Password:"
send "myPassword\r"
expect eof
Но один раз из десяти он не может монтироваться, и мне приходится запускать сценарий ожидания вручную: - /
Я использую SD-карту в качестве ключа, чтобы открыть папку encfs, но вы можете использовать файл, специфичный для вашей системы.
encfs /home/user/crypted /home/user/uncrypted -o umask='007' --public --extpass='udevadm info --query=all --name=/dev/mmcblk0p1 | grep ID_SERIAL'
Поместите это в свой rc.local или запустите как службу