我有一个 bash 脚本,我需要编写密码才能运行程序。其他人可以看到它。有没有办法把密码写得不太明显?即使他可以在 bash 中执行相同的命令并获取密码,他也无法读取文本形式的密码。
今天我这样做:
PASSWORD="1234567"
program --pass=$PASSWORD
我想做这个
PASSWORD="10101001001010010101010100101" #binary or other code
NEW_PASS=`decrypt $PASSWORD`
program --pass=$NEW_PASS
任何想法?
你所要求的不仅是邪恶的——它简直就是行不通.
用户要查看您的密码所要做的就是运行bash -x your_script
输出将包括
+program '--pass=decrypted-password-here'
...无论混淆有多有效。
您尝试调用的需要密码的实际程序是什么?您能否将密码隐藏在 setuid 包装器后面,以便包装器可以读取密码文件,即使运行它的用户无法读取?您能否(借用 DigitalRoss 的建议)设置一个具有存储密码副本(或者更好的是证书或密钥对)的用户帐户,将其配置为只能通过 SSH 运行您的脚本,而不能执行其他操作,然后给出应该能够以该用户身份运行 SSH 脚本权限的用户(或仅对该用户使用 sudo 执行单个命令,等等)?
Etc.
简而言之:以真正的安全为目标,而不是混淆。
现在,如果你did想要混淆——传统方法是 ROT-16:
obfuscated_password="qrpelcgrq-cnffjbeq-urer"
real_password="$(tr a-zA-Z n-za-mN-ZA-M <<<"$obfuscated_password")"
...但如果它是您真正关心的密码,请不要混淆 - 使用上面给出的方法之一来避免以用户可读的方式存储密码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)