Linux 使用 bash shell 脚本加密文件
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/8641109/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Encrypt a file using bash shell script
提问by Pritom
I want to encrypt a file using openssl. I can do it by using
我想使用 openssl 加密文件。我可以通过使用来做到
openssl des3 -salt -in /pritom/uaeyha_com.sql -out /pritom/a.ss
When I run this command, it gets password from me two times. I want to set password with the script and I used
当我运行此命令时,它两次从我这里获取密码。我想用脚本设置密码,我用过
openssl des3 -salt -in /pritom/uaeyha_com.sql -out /pritom/a.ss -pass pritom
but it gives me the following error:
但它给了我以下错误:
Invalid password argument "pritom"
Error getting password
What can I do now?
我现在能做什么?
采纳答案by jaypal singh
Try something like this -
尝试这样的事情 -
openssl des3 -salt -in /pritom/uaeyha_com.sql -out /pritom/a.ss -pass pass:pritom
From the man
page:
从man
页面:
PASS PHRASE ARGUMENTS
Several commands accept password arguments, typically using -passin and -passout for input and output passwords respectively. These allow the password to be obtained from a variety of sources. Both of these options take a single argument whose format is described below. If no password argument is given and a password is required then the user is prompted to enter one: this will typically be read from the current terminal with echoing turned off.
PASS PHRASE ARGUMENTS
Several commands accept password arguments, typically using -passin and -passout for input and output passwords respectively. These allow the password to be obtained from a variety of sources. Both of these options take a single argument whose format is described below. If no password argument is given and a password is required then the user is prompted to enter one: this will typically be read from the current terminal with echoing turned off.
pass:password
the actual password is password. Since the password is visible to utilities (like 'ps' under Unix)
this form should only be used where security is not important.
env:var obtain the password from the environment variable var. Since the environment of other processes is
visible on certain platforms (e.g. ps under certain Unix OSes) this option should be used with
caution.
file:pathname
the first line of pathname is the password. If the same pathname argument is supplied to -passin and
-passout arguments then the first line will be used for the input password and the next line for the
output password. pathname need not refer to a regular file: it could for example refer to a device
or named pipe.
fd:number read the password from the file descriptor number. This can be used to send the data via a pipe for
example.
stdin read the password from standard input.
回答by Danny
to hide it from the ps command use :
要从 ps 命令中隐藏它,请使用:
temp_varX=pritom ;
openssl ..... -pass fd:0 <<< "$temp_var"