Назад | Перейти на главную страницу

Шифрование / расшифровка файла с помощью openssl через скрипт автозапуска

Итак, я пытаюсь зашифровать / расшифровать файл с помощью openssl. Я запускаю его через сценарий, который автоматически запускается, когда я подключаю USB, и расшифровываю файл. Однако это работает не совсем правильно, поэтому вот мои шаги.

Я шифрую текстовый файл с помощью ...

openssl aes-256-cbc -salt -in file.txt -out file.txt.en -pass pass:123

Затем у меня есть сценарий на usb, который автоматически запускается при установке.

autorun.sh

#!/bin/sh
openssl aes-256-cbc -in file.txt.en -out file.txt -d -pass pass:123

Теперь он не работает, когда USB пытается его запустить, однако, если я запускаю его с консоли, используя ...

./autorun.sh

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

Разница может заключаться в каталоге, из которого он выполняется. Возможно (возможно) система выполняет это не из точки монтирования с ./autorun.sh, но откуда-то еще, используя абсолютный путь, например /media/mykey/autorun.sh.

Чтобы скрипт работал при запуске из другого каталога, используя абсолютный путь, напишите так:

#!/bin/sh
cd "$(dirname "$0")"
openssl aes-256-cbc -in file.txt.en -out file.txt -d -pass pass:123

Вместо того, чтобы проверять это путем отключения и повторного включения, проверьте следующее:

cd /tmp
/path/to/mount/point/autorun.sh

Если это сработает, то есть большая вероятность, что это сработает после того, как вы отключите и снова включите.