Om du bara vill testa om du kan ansluta till en MongoDB-server utan autentisering via bash
, kan du använda ett skript som liknar följande:
#!/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
Exempelutgång:
$ ./isAuthEnabled.sh localhost:27017
mongod auth is ENABLED
$ ./isAuthEnabled.sh localhost:27777
mongod auth is NOT enabled
Den enda parametern för detta skript är en valfri MongoDB-adress att ansluta till (host:port/dbname); mongo
shell använder som standard localhost:27017/test
.
Skriptet gör en enkel kontroll av om användare kan listas utan tillstånd.
Om auth är korrekt aktiverat, visas db.getUsers()
kommandot bör returnera ett fel som:
"Error: not authorized on test to execute command { usersInfo: 1.0 }"
Obs:Localhost-undantag
Som standard (som vid MongoDB 3.0) finns det ett localhost exception
som låter dig skapa en första användaradministratör
för en distribution genom att ansluta via localhost
. När minst en användare har lagts till inaktiveras localhost-undantaget automatiskt.
Om du vill kontrollera den fullständiga säkerheten för din distribution är det definitivt värt att granska MongoDB Säkerhetschecklista .