$ echo -e "to: receiver@domain.tld\nsubject: test\n"| (cat - && uuencode /path/to/file file.name) | ssmtp sender@gmail.com
При условии, что SSMTP настроен, и Вы проверили, что сообщения без вложений достигают своего места назначения, и не зависит от дурака.
В текущем системе (218 во время написания), запись в / etc / crypttab
приводит к экземпляру SystemD-CryptSetup @. Служба
Блок, генерируемый SystemD-CryptSetup-генератором
, что SystemD выполняет, когда система загружается.
Сгенерированный блок включает в себя зависимость на пути к ключевым файлам:
RequiresMountsFor=/path/to/key_file
Этот вид зависимости документирован в MAN Systemd.Unit
, где он объясняет, что он приводит к , требует =
и после =
Зависимости для всех монтируемых, необходимых для доступа к указанному пути.
Требуется =
Зависимость вызывает SystemD, чтобы остановить блок CryptSetup, если установочный блок деактивирован.
Это означает, что размонтируя устройство, содержащее ключевые кожуры CryptSetup, чтобы деактивировать, и он блокирует громкость, когда это так.
Единственная работа - вокруг на данный момент - это не использовать / etc / crypttab
для любых томов, в которых это может быть проблемой, но вместо этого предоставляют пользовательскую единицу, которая не включает в себя =
зависимость. Отказ Вот подходящая пользовательская единица, основанная на том, что выпускается генератором:
# /etc/systemd/system/systemd-cryptsetup\@.service
[Unit]
Description=Cryptography Setup for %I
Documentation=man:crypttab(5) man:systemd-cryptsetup-generator(8) man:systemd-cryptsetup@.service(8)
DefaultDependencies=no
Conflicts=umount.target
BindsTo=dev-mapper-%i.device
IgnoreOnIsolate=true
After=cryptsetup-pre.target
Before=cryptsetup.target
BindsTo=dev-lvmvg-%i.device
After=dev-lvmvg-%i.device
Before=umount.target
[Service]
Type=oneshot
RemainAfterExit=yes
TimeoutSec=0
ExecStart=/usr/lib/systemd/systemd-cryptsetup attach '%i' '/dev/lvmvg/%i' '/root/keyring/%i.key' 'header=/root/keyring/%i.hdr'
ExecStop=/usr/lib/systemd/systemd-cryptsetup detach '%i'
[Install]
WantedBy=dev-mapper-%i.device
Этот пример будет использоваться вместо этого / etc / crypttab
в записи:
# <name> <device> <password> <options>
mail /dev/lvmvg/mail /root/keyring/mail.key header=/root/keyring/mail.hdr
Эта проблема была поднята с Systemd Developers и он был добавлен в список Todo .
Вместо явной зависимости, возможно, вы могли бы использовать Automount .
Я помню, что SystemD рекламировал это во время начального блога PoEStering , как своего рода неявная зависимость. Это похоже на то, как (с Systemd) вы можете писать запросы на сокет, и для вас будет начаться подходящее обслуживание, AKA «Активация сокета». В этом случае доступ к файловой системе заставит его установить.
С таким подходом вы можете ожидать блокировки до тех пор, пока служба или файловая система не будет готов. ПРИМЕЧАНИЕ : Это подразумевает, что ваша система будет иметь каталог, который блокирует вас, если вы попытаетесь посмотреть на него (как только вы удалили диск «Грели») ... Может быть, если вы когда-нибудь используете / root для всего еще, было бы лучше установить его в другом месте, например, / Automount / Keyring
, чтобы не отключить его. Лично я думаю, что этот вопрос делает автоматически немного запутанным - но это, кажется, делает очень быстрое решение вашему вопросу.
Если файловая система указана в / etc / fstab
, просто добавьте x-systemd.automount
в список параметров.
Если он описывается на родном .mount
Файл вместо этого, похоже, вам нужно создать .auutomount
файл того же имени. Например. root-Keyring.automount
, содержащий:
[Automount]
Where=/root/keyring