Если бы пользователь root хотел позволить это, то она могла бы настроить PAM, чтобы позволить его или даже позволить его составом группы.
По умолчанию нет это не может быть сделано, и я не собираюсь писать пример PAM.
Это - администраторское решение и любой уверенный администратор (не уверенный, что это - лучшее слово) достаточно для разрешения этого, должен быть испытан достаточно для конфигурирования PAM без справки.
Можно хотеть взглянуть на:
Они работают на зашифрованные тома, поддержанные блочными устройствами. Они должны также работать на поддержанные объемы файла.
Обновление:
Это действительно работает на меня:
# Automatically generated by systemd-cryptsetup-generator
[Unit]
Description=Cryptography Setup for %I
Documentation=man:systemd-cryptsetup@.service(8) man:crypttab(5)
SourcePath=/etc/crypttab
Conflicts=umount.target
DefaultDependencies=no
BindsTo=dev-mapper-%i.device
After=systemd-readahead-collect.service systemd-readahead-replay.service
Before=umount.target
Before=cryptsetup.target
After=systemd-random-seed-load.service
[Service]
Type=oneshot
RemainAfterExit=yes
TimeoutSec=0
ExecStart=/usr/lib/systemd/systemd-cryptsetup attach 'swap2' '/swap.test' '/dev/urandom' 'swap'
ExecStop=/usr/lib/systemd/systemd-cryptsetup detach 'swap2'
ExecStartPost=/sbin/mkswap '/dev/mapper/swap2'
Шаги для получения этого файла:
swap2 /swap.test /dev/urandom swap
/usr/lib/systemd/system-generators/systemd-cryptsetup-generator
Это создает файлы единицы в /tmp/
каталог.swap.test.device
от After=
и BindsTo=
директивы. Это важно, поскольку нет по определению никакого устройства для своп-файла. Это предотвращает запуск unitfile./etc/systemd/system/
Вот конечный результат, который я придумал на основе ответа t-8ch.
Вставьте это /etc/systemd/system/systemd-cryptsetup@swapfile.service
:
# Automatically generated by systemd-cryptsetup-generator
# then manually tweaked
[Unit]
Description=Cryptography Setup for %I
Documentation=man:systemd-cryptsetup@.service(8) man:crypttab(5)
SourcePath=/etc/crypttab
Conflicts=umount.target
DefaultDependencies=no
BindsTo=dev-mapper-%i.device
After=systemd-readahead-collect.service systemd-readahead-replay.service
Before=umount.target
Before=cryptsetup.target
After=systemd-random-seed-load.service
[Service]
Type=oneshot
RemainAfterExit=yes
TimeoutSec=0
ExecStart=/usr/lib/systemd/systemd-cryptsetup attach 'swapfile' '/root/swapfile.crypt' '/dev/urandom' 'swap,cipher=aes-cbc-essiv:sha256,size=256'
ExecStop=/usr/lib/systemd/systemd-cryptsetup detach 'swapfile'
ExecStartPost=/sbin/mkswap '/dev/mapper/swapfile'
Вставьте это /etc/systemd/system/dev-mapper-swapfile.swap
:
[Unit]
Description=Encrypted Swap File
Requires=systemd-cryptsetup@swapfile.service
After=systemd-cryptsetup@swapfile.service
Before=swap.target
[Swap]
What=/dev/mapper/swapfile
[Install]
WantedBy=swap.target
Одноразовая установка (как корень) для создания своп-файла включите его для будущих начальных загрузок и начните использовать его сразу:
fallocate -l 4G /root/swapfile.crypt
chmod 600 /root/swapfile.crypt
systemctl enable dev-mapper-swapfile.swap
systemctl start dev-mapper-swapfile.swap
Размер в fallocate
команда определяет, насколько большой Ваш своп-файл будет.
/etc/crypttab
запись не необходима; это - просто способ генерировать systemd-cryptsetup@swapfile.service
. После того как это сделано, Вам больше не нужен он.
/dev/loopN
произведенныйlosetup -f
не обязательно последовательно между начальными загрузками. Тор – cjm 13.02.2013, 19:14cryptsetup open /swap.test swap
. Я не мог заставить это работать при начальной загрузке (использование только/etc/crypttab). Единица, которая делает все само сExecStart
директивы должны работать. Возможно, это должно, сообщил systemd devs. – t-8ch 13.02.2013, 19:54mkswap
. Поскольку я использую случайный ключ, файл подкачки должен быть повторно инициализирован каждая начальная загрузка. Но я не уверен, как настроить это. – cjm 13.02.2013, 21:34