Шифрование/Дешифрование файла с помощью 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

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

3
задан 23 September 2014 в 02:58
1 ответ

Разница может заключаться в каталоге, из которого он запускается. Возможно (возможно) система выполняет это не из точки монтирования с помощью ./ 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

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

1
ответ дан 3 December 2019 в 07:28

Теги

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