我正在我的定制板上编写 shell 脚本。在此脚本中,我使用 openssl 在运行时使用以下命令对文件进行编码:
openssl des3 -salt -in file.txt -out my_file.des3 -k my_password
有没有办法避免在 sh 脚本中写入清晰的密码?必须在开发环境中设置密码。即使是 root 用户也不应该知道这个密码。可能吗?
答案1
许多程序通过外部文件或环境变量接受密码。第二种选择在您自己的脚本中很容易实现:
openssl des3 -salt -in file.txt -out my_file.des3 -k $PASS_VAR
答案2
因为我可以为我的主板生成固件,所以我想实现类似 /etc/shadow 文件的东西,但要用我的密码。我不知道这是否可行。当然,用户将拥有 root 权限,这会增加难度。
使用外部密码文件或环境变量可以让我避免在脚本中包含清除密码,但显然,root 用户可以看到一切。
目前我认为更好的解决方案是使用环境变量,即使 root 用户也可以看到它。
答案3
Root 可以看到所有内容。如果您的脚本应该无人值守运行,那么您就没那么幸运了。如果不是,您可以通过让用户输入密码或使用 ssh 或 gpg 代理来加密/解密来限制密码可用的时间。