Сценарий таков: у меня есть куча компьютеров (с Ubuntu 20.04), на каждом из которых может быть несколько пользователей. Учетная запись каждого пользователя должна быть зашифрована индивидуально.
Поскольку ecryptfs больше не рекомендуется, в качестве вдохновения я взял следующие статьи с подходами на базе ZFS:
При установке Ubuntu я выбрал "экспериментальную" поддержку ZFS и написал такой скрипт для создания нового пользователя:
username=foo
password=barbarbar
useradd "$username"
echo "$username":"$password" | chpasswd
zfs create \
-o encryption=aes-256-gcm \
-o keyformat=passphrase \
-o keylocation=prompt \
rpool/USERDATA/"$username"_encrypt \
-o mountpoint=/home/"$username" \
-o canmount=noauto
sudo chown "$username":"$username" /home/"$username"
Когда я опускаю canmount=noauto
, то при загрузке мне приходится вводить все пароли шифрования для всех пользователей, созданных таким образом. Однако при использовании canmount=noauto
я вообще не получаю запроса, и вход не удается на экране визуального входа. Вход через терминал работает, но домашняя папка пользователя все равно должна быть разблокирована.
Я также попытался выполнить шаги 2-4 во второй статье, чтобы заставить работать сценарий разблокировки, который использует PAM, но безуспешно.
Вторая статья, на которую вы ссылаетесь, работает превосходно!
https://talldanestale.dk/2020/04/06/zfs-and-homedir-encryption/
Я только что завершил реализацию (с небольшими изменениями с учетом местных особенностей) Настоятельно рекомендуется подробная инструкция - просто внимательно прочитайте и вы узнаете много интересного.
Спасибо за подсказки.