如何阻止mongosh将db.auth密码保存到命令历史文件?
避免mongosh命令历史明文保存密码的方法
以下是几种可行的解决方式:
通过环境变量传递密码
先在终端设置环境变量:export MONGODB_PASSWORD="mypassword"然后在mongosh中执行认证:
db.auth("myusername", process.env.MONGODB_PASSWORD)命令历史里只会记录调用环境变量的代码,不会出现明文密码。
禁用mongosh命令历史
- 临时禁用:启动mongosh时添加
--no-history参数,本次会话不会保存任何命令记录:mongosh --no-history - 永久禁用:在主目录下创建或编辑
~/.mongodb/mongosh/config.js文件,写入以下内容:
之后所有mongosh会话都不会保存命令历史。export default { historyLength: 0 };
- 临时禁用:启动mongosh时添加
使用URI直接连接(推荐)
直接通过包含认证信息的URI启动mongosh,密码不会被写入命令历史:mongosh "mongodb://myusername:mypassword@localhost:27017/?authSource=admin"注意替换URI中的主机、端口、认证源等参数为你的实际配置。
清理已保存的明文密码
如果历史文件已经存在明文密码,可以直接删除历史文件:rm ~/.mongodb/mongosh/mongosh_repl_history或者手动编辑该文件,删除包含密码的行。
内容的提问来源于stack exchange,提问作者mkelley33
相关产品推荐
相关产品推荐

