我有一个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给该用户,或者等等)?
等等.
简而言之:瞄准真正的安全,而不是混淆.
现在,如果你确实想要混淆 – 传统方法是ROT-16:
obfuscated_password="qrpelcgrq-cnffjbeq-urer" real_password="$(tr a-zA-Z n-za-mN-ZA-M <<<"$obfuscated_password")"