温馨提示×

linux rabbitmq如何设权限

小樊
44
2026-10-28 15:08:03
栏目: 智能运维

在 Linux 上,RabbitMQ 的“权限”通常包含 两类:

  1. Linux 系统层面:RabbitMQ 运行用户、文件权限
  2. RabbitMQ 应用层面:用户、vhost、configure / write / read 权限

下面分别说明。


一、RabbitMQ 应用权限(最常用)

1. 登录 RabbitMQ 管理命令行

rabbitmqctl

(需 root 或 rabbitmq 用户)


2. 创建用户

rabbitmqctl add_user username password

示例:

rabbitmqctl add_user alice 123456

3. 创建 vhost(虚拟主机)

rabbitmqctl add_vhost /myvhost

4. 给用户设置 vhost 权限

rabbitmqctl set_permissions -p /myvhost username ".*" ".*" ".*"

参数说明:

set_permissions -p <vhost> <user> <configure> <write> <read>

正则示例:

  • ".*":所有
  • "^amq\.":只能操作 amq.*
  • "^":无权限

示例(只允许读):

rabbitmqctl set_permissions -p /myvhost alice "^" "^" ".*"

5. 查看权限

rabbitmqctl list_permissions -p /myvhost
rabbitmqctl list_user_permissions alice

6. 删除权限 / 用户

rabbitmqctl clear_permissions -p /myvhost alice
rabbitmqctl delete_user alice

7. 设置用户角色(管理员等)

rabbitmqctl set_user_tags username administrator

常用角色:

  • administrator
  • management
  • monitoring
  • policymaker

二、Linux 系统层面权限

1. RabbitMQ 运行用户

RabbitMQ 默认使用 rabbitmq 用户:

ps -ef | grep rabbitmq

2. 数据 / 日志目录权限

常见目录:

/var/lib/rabbitmq
/var/log/rabbitmq

正确权限示例:

chown -R rabbitmq:rabbitmq /var/lib/rabbitmq
chown -R rabbitmq:rabbitmq /var/log/rabbitmq

⚠️ 不要使用 777


3. 防火墙 / 端口权限

RabbitMQ 常用端口:

  • 5672:AMQP
  • 15672:管理界面
  • 25672:集群

开放端口(firewalld):

firewall-cmd --add-port=5672/tcp --permanent
firewall-cmd --add-port=15672/tcp --permanent
firewall-cmd --reload

三、管理界面方式(图形化)

  1. 启用插件:
rabbitmq-plugins enable rabbitmq_management
  1. 访问:
http://服务器IP:15672
  1. 在 Admin → Users / Permissions 中设置

四、最小权限示例(推荐)

rabbitmqctl add_user appuser app123
rabbitmqctl add_vhost /app
rabbitmqctl set_permissions -p /app appuser ".*" ".*" ".*"
rabbitmqctl set_user_tags appuser management

如果你有具体场景(如:
✅ 只允许某用户发消息
✅ 集群权限
✅ Docker 中 RabbitMQ 权限
✅ 程序连接报错)

可以告诉我,我可以给你更精确的配置。

0 踩