Как создать n переменных в сценариях оболочки без их явного назначения?

В соответствии с комментарием @ user43791 , попробуйте отключить буферизацию в конвейере , например:

stdbuf -o0 netcat localhost 9090 | grep sender

1
22.08.2018, 14:27
1 ответ

Существует разница между двумя командами, как описано вman cryptsetup:

--key-file, -d name
Read the passphrase from file.

If the name given is "-", then the passphrase will be read from stdin. In this case, reading will not stop at newline characters.

Это означает, что если вы создали файл с помощью echo, viили копирования/вставки, он, скорее всего, будет включать в себя новую строку в конце. если используется как чистый стандартный ввод (без опции --key-file), его последняя новая строка будет игнорироваться, но при использовании в качестве параметра для --key-file, даже если это тот же самый стандартный ввод (--key-file=-), он получит эту новую строку включенная в парольную фразу :, она становится новой парольной фразой, которая недействительна.

Чтобы убедиться в этом:

cat mypass.txt | tr -d '\r\n' | sudo cryptsetup open --type luks --key-file=- /dev/sda1 enc-store

Должно работать как задумано (на тот случай, если я тоже удалю CR ).

Если причина в этом, просто удалите эту новую строку :, например

mv -i mypass.txt mypass.old && tr -d '\r\n' < mypass.old > mypass.txt

Что вам, вероятно, следует сделать в любом случае, так это сгенерировать новую фразу-пароль из чисто случайных чисел, поместить ее в защищенный файл и включить в отдельный слот LUKS.

3
27.01.2020, 23:23

Теги

Похожие вопросы