在 ejabberd.ym 中授予新用户管理权限时出现语法错误

在 ejabberd.ym 中授予新用户管理权限时出现语法错误

在过去的几个小时里,我一直在尝试设置埃贾伯德服务器启动。我构建了 ejabberd来自源头因为 ubuntu 存储库中的包有错误。无论如何,在从源代码构建 ejabberd 后,我添加了我的完整限定域名 (FQDN) “s1.noureldin.local“到我的 /etc/ejabberd/ejabberd.yml 文件。

.
.
##   - "example.org"
##
hosts:
  - "localhost"
  - "s1.noureldin.local"
##
## route_subdomains: Delegate subdomains to other XMPP servers.
.
.

然后我创建了一个新用户

ejabberdctl register admin1 s1.noureldin.local P@s5W0rd

然后我尝试连接到我的 xmpp 服务器,结果工作

现在问题当我尝试授予新用户管理员权限,ejabberd 无法再启动,并且我总是在日志中收到语法错误

2016-07-12 12:00:10.733 [info] <0.7.0> Application lager started on node ejabberd@localhost
2016-07-12 12:00:10.977 [info] <0.7.0> Application crypto started on node ejabberd@localhost
2016-07-12 12:00:11.022 [info] <0.7.0> Application sasl started on node ejabberd@localhost
2016-07-12 12:00:11.084 [info] <0.7.0> Application asn1 started on node ejabberd@localhost
2016-07-12 12:00:11.084 [info] <0.7.0> Application public_key started on node ejabberd@localhost
2016-07-12 12:00:11.146 [info] <0.7.0> Application ssl started on node ejabberd@localhost
2016-07-12 12:00:11.171 [info] <0.7.0> Application fast_yaml started on node ejabberd@localhost
2016-07-12 12:00:11.198 [info] <0.7.0> Application fast_tls started on node ejabberd@localhost
2016-07-12 12:00:11.219 [info] <0.7.0> Application fast_xml started on node ejabberd@localhost
2016-07-12 12:00:11.231 [info] <0.7.0> Application stringprep started on node ejabberd@localhost
2016-07-12 12:00:11.245 [info] <0.7.0> Application cache_tab started on node ejabberd@localhost
2016-07-12 12:00:11.687 [info] <0.7.0> Application mnesia started on node ejabberd@localhost
2016-07-12 12:00:14.902 [info] <0.7.0> Application inets started on node ejabberd@localhost
2016-07-12 12:00:14.904 [error] <0.37.0>@ejabberd_config:get_plain_terms_file:257 Cannot load //etc/ejabberd/ejabberd.yml: Syntax error on line 423 at position 3: did not find expected key

这是我的 ejabberd.yml,您可以看到我尝试过但没有成功的所有语法:

.
.
.
max_fsm_queue: 1000

###.   ====================
###'   ACCESS CONTROL LISTS
acl:
  ##
  ## The 'admin' ACL grants administrative privileges to XMPP accounts.
  ## You can put here as many accounts as you want.
  ##
     admin:
       user:
       - "[email protected]"
  ######## I TRIED THESE AS WELL ########
  ##     - "admin1":"s1.noureldin.local"
  ##     - "[email protected]"
  ##
  ##   user: - "[email protected]"
  ##   - user: "[email protected]"

  ## Blocked users
  ##
  ## blocked:
  ##   user:
  ##     - "[email protected]"
  ##     - "test"

  ## Local users: don't modify this.
  ##
  local:
    user_regexp: ""

  ##
  ## More examples of ACLs
  ##
  ## jabberorg:
.
.
.

当我重新推荐这几行时,它再次起作用:

admin:
   user:
   - "[email protected]"

有人能帮我解决这个问题吗?我在网上和 ejabberd 文档中搜索过,所有人都使用了与我相同的语法,但对他们来说却有效。

先感谢您。

答案1

好的,我发现了错误。yml文件文件是白色空间敏感

以及每一个子配置必须比其父配置多两个空格,所以我的配置将变成:

acl:
  ##
  ## The 'admin' ACL grants administrative privileges to XMPP accounts.
  ## You can put here as many accounts as you want.
  ##
  admin:
    user:
      - "[email protected]"
  ##    - "aleksey@localhost"
  ##
  ## Blocked users

或者更清楚地说:

acl:   
  admin:
    user:
      - "[email protected]"

相关内容