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