我们正在为root用户添加密码。以下是conf文件的补充。
INHERIT += "extrausers"
EXTRA_USERS_PARAMS = "usermod -p $(openssl passwd abcd1234) root"
以上两行为我们完成了工作。但问题是每个读取配置文件的人都知道密码是“abcd1234”。
有没有其他方法可以在配置中安全地存储密码,或者以最佳方式处理以防万一。我们有数千台运行嵌入式Linux的设备,如果有人能够获得root密码,他可以轻松访问所有设备,因为密码相同。处理这种情况的最佳方法是什么?
亚历山大的答案是最好的做法。
如果您确实需要在配置中使用密码,则至少可以存储加密的变体(在您的示例中使用openssl
的输出,但我会使用更强大的算法),即:
EXTRA_USERS_PARAMS = "\
usermod -p '\$6\$ca1gxiMTHxfATDYV\$PpXt8OeIiBY8xJX1qh66Sq1oC5tIthrhzo9dq6ILerp.vg7xdkHpLGbM.PKgh./r2J1lkSmHXT2Xhq/ZKr0XF.' root; \
"
请注意$
(以及任何其他特殊字符,如果存在)的转义,因为加密的密码由shell解释。 (上面的示例中有真实的密码,但它是一个非常弱的。)
BTW我提到亚历山大的答案是最好的做法;-)?
根本不要使用密码验证;如果您使用ssh访问设备,则某种公钥认证(可能与主机认证相结合)更好。阅读man ssh中的“身份验证”部分。