Сценарий установщика Bash, похоже, не принимает ввод EOF и вместо этого зависает

Я уже публиковал эту проблему в stackoverflow, и меня вежливо перенаправили на этот сайт. Надеюсь, в этот раз я окажусь в нужном месте :D

Я хотел автоматизировать установку Mint. Одной из основных частей моей установки Mint является шифрование всего диска с использованием раздела LUKS. Чтобы иметь возможность разблокировать свое устройство с помощью Yubikey, мне нужно выполнить следующую строку:

      yubikey-luks-enroll -d /dev/sda3 -s 7

который вы можете получить, установиви работает нормально. Однако запуск этой команды с использованием здесь-документа не работает.

При выполнении приведенной выше команды меня дважды просят ввести мой пароль, а затем пароль раздела LUKS:

      sudo yubikey-luks-enroll -d /dev/sda3 -s 7
setting disk to /dev/sda3.
setting slot to 7.
This script will utilize slot 7 on drive /dev/sda3.  If this is not what you intended, exit now!
Adding yubikey to initrd
Please enter the yubikey challenge password. This is the password that will only work while your yubikey is installed in your computer:
Please enter the yubikey challenge password again:
Please provide an existing passphrase. This is NOT the passphrase you just entered, this is the passphrase that you currently use to unlock your LUKS encrypted drive:

Я решил автоматизировать этот шаг, используя следующий bash-скрипт:

      read PART
read -s DISKPWD
read -s PWD1
read -s PWD2

sudo yubikey-luks-enroll -d $PART -s 7 <<-EOF
$PWD1
$PWD2
$DISKPWD
EOF

К сожалению, это приводит только к следующему результату:

      setting disk to /dev/sda3.
setting slot to 7.
This script will utilize slot 7 on drive /dev/sda3.  If this is not what you intended, exit now!
Adding yubikey to initrd

и что еще хуже, терминал зависает - вы можете вводить данные, но это не имеет никакого эффекта. Просто CTRL+Z работает.

С другим сценарием установки, например, для Anaconda, у меня возникла та же проблема.

Я также попытался запустить команду в терминале без здесь-документа, и это работает нормально. Выполнение команды с здесь-документом в терминале приводит к той же ошибке, что и выше. При удалении здесь документа в файле Bash команда работает.

Если кому-то интересно, мне нужно настроить несколько Yubikeys с одинаковыми учетными данными, поэтому я хочу автоматизировать этот процесс.

Некоторые пользователи stackoverflow предположили, что это может быть связано с тем, что установщик использует вывод терминала вместо стандартного входа. Если это правда, существует ли здесь функция, подобная документу, для ввода терминала? Я не смог найти его до сих пор.

Я не опытный пользователь Linux. Возможно, это просто ошибка или заблуждение. Мне очень интересно понять, что происходит не так :)

Привет, 133У

0 ответов

Другие вопросы по тегам