Я пытаюсь расшифровать Частный
каталог внутри пользователя $ГЛАВНАЯ
автоматически при запуске системы. Система представляет собой Debian GNU/Linux 10 (на самом деле это Raspbian, но я предполагаю, что в этом отношении она ничем не отличается), которая использует NoDM для запуска Xorg.
РЕДАКТИРОВАТЬ 1: Я попытался установить чистый Debian 11 с Nodm на виртуальной машине и столкнулся с точно такой же проблемой, описанной здесь ниже.
Nodm автоматически регистрирует непривилегированного пользователя и запускает $HOME/.xsession
сценарий запуска.
У меня есть следующий скрипт, который вызывается .xsession:
#!/бин/баш -x
# Оригинал Майкла Хэлкроу, IBM
# Извлечено в отдельный сценарий Дастином Кирклэндом
# Отредактировано 28 октября 2021 г. Лучио Круска
экспорт PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ПД = "Частный"
WPF="$HOME/.ecryptfs/обернутая парольная фраза"
MPSF="$HOME/.ecryptfs/$PD.sig"
если /sbin/mount.ecryptfs_private ; тогда
выход 0
фи
если [ -f "$WPF" -a -f "$MPSF" ]; тогда
если [ $(wc -l < "$MPSF") = "1" ]; тогда
если printf "%s\0" "$LP" | ecryptfs-unwrap-passphrase "$WPF" - | ecryptfs-добавить-пароль-; тогда
эхо хорошо
еще
эхо неверный LP
выход 1
фи
еще
если printf "%s\0" "$LP" | ecryptfs-insert-insert-wrapped-passphrase-to-keyring "$WPF" - ; тогда
эхо хорошо
еще
эхо неверный LP
выход 1
фи
фи
/sbin/mount.ecryptfs_private
еще
Ошибка настройки эха
выход 1
фи
выход 0
Это урезанная версия /usr/bin/ecryptfs-mount-private
. Он выполняет те же самые команды, но ожидает, что переменная среды LP будет содержать фразу-пароль, а не запрашивать фразу-пароль в интерактивном режиме.
Я сохранил этот скрипт как $HOME/el-mount.sh
. Когда моя система загружается и запускается NoDM, он выполняет .xsession, который, в свою очередь, вызывает мой скрипт, перенаправляя стандартный вывод
и стдерр
в файл журнала для отладки. Дело не в том, что выводит это:
...
+ /sbin/mount.ecryptfs_private
mount: Нет такого файла или каталога
Однако, если я подключаюсь к системе через ssh
и запустить так же Эль-маунт.ш
script, зайдя под тем же пользователем настроенным в NoDM, скрипт работает без нареканий. На всякий случай, если вам интересно, переменная LP установлена правильно в обоих случаях (уже проверено в лог-файле).
Я уже пытался переключиться с NoDM на lightdm-autologin-greeter, но результат тот же.
Как мне сделать mount.ecryptfs_private
работать при вызове во время автологина?