【发布时间】:2015-08-09 17:15:12
【问题描述】:
我在 Debian 7.6 服务器上运行 ejabberd-14.12,单节点。
我已经使用交互式 .run 包安装了 ejabberd。
我已经开始使用 ejabberd(以 root 身份登录):
# /opt/ejabberd-14.12/bin/ejabberdctl start
日志告诉我们:
ejabberd_app:start:69 ejabberd 14.12 is started in the node ejabberd@localhost
然后,我可以在我的 /root 目录中看到 erlang cookie:
-r-------- 1 root root 20 ago 9 00:00 .erlang.cookie
如果我尝试在命令行模式下创建用户,一切正常:
# /opt/ejabberd-14.12/bin/ejabberdctl register foo myhost.lchat.local foopwd
并且用户已创建(我可以在 web gui 上看到它)。
如果相同的命令嵌入在 .sh 脚本中(带有完整的命令路径),并由守护进程(由 root 拥有)启动,它会在 ejabberd 的 error.log 中生成错误:
[error] <0.435.0> ** Connection attempt from disallowed node 'ctl-ejabberd@localhost' **
我认为这是一个安全问题,以避免未经授权的用户发出命令。
我该怎么做才能让脚本也接受命令?
【问题讨论】:
标签: linux bash debian ejabberd