如何在 shell 脚本中以身份验证模式查找 Mongodb 是否为 运行?
How to find if Mongodb is running in auth mode in shell script?
我的服务器机器上有一个 mongodb 实例 运行,它是 运行 身份验证模式。目前我正在使用 shell scipt 来获取是否存在 mongodb 实例 运行。如何检查 mongodb 是否为 运行 in auth mode or 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()" | 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 要连接的地址(主机:port/dbname); mongo
shell 默认使用 localhost:27017/test
.
该脚本会简单检查是否可以在未经许可的情况下列出用户。
如果正确启用了身份验证,db.getUsers()
命令应该 return 出现如下错误:
"Error: not authorized on test to execute command { usersInfo: 1.0 }"
注意:本地主机异常
默认情况下(在 MongoDB 3.0 中)有一个 localhost exception
that allows you to create a first user administrator 用于通过 localhost
连接的部署。至少添加一个用户后,本地主机例外将自动禁用。
如果您想检查部署的全面安全性,绝对值得查看 MongoDB Security checklist。
我的服务器机器上有一个 mongodb 实例 运行,它是 运行 身份验证模式。目前我正在使用 shell scipt 来获取是否存在 mongodb 实例 运行。如何检查 mongodb 是否为 运行 in auth mode or 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()" | 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 要连接的地址(主机:port/dbname); mongo
shell 默认使用 localhost:27017/test
.
该脚本会简单检查是否可以在未经许可的情况下列出用户。
如果正确启用了身份验证,db.getUsers()
命令应该 return 出现如下错误:
"Error: not authorized on test to execute command { usersInfo: 1.0 }"
注意:本地主机异常
默认情况下(在 MongoDB 3.0 中)有一个 localhost exception
that allows you to create a first user administrator 用于通过 localhost
连接的部署。至少添加一个用户后,本地主机例外将自动禁用。
如果您想检查部署的全面安全性,绝对值得查看 MongoDB Security checklist。