Wenn Sie nur testen möchten, ob Sie sich ohne Authentifizierung über bash
mit einem MongoDB-Server verbinden können , können Sie ein Skript ähnlich dem folgenden verwenden:
#!/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
Beispielausgabe:
$ ./isAuthEnabled.sh localhost:27017
mongod auth is ENABLED
$ ./isAuthEnabled.sh localhost:27777
mongod auth is NOT enabled
Der einzige Parameter für dieses Skript ist eine optionale MongoDB-Adresse, zu der eine Verbindung hergestellt werden soll (host:port/dbname); der mongo
Shell verwendet standardmäßig localhost:27017/test
.
Das Skript führt eine einfache Überprüfung durch, ob Benutzer ohne Erlaubnis aufgelistet werden können.
Wenn auth richtig aktiviert ist, wird db.getUsers()
Befehl sollte einen Fehler zurückgeben wie:
"Error: not authorized on test to execute command { usersInfo: 1.0 }"
Hinweis:Localhost-Ausnahme
Standardmäßig (wie bei MongoDB 3.0) gibt es eine localhost exception
damit können Sie einen ersten Benutzeradministrator
erstellen für eine Bereitstellung durch Verbindung über localhost
. Sobald mindestens ein Benutzer hinzugefügt wurde, wird die Localhost-Ausnahme automatisch deaktiviert.
Wenn Sie die vollständige Sicherheit Ihrer Bereitstellung überprüfen möchten, lohnt es sich auf jeden Fall, die MongoDB zu lesen Sicherheitscheckliste .