我对 OpenSSL 的 enc 命令有一个具体问题,但我认为它更普遍地适用于 Unix/Linux 文件权限。我有一个 bash 脚本,其中包含以下解密命令:
openssl enc -d -aes-256-cbc -in Secret.enc -out Secret -pass 文件:./pass.bin
据我所知,如果 pass.bin 的文件权限设置为 700,则基本上是所有者的完全权限,而其他人的权限被拒绝。包含解密命令的 bash 脚本(我们称之为“脚本”)也被设置为 700,这样它只能由所有者执行。然后,我的理解是,假设我不是这两个文件的所有者,如果我尝试读取“script”或“pass.bin”,我会得到“权限被拒绝”响应。但是,如果我在命令行中运行解密命令会发生什么?这仍然会导致解密的“秘密”文件吗?
答案1
事实上,这恰好是一个 OpenSSL 命令并不重要。
除了所有者(还有 root,我们不要忘记)之外,任何人都无法读取该脚本。这意味着非所有者无法执行它./script.sh
或使用例如运行它bash script.sh
。
如果脚本可读,非所有者将能够运行它,但需要该pass.bin
文件的解密将不会成功(因为非所有者无法读取它)。如果您以文件的非所有者身份在 shell 中运行解密,也会发生这种情况pass.bin
。
为了让自己相信这些事情,请设置一个新用户并尝试看看会发生什么。