所以我想用openssl来encryption/解密一个文件。 我正在通过一个脚本运行它,当我挂载一个USB时,它会自动运行,并解密这个文件。 但是,这并不正确,所以这是我的步骤。
我使用…encryption文本文件
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
这样的绝对path执行它。
要使脚本在从不同目录执行时使用绝对path,请按以下方式编写:
#!/bin/sh cd "$(dirname "$0")" openssl aes-256-cbc -in file.txt.en -out file.txt -d -pass pass:123
而不是通过拔掉和重新插入来testing,testing像这样:
cd /tmp /path/to/mount/point/autorun.sh
如果这样做,那么在拔下并重新插入之后很有可能会起作用。