Hvis du bare vil teste, om du kan oprette forbindelse til en MongoDB-server uden godkendelse via bash
, kan du bruge et script, der ligner følgende:
#!/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
Eksempel output:
$ ./isAuthEnabled.sh localhost:27017
mongod auth is ENABLED
$ ./isAuthEnabled.sh localhost:27777
mongod auth is NOT enabled
Den eneste parameter for dette script er en valgfri MongoDB-adresse at oprette forbindelse til (host:port/dbname); mongo
shell bruger som standard localhost:27017/test
.
Scriptet foretager en simpel kontrol af, om brugere kan opføres uden tilladelse.
Hvis godkendelse er korrekt aktiveret, vil db.getUsers()
kommandoen skulle returnere en fejl som:
"Error: not authorized on test to execute command { usersInfo: 1.0 }"
Bemærk:Localhost-undtagelse
Som standard (som ved MongoDB 3.0) er der en localhost exception
der giver dig mulighed for at oprette en første brugeradministrator
til en implementering ved at oprette forbindelse via localhost
. Når mindst én bruger er blevet tilføjet, deaktiveres localhost-undtagelsen automatisk.
Hvis du vil kontrollere den fulde sikkerhed af din implementering, er det bestemt værd at gennemgå MongoDB Sikkerhedstjekliste .