Итак, я пытаюсь зашифровать / расшифровать файл с помощью 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
Если это сработает, то есть большая вероятность, что это сработает после того, как вы отключите и снова включите.