ejabberd: есть ли способ настроить «cookie», отличный от «ejabberd»? - PullRequest
2 голосов
/ 17 сентября 2009

Я строю модуль ejabberd. Мне требуется, чтобы этот модуль выполнял вызовы RPC к другому узлу в той же локальной сети (sname). Насколько я понимаю, ejabberd настраивает свои собственные файлы cookie, которые, конечно, будут отличаться от файлов cookie, которые я использую для других своих узлов.

Есть ли способ заставить ejabberd использовать другой файл cookie?

РЕДАКТИРОВАТЬ: ejabberd запускает своего демона под именем пользователя "ejabberd".

РЕДАКТИРОВАТЬ: даже при создании /home/ejabberd/.erlang.cookie (имя пользователя: ejabberd, группа: ejabberd) с соответствующим файлом cookie все равно не работает.

РЕДАКТИРОВАТЬ: один из способов обойти проблему (которая не так хороша) - скопировать (с надлежащими разрешениями) нужный файл .erlang.cookie в / var / lib / ejabberd

1 Ответ

4 голосов
/ 17 сентября 2009

Сценарий ejabberdctl устанавливает домашний каталог так, чтобы файл cookie находился в /var/lib/ejabberd/.erlang.cookie. Erlang сам проверяет права доступа к файлу, поэтому они должны быть правильными.

У вас есть несколько вариантов принудительного использования определенного cookie:

  • Измените содержимое файла - ejabberd не изменит его.
  • Измените скрипт ejabberdctl, чтобы он передавал -setcookie 'SomeCookieValue' в erl.
  • Измените ejabberdctl, чтобы установить другой домашний каталог.

Файл cookie будет создан, если он не существует, но не будет изменен за вашей спиной, если он существует. Использование общего файла cookie требуется для создания кластеров ejabberd или для интеграции с ejabberd через дистрибутив erlang.

...