Als je gewoon wilt testen of je zonder authenticatie verbinding kunt maken met een MongoDB-server via bash
, kunt u een script gebruiken dat lijkt op het volgende:
#!/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
Voorbeelduitvoer:
$ ./isAuthEnabled.sh localhost:27017
mongod auth is ENABLED
$ ./isAuthEnabled.sh localhost:27777
mongod auth is NOT enabled
De enige parameter voor dit script is een optioneel MongoDB-adres om verbinding mee te maken (host:port/dbname); de mongo
shell gebruikt standaard localhost:27017/test
.
Het script controleert eenvoudig of gebruikers zonder toestemming kunnen worden vermeld.
Als auth correct is ingeschakeld, wordt de db.getUsers()
commando zou een fout moeten retourneren zoals:
"Error: not authorized on test to execute command { usersInfo: 1.0 }"
Opmerking:Localhost-uitzondering
Standaard (zoals bij MongoDB 3.0) is er een localhost exception
waarmee u een eerste gebruikersbeheerder
kunt maken voor een implementatie door verbinding te maken via localhost
. Zodra ten minste één gebruiker is toegevoegd, wordt de localhost-uitzondering automatisch uitgeschakeld.
Als u de volledige beveiliging van uw implementatie wilt controleren, is het zeker de moeite waard om de MongoDB te bekijken Beveiligingschecklist .