如何在linux命令行上安全地解压缩文件
我想在linux命令行“bash”上安全地解压缩一个文件 命令:如何在linux命令行上安全地解压缩文件,linux,bash,Linux,Bash,我想在linux命令行“bash”上安全地解压缩一个文件 命令: unzip -P filename.zip 将不安全,因为密码可能会出现在日志历史记录中等 我如何解压一个文件,使密码不会明显地回显到终端 手册页说明: “这是不安全的!许多多用户操作系统为任何用户提供了查看 任何其他用户的当前命令行;即使是在独立系统上,也总是存在着偷窥的威胁。存储明文通行证- 在自动脚本中,word作为命令行的一部分更糟糕。尽可能使用非回音交互式提示输入密码。(及 在安全性非常重要的地方,使用强加密,例如相当
unzip -P filename.zip
将不安全,因为密码可能会出现在日志历史记录中等
我如何解压一个文件,使密码不会明显地回显到终端
手册页说明:
“这是不安全的!许多多用户操作系统为任何用户提供了查看
任何其他用户的当前命令行;即使是在独立系统上,也总是存在着偷窥的威胁。存储明文通行证-
在自动脚本中,word作为命令行的一部分更糟糕。尽可能使用非回音交互式提示输入密码。(及
在安全性非常重要的地方,使用强加密,例如相当好的隐私,而不是标准zip提供的相对较弱的加密-
“如果要以编程方式执行,可以使用“expect”程序(可能必须先安装该程序)。我提出以下建议:
#!/bin/bash
PWD="foo"
expect <<EOF
spawn unzip "$@"
expect "Archive"
expect "password:"
send "$PWD\n"
EOF
#/bin/bash
PWD=“foo”
expect您可以设置bash
,使其忽略以空格开头的行。如果在~/.bashrc
中设置此选项,它将在所有shell中生效
基本上,HISTCONTROL
变量包含控制历史的指令。一个这样的指令是ignorespace
,它导致历史忽略第一个字符为空格的行
我这样做只是为了测试它(它还没有在我的环境中设置):
您是否尝试过使用非回音的交互式提示?man-zip
还提到:如上所述,-P选项可用于在命令行上提供密码,但会牺牲安全性。首选的解密方法是简单地正常提取;如果zipfile成员已加密,解压将提示输入密码,而不回显键入的内容。
因此,您甚至不必在命令行上提供密码。如果命令以空白开头,则有一个shell选项可防止命令以历史记录结尾。请参见man:bash:HISTIGNORE:ignorespace。
$ export HISTCONTROL=$HISTCONTROL:ignorespace
$ ls foo
$ ls bar # note the leading space
$ ls baz
$ history
1009 ls foo
1010 ls baz