Jika Anda hanya ingin menguji apakah Anda dapat terhubung ke server MongoDB tanpa otentikasi melalui bash
, Anda dapat menggunakan skrip yang mirip dengan berikut ini:
#!/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
Contoh keluaran:
$ ./isAuthEnabled.sh localhost:27017
mongod auth is ENABLED
$ ./isAuthEnabled.sh localhost:27777
mongod auth is NOT enabled
Satu-satunya parameter untuk skrip ini adalah alamat MongoDB opsional untuk terhubung (host:port/dbname); mongo
default shell untuk menggunakan localhost:27017/test
.
Script melakukan pemeriksaan sederhana apakah pengguna dapat terdaftar tanpa izin.
Jika auth diaktifkan dengan benar, db.getUsers()
perintah harus mengembalikan kesalahan seperti:
"Error: not authorized on test to execute command { usersInfo: 1.0 }"
Catatan:Pengecualian Localhost
Secara default (seperti pada MongoDB 3.0) ada localhost exception
yang memungkinkan Anda membuat administrator pengguna
pertama untuk penerapan dengan menghubungkan melalui localhost
. Setelah setidaknya satu pengguna telah ditambahkan, pengecualian localhost akan dinonaktifkan secara otomatis.
Jika Anda ingin memeriksa keamanan penuh penerapan Anda, ada baiknya meninjau MongoDB Daftar periksa keamanan .