mosquitto中可以添加多个用户,只有使用用户名和密码登陆服务器才允许用户进行订阅与发布操作。可以说用户机制是mosquitto重要的安全机制,增强服务器的安全性。
用户与权限配置需要修改3处地方:

1、mosquitto中最最最重要的配置文件mosquitto.conf
2、pwfile.example (保存用户名与密码)
3、aclfile.example (保存权限配置)

 首先我们来新增两个用户 1: admin/admin 2: mosquitto/mosquitto 具体步骤:

  1: 打开mosquitto.conf文件,找到allow_anonymous节点,这个节点作用是,是否开启匿名用户登录,默认是true。打开此项配置(将前面的 # 号去掉)之后将其值改为false

    修改前:#allow_anonymous

    修改后:allow_anonymous false

  2: 找到password_file节点,这个节点是告诉服务器你要配置的用户将存放在哪里。打开此配置并指定pwfile.example文件路劲(注意是绝对路劲)

    修改前:#password_file

    修改后:password_file  /etc/mosquitto/pwfile.example (这里的地址根据自己文件实际位置填写)

  3: 创建用户名和密码、打开命令窗口 键入如下命令:  

mosquitto_passwd -c /etc/mosquitto/pwfile.example admin

提示连续两次输入密码、创建成功。命令解释: -c 创建一个用户、/etc/mosquitto/pwfile.example 是将用户创建到 pwfile.example  文件中、admin 是用户名。

  4: 创建mosquitto用户。在命令窗口键入如下命令:

mosquitto_passwd /etc/mosquitto/pwfile.example mosquitto

 同样连续会提示连续输入两次密码。注意第二次创建用户时不用加 -c 如果加 -c 会把第一次创建的用户覆盖。

至此两个用户创建成功,此时如果查看 pwfile.example 文件会发现其中多了两个用户。

注意,mosquitto_passwd -c命令每次都只会生成只包含一个用户的文件,如果你想在passwd.conf中存放多个用户, 可以使用mosquitto_passwd -b 命令

    mosquitto_passwd -b [最终生成的password_file文件]  [用户名]  [密码]

    mosquitto_passwd -b命令必须在控制台输入明文的密码,且每次只是在passwd.conf中新增一个用户,不会覆盖之前已生成的用户

   同时也可以使用mosquitto_passwd -D命令删除一个用户

   mosquitto_passwd的具体应用可以参考 http://mosquitto.org/man/mosquitto_passwd-1.html

此时所有客户端连接 Mosquitto 服务都需要输入用户名密码、

Mosquitto 权限是根据 topic 控制的、类似与目录管理。您可以设定每个用户订阅/发布权限、也可以设定每个用户可访问的topic范围、从而达到权限控制的目的

 1: 给这两个用户配置不同的权限(假定已经创建了admin 和 mosquitto这两个用户)

    admin 设置为订阅权限,并且只能访问的主题为"root/topic/#"

    mosquitto 设置为发布权限,并且只能访问的主题为"root/topic/#"

    如果用 admin 进行发布是不会成功的、反过来用 mosquitto 进行订阅同样不会接受到任何信息。因为他们的权限不同。

  2: 增加权限配置

    打开配置文件 aclfile.example 在其中添加如下配置信息。

user admin
topic read root/topic/#
user mosquitto
topic write root/topic#

  

read 订阅权限 、write 发布权限、# 通配符表示所有的、保存退出。

  3:修改 Mosquitto.conf 配置选项

    打开mosquitto.conf文件,找到acl_file节点。打开配置做如下修改:
    修改前:#acl_file
    修改后:acl_file /etc/mosquitto/aclfile.example 根据自己文件实际位置填写

至此admin 、 Mosquitto 两个用户的权限已配置完成。

修改mosquitto端口 ①、默认情况下,mosquitto使用的是1883端口 
在.conf文件找到port,改成自己需要的端口号。我改成了1884,不能使用已占用的端口。

mosquitto --用户配置 及权限管理的更多相关文章

  1. Linux用户配置sudo权限

    Linux用户配置sudo权限 创建sudo权限用户 #useradd supope #passwd supope #visudo #supope         ALL=(ALL)       AL ...

  2. (大数据工程师学习路径)第一步 Linux 基础入门----用户及文件权限管理

    用户及文件权限管理 实验介绍 1.Linux 中创建.删除用户,及用户组等操作. 2.Linux 中的文件权限设置. 一.Linux 用户管理 Linux 是一个可以实现多用户登陆的操作系统,比如“李 ...

  3. Linux用户及文件权限管理

    Linux用户及文件权限管理

  4. 实验楼学习linux第一章第三节用户及文件权限管理

    用户及文件权限管理 常用命令 查看用户 whoami 创建用户 sudo adduser 用户名 切换账户 su 用户名 删除账户 sudo deluser 用户名 --remove-home 查看用 ...

  5. MySQL数据库(6)_用户操作与权限管理、视图、存储过程、触发器、基本函数

    用户操作与权限管理 MySQL用户操作 创建用户 方法一: CREATE USER语句创建 CREATE USER "用户名"@"IP地址" IDENTIFIE ...

  6. WordPress用户角色及其权限管理编辑插件:User Role Editor汉化版

    如果Wordpress默认的用户角色及权限不能满足您的需求,又觉得修改代码编辑用户权限太麻烦.那不妨试试User Role Editor,Wordpress用户角色及其权限管理编辑插件. User R ...

  7. solaris用户与文件权限管理

    此文章已于 20:45:28 2015/3/22 重新发布到 zhuxuekui3 solaris用户与文件权限管理1 类别    「网站分类」Oracle 一.用户与用户组管理 三种用户:超级用户. ...

  8. NopCommerce源代码分析之用户验证和权限管理

    目录 1.  介绍 2.  UML 2.1  实体类UML图 2.2  业务相关UML图 3.  核心代码分析 3.1  实体类源代码 3.2  业务相关源代码 3.3  相关控制器源代码 3.4  ...

  9. 五、Mosquitto 高级应用之权限管理

    本文将讲解 Mosquitto 权限管理.如果还没有搭建 Mosquitto 服务的可以参考我的另外两篇文章<< 一.Mosquitto 介绍&安装>> << ...

随机推荐

  1. VS2010 + IDA SDK 搭建IDA Plugin开发环境

    http://www.h4ck.org.cn/2011/11/vs2010-idasdk6-2-ida-plugin-development/ 1. 执行菜单的File->New->Pro ...

  2. Spring集合 (List,Set,Map,Properties) 实例

    下面例子向您展示Spring如何注入值到集合类型(List, Set, Map, and Properties). 支持4个主要的集合类型: List – <list/> Set – &l ...

  3. mysql sql长度限制解决

    mysql sql长度限制解决   今天发现了一个错误:   Could not execute JDBC batch update   最后发现原因是SQL语句长度大于1M,而我机器上的mysql是 ...

  4. Java中23种经典设计模式详解

    Java中23种设计模式目录1. 设计模式 31.1 创建型模式 41.1.1 工厂方法 41.1.2 抽象工厂 61.1.3 建造者模式 101.1.4 单态模式 131.1.5 原型模式 151. ...

  5. Andorid之Annotation框架初使用(七)

    Save Instance State:程序保留Activity的实例状态 , 在onSaveInstanceState(Bundle)被系统调用的时候自动保存 , onCreate(Bundle)被 ...

  6. 浏览器User-Agent的详细信息

    PC端: safari 5.1 – MACUser-Agent:Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit ...

  7. vc预处理

    VC 编译命令开关 vc可以可以通过Settings -->Project-->C/C++-->Customize来设置这个编译开关 /C:在预处理输出中保留注释语句 /c:只编译, ...

  8. uva 10994 - Simple Addition(规律)

    题目链接:uva 10994 - Simple Addition 题目大意:给出l和r,求∑(l≤i≤r)F(i), F(i)函数题目中有. 解题思路:由两边向中间缩进,然后l和r之间的数可以按照1~ ...

  9. flex创建hashMap

    1,定义hashMap的接口. import flash.events.IEventDispatcher; import mx.events.CollectionEvent; /** *  Dispa ...

  10. 转: Mac 使用ADT的问题

    http://blog.csdn.net/wwj_748/article/details/44806253