2016-12-17 1 views
1

Я пытаюсь использовать MongoDB с кукушкой, но я получаю сообщение об ошибке:ошибка: не авторизован на кукушку (имя БД), чтобы выполнить команду, используя (кукушку с MongoDB)

2016-12-16 06:58:01,632 [lib.cuckoo.core.plugins] ERROR: Failed to run the reporting module "MongoDB": 
Traceback (most recent call last): 
    File "/home/ziv/Documents/cuckoo/lib/cuckoo/core/plugins.py", line 533, in process 
    current.run(self.results) 
    File "/home/ziv/Documents/cuckoo/modules/reporting/mongodb.py", line 89, in run 
    if "cuckoo_schema" in self.db.collection_names(): 
    File "/usr/lib/python2.7/dist-packages/pymongo/database.py", line 520, in collection_names 
    results = self._list_collections(sock_info, slave_okay) 
    File "/usr/lib/python2.7/dist-packages/pymongo/database.py", line 492, in _list_collections 
    cursor = self._command(sock_info, cmd, slave_okay)["cursor"] 
    File "/usr/lib/python2.7/dist-packages/pymongo/database.py", line 393, in _command 
    allowable_errors) 
    File "/usr/lib/python2.7/dist-packages/pymongo/pool.py", line 211, in command 
    read_concern) 
    File "/usr/lib/python2.7/dist-packages/pymongo/network.py", line 100, in command 
    helpers._check_command_response(response_doc, msg, allowable_errors) 
    File "/usr/lib/python2.7/dist-packages/pymongo/helpers.py", line 196, in _check_command_response 
    raise OperationFailure(msg % errmsg, code, response) 
OperationFailure: command SON([('listCollections', 1), ('cursor', {})]) on namespace cuckoo.$cmd failed: not authorized on cuckoo to execute command { listCollections: 1, cursor: {} } 

это я БД в есть:

show dbs 
    admin 0.078GB 
    cuckoo 0.078GB 
    local 0.078GB 

я использовал это руководство по установке Монго дБ https://www.howtoforge.com/tutorial/install-mongodb-on-ubuntu-16.04/

я использовал это руководство по установке кукушка http://mostlyaboutsecurity.com/?p=15&i=1

обновление

Ithink я не имею права, но я не знаю, как установить, что мне нужно, это код кукушка, который использует Монго DB: (на этой линии «self.db.collection_names(): ")

def run(self, results): 
     """Writes report. 
     @param results: analysis results dictionary. 
     @raise CuckooReportError: if fails to connect or write to MongoDB. 
     """ 
     if not HAVE_MONGO: 
      raise CuckooDependencyError(
       "Unable to import pymongo (install with " 
       "`pip install pymongo`)" 
      ) 

     self.connect() 

     # Set mongo schema version. 
     # TODO: This is not optimal becuase it run each analysis. Need to run 
     # only one time at startup. 
     if "cuckoo_schema" in self.db.collection_names(): 
      if self.db.cuckoo_schema.find_one()["version"] != self.SCHEMA_VERSION: 
       CuckooReportError("Mongo schema version not expected, check data migration tool") 
     else: 
      self.db.cuckoo_schema.save({"version": self.SCHEMA_VERSION}) 

def connect(self): 
     """Connects to Mongo database, loads options and set connectors. 
     @raise CuckooReportError: if unable to connect. 
     """ 
     host = self.options.get("host", "127.0.0.1") 
     port = int(self.options.get("port", 27017)) 
     db = self.options.get("db", "cuckoo") 

     try: 
      self.conn = MongoClient(host, port) 
      self.db = self.conn[db] 
      self.fs = GridFS(self.db) 
     except TypeError: 
      raise CuckooReportError("Mongo connection port must be integer") 
     except ConnectionFailure: 
      raise CuckooReportError("Cannot connect to MongoDB") 

Я не хочу, чтобы изменить этот код (добавить строку подключения к нему)

у меня есть чистая установка MongoDB, как я создать БД с именем кукушку , что этот код может не использовать и использовать?

Я не нашел ссылки во всех руководствах, которые я читал. его, как он должен работать автоматически, но это не

ответ

0

Сообщение об ошибке:

OperationFailure: command SON([('listCollections', 1), ('cursor', {})]) on namespace cuckoo.$cmd failed: not authorized on cuckoo to execute command { listCollections: 1, cursor: {} } 

Это указывает на то, что ваше приложение пытается выполнить команду в базу данных MongoDB, для которых он не имеет права.

  • Входит ли ваша строка подключения в базу данных учетных данных (имя пользователя/пароль)?
  • У этого пользователя есть необходимые права для выполнения этой команды?
+0

В строке строки подключения нет пользователя (я обновил свой вопрос с кодом кукушки, обращаясь к MongoDB). –

+0

cuckoo proc работает под обычным пользователем системы Я не знаю, как добавить это разрешение для этого пользователя –

+0

Является ли ваш экземпляр MongoDB запущенным с включенным auth? Т.е. вам нужно передать имя пользователя и пароль при подключении к базе данных с оболочкой mongo? Если это так, вам нужно будет указать имя пользователя и пароль в код соединения при подключении к MongoDB. См. Https://api.mongodb.com/python/current/examples/authentication.html#scram-sha-1-rfc-5802 для примера. –

Смежные вопросы