Se você quiser apenas testar se pode se conectar a um servidor MongoDB sem autenticação via
bash
, você pode usar um script semelhante ao seguinte:#!/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
Saída de exemplo:
$ ./isAuthEnabled.sh localhost:27017
mongod auth is ENABLED
$ ./isAuthEnabled.sh localhost:27777
mongod auth is NOT enabled
O único parâmetro para este script é um endereço opcional do MongoDB para conectar (host:port/dbname); o
mongo
shell usa como padrão localhost:27017/test
. O script faz uma verificação simples se os usuários podem ser listados sem permissão.
Se a autenticação estiver habilitada corretamente, o
db.getUsers()
comando deve retornar um erro como: "Error: not authorized on test to execute command { usersInfo: 1.0 }"
Observação:Exceção de host local
Por padrão (como no MongoDB 3.0) há uma
localhost exception
que permite criar um primeiro administrador de usuário
para uma implantação conectando-se via localhost
. Depois que pelo menos um usuário for adicionado, a exceção localhost será desabilitada automaticamente. Se você deseja verificar a segurança total de sua implantação, definitivamente vale a pena revisar o MongoDB Lista de verificação de segurança .