Ejabberd 集群 .erlang cookie 只能由所有者访问
Posted
技术标签:
【中文标题】Ejabberd 集群 .erlang cookie 只能由所有者访问【英文标题】:Ejabberd clustering .erlang cookie accessible by owner only 【发布时间】:2013-10-15 11:41:14 【问题描述】:集群设置后,我在终端中更改为ejabberd/bin
目录。然后我输入这个命令
erl -sname ejabberd@test -mnesia extra_db_nodes "['ejabberd@testone']" -s mnesia
执行此命令后,我的终端出现此错误
error_logger,2013,10,15,17,3,14,"Cookie 文件 /root/.erlang.cookie 必须只能由所有者访问",[]。
【问题讨论】:
【参考方案1】:来自Erlang docs:
在启动时,一个节点有一个随机原子作为它的魔法cookie,其他节点的cookie被假定为nocookie。 Erlang 网络认证服务器 (auth) 的第一个动作是读取一个名为 $HOME/.erlang.cookie 的文件。如果文件不存在,则创建它。该文件的 UNIX 权限模式设置为八进制 400(用户只读),其内容是随机字符串。从文件的内容创建一个原子 Cookie,并使用 erlang:set_cookie(node(), Cookie) 将本地节点的 cookie 设置为此。这也使得本地节点假设所有其他节点都拥有相同的 cookie Cookie。
您似乎以 root 身份运行。您需要确保 /root/.erlang.cookie
由 root 拥有并具有 600 模式(除 root 之外的任何人都不能读取、写入或执行)。
【讨论】:
以上是关于Ejabberd 集群 .erlang cookie 只能由所有者访问的主要内容,如果未能解决你的问题,请参考以下文章