Si vous voulez juste tester si vous pouvez vous connecter à un serveur MongoDB sans authentification via bash
, vous pouvez utiliser un script semblable au suivant :
#!/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
Exemple de sortie :
$ ./isAuthEnabled.sh localhost:27017
mongod auth is ENABLED
$ ./isAuthEnabled.sh localhost:27777
mongod auth is NOT enabled
Le seul paramètre pour ce script est une adresse MongoDB facultative à laquelle se connecter (host:port/dbname); le mongo
le shell utilise par défaut localhost:27017/test
.
Le script vérifie simplement si les utilisateurs peuvent être répertoriés sans autorisation.
Si auth est correctement activé, le db.getUsers()
La commande doit renvoyer une erreur du type :
"Error: not authorized on test to execute command { usersInfo: 1.0 }"
Remarque :Exception Localhost
Par défaut (comme dans MongoDB 3.0), il existe une localhost exception
qui vous permet de créer un premier administrateur utilisateur
pour un déploiement en se connectant via localhost
. Une fois qu'au moins un utilisateur a été ajouté, l'exception localhost est automatiquement désactivée.
Si vous souhaitez vérifier la sécurité complète de votre déploiement, cela vaut vraiment la peine de consulter le MongoDB Liste de contrôle de sécurité .