Intereting Posts
Предотвращение получения пользователем LX SIGHUP и закрытие при закрытии окна терминала Как работает вызов async_port_probe () в ядре linux? Одновременно открывать сразу несколько файлов Как я могу найти реализации системных вызовов ядра Linux? awk + удалить повторяющиеся строки, но игнорировать строки, начинающиеся с # ln дает разные результаты при многократном запуске Что такое альтернатива initlog (присутствует в RHEL5), но не рекомендуется в RHEL6? Изменить временную метку на определенную дату, сохраняя существующее время Gnome3: как добавить дополнительные параметры поиска Обнаружение и ответ на ping в пользовательском пространстве Как изменить кодовую фразу для прохода (менеджер паролей) Настроить кнопку питания – OpenSUSE LEAP 42.1 Репозиторий локальных обновлений CentOS 6 и обновления для системы безопасности Сравните tarballs с sha1sum SSH с использованием учетных данных OpenLDAP (LDAP)

Запрос пароля во время загрузки с помощью службы systemd

Это относится к Arch Linux (и, возможно, к другим дистрибутивам, использующим systemd ). Я хочу установить раздел TrueCrypt при загрузке. Со старым sysvinit это было довольно прямолинейно с помощью скрипта, называемого rc.local .

Я добрался до своего нынешнего, захватив поток форума Arch . Есть еще один поток, в котором этот поток systemd-devel упоминается как «имеющий решение», однако мне не кажется, что это на самом деле, и OP имеет последнее сообщение о том, что он не смог достичь своей цели.

По внешнему виду этот человек делает это, но искал способ отключить непрерывные загрузочные сообщения, пока он вводит пароль. Я отправил туда и попросил его опубликовать его фактический файл .service .

В поисках довольно много, люди упоминают, что они были успешными или что это возможно, но не указывают точно, что такое решение.

Я до сих пор могу разблокировать раздел из командной строки с помощью службы systemd (что, в свою очередь, дает мне возможность автоматически отключать его при выключении / перезагрузке), но я должен сделать это вручную после входа в систему. I «Мне действительно нравится, когда процесс загрузки приостанавливается и спрашивает у меня пароль.

Вот мой текущий скрипт:

 [Unit] Description=Truecrypt Setup for vault #DefaultDependencies=no #Conflicts=umount.target #Before=umount.target #After=systemd-readahead-collect.service systemd-readahead-replay.service #After=cryptsetup.target [Service] Type=oneshot RemainAfterExit=yes #StandardInput=tty-force ExecStart=/bin/sh -c '/usr/bin/truecrypt -t --protect-hidden=no -k "" --filesystem=none --slot=1 -p `systemd-ask-password "Enter password for truecrypt volume: "` /dev/sda4' ExecStop=/usr/bin/truecrypt --filesystem=none -d /dev/sda4 [Install] WantedBy=multi-user.target 

Я оставил комментарии в [Unit] , так как в какой-то момент я столкнулся с предложениями, что он должен быть там, но у меня были проблемы с ним. Выше, кажется, отлично работает после загрузки / входа в систему … просто не во время.

  • Напишите сценарий оболочки и поместите его в ExecStart=
  • Из сценария обертки используйте systemd-ask-password <PROMPT> , прочитайте пароль со своего stdout и подайте его в truecrypt любым способом
  • Не забудьте выполнить exec truecrypt с конца вашего скрипта, чтобы не оставлять лишний процесс bash, висящий вокруг

Это заставит systemd немедленно запросить пароль (если вы запустите apache с помощью systemctl) или с помощью одного из так называемых агентов (по умолчанию используются те, которые запрашивают пароли, используя стену или непосредственно на консоли во время загрузки системы). Это лучшее, что вы можете сделать, чтобы оставаться послушным.

Я нашел этот пост в Unix StackExchange: rc.local с чтением не будет эхом нажатия клавиш
Я думаю, вы могли бы попробовать использовать решение