在 Linux 上,RabbitMQ 的“权限”通常包含 两类:
下面分别说明。
rabbitmqctl
(需 root 或 rabbitmq 用户)
rabbitmqctl add_user username password
示例:
rabbitmqctl add_user alice 123456
rabbitmqctl add_vhost /myvhost
rabbitmqctl set_permissions -p /myvhost username ".*" ".*" ".*"
参数说明:
set_permissions -p <vhost> <user> <configure> <write> <read>
正则示例:
".*":所有"^amq\.":只能操作 amq.*"^":无权限示例(只允许读):
rabbitmqctl set_permissions -p /myvhost alice "^" "^" ".*"
rabbitmqctl list_permissions -p /myvhost
rabbitmqctl list_user_permissions alice
rabbitmqctl clear_permissions -p /myvhost alice
rabbitmqctl delete_user alice
rabbitmqctl set_user_tags username administrator
常用角色:
administratormanagementmonitoringpolicymakerRabbitMQ 默认使用 rabbitmq 用户:
ps -ef | grep rabbitmq
常见目录:
/var/lib/rabbitmq
/var/log/rabbitmq
正确权限示例:
chown -R rabbitmq:rabbitmq /var/lib/rabbitmq
chown -R rabbitmq:rabbitmq /var/log/rabbitmq
⚠️ 不要使用 777
RabbitMQ 常用端口:
开放端口(firewalld):
firewall-cmd --add-port=5672/tcp --permanent
firewall-cmd --add-port=15672/tcp --permanent
firewall-cmd --reload
rabbitmq-plugins enable rabbitmq_management
http://服务器IP:15672
rabbitmqctl add_user appuser app123
rabbitmqctl add_vhost /app
rabbitmqctl set_permissions -p /app appuser ".*" ".*" ".*"
rabbitmqctl set_user_tags appuser management
如果你有具体场景(如:
✅ 只允许某用户发消息
✅ 集群权限
✅ Docker 中 RabbitMQ 权限
✅ 程序连接报错)
可以告诉我,我可以给你更精确的配置。