[rabbitmq-discuss] Can't use backtick in password

Kal Sze swordangel at gmail.com
Tue Aug 20 14:06:21 BST 2013

Hello Simon,

Sorry. Maybe I was jumping to conclusions. It appears that the "fix"
is also broken in subtle ways. If I apply the fix and try this:

    $ sudo rabbitmqctl set_permissions -p foo foo ".*" ".*" ".*"

It would fail. I tried sticking a line of  `echo "$@"` in
/usr/lib/rabbitmq/bin/rabbitmqctl, right before the `exec` command.
Somehow the '-p' ends up getting dropped from $@. I don't really know

So the only thing we are sure about is that the current rabbitmqctl
script in version 3.1.5 is broken for edge cases with special
characters in the password.

Best Regards,

On 20 August 2013 20:58, Simon MacMullen <simon at rabbitmq.com> wrote:
> On 20/08/13 08:12, Kal Sze wrote:
>> After obtaining some help from the #bash channel on Freenode IRC, it
>> appears that the correct fix would be to use proper string substitution
>> in the rabbitmqctlscript:
>> Replace this line:\
>>      su rabbitmq -s /bin/sh -c "/usr/lib/rabbitmq/bin/${SCRIPT}
>> ${CMDLINE}"
>> With this line:
>>      su rabbitmq -s /bin/sh -c 'script=$1; shift; "$script" "$@"' _
>> "/usr/lib/rabbitmq/bin/${SCRIPT}" "$@"
> Ah, thank you. We will stare carefully at this change, all the while cursing
> whoever invented string substitution in shell scripts... :-)
> Cheers, Simon
> --
> Simon MacMullen
> RabbitMQ, Pivotal

More information about the rabbitmq-discuss mailing list