gpt4 book ai didi

mongodb - 如何在 shell 脚本中查找 Mongodb 是否以身份验证模式运行?

转载 作者:IT老高 更新时间:2023-10-28 13:21:16 25 4
gpt4 key购买 nike

我正在运行一个 mongodb 实例,它在我的服务器机器上运行身份验证模式。目前我正在使用 shell scipt 来获取是否有 mongodb 实例正在运行。如何检查 mongodb 是在 auth mode 还是 non auth mode 下运行。

最佳答案

如果你只是想通过bash测试是否可以不经认证就连接到MongoDB服务器,可以使用类似如下的脚本:

#!/bin/bash

# Connect to MongoDB address (host:port/dbname) specified as first parameter
# If no address specified, `mongo` default will be localhost:27017/test
isAuth=`mongo --eval "db.getUsers()" $1 | grep "not auth"`

if [ -z "$isAuth" ] ;
then
echo "mongod auth is NOT enabled"
exit 1
else
echo "mongod auth is ENABLED"
exit 0
fi

示例输出:

$ ./isAuthEnabled.sh localhost:27017
mongod auth is ENABLED

$ ./isAuthEnabled.sh localhost:27777
mongod auth is NOT enabled

此脚本的唯一参数是一个可选的 MongoDB 地址以连接到 (host:port/dbname); mongo shell 默认使用 localhost:27017/test

脚本会简单检查是否可以在未经许可的情况下列出用户。

如果正确启用了身份验证,db.getUsers() 命令应该返回如下错误:

  "Error: not authorized on test to execute command { usersInfo: 1.0 }"

注意:本地主机异常

默认情况下(在 MongoDB 3.0 中)有一个 localhost exception允许您创建第一个 user administrator通过 localhost 连接进行部署。一旦添加了至少一个用户,就会自动禁用 localhost 异常。

如果您想检查部署的完整安全性,绝对值得查看 MongoDB Security checklist .

关于mongodb - 如何在 shell 脚本中查找 Mongodb 是否以身份验证模式运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31949586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com