Description of problem: the wrapper script /usr/sbin/rabbitmqctl drops all arguments to the command in certain cases, for example when the calling user is not root. I am running a rabbitmq node as a local user (for development) as a regular user, outside of /var. This works fine, however the Fedora-specific wrapper to "rabbitctl" will obscure access to the rabbitctl script. It took me quite a while to debug what was happening, until I found out the command is really a wrapper whose sole purpose is munging arguments -- and it does it wrong. Version-Release number of selected component (if applicable): I am on 3.1.5-1.fc19 but I see the same bug in rawhide. How reproducible: Always. Steps to Reproduce: 1. Be non-root / non-rabbitmq user 2. Run rabbitmqctl status Actual results: Error: could not recognise command Usage: rabbitmqctl [-n <node>] [-q] <command> [<command options>] ... Expected results: Status of node rabbit@localhost ... [{pid,1234},... Additional info: The warning "Only root or rabbitmq should run" should really be "Only root or rabbitmq must run", as currently it makes it impossible for anyone else. However, this is not true, as any user *can* run rabbitmq. Furthermore, users in the rabbitmq group should be able to run management commands, given the correct parameters. Lastly, the "rabbitmq-plugins" case looks fishy too, as it allows anyone to run the rabbitmq-plugins command, and makes the first line obsolete.
This package has changed ownership in the Fedora Package Database. Reassigning to the new owner of this component.
This bug appears to have been reported against 'rawhide' during the Fedora 22 development cycle. Changing version to '22'. More information and reason for this action is here: https://fedoraproject.org/wiki/Fedora_Program_Management/HouseKeeping/Fedora22
Created attachment 1195211 [details] Improved and greatly simplified wrapper Greatly simplified wrapper script which works properly for non-root users too.
Bug CONFIRMED still present in current rabbitmq-server package. Testing as non-root user shows the exact issue reported in 2013: $ rabbitmqctl status /usr/bin/rabbitmqctl: строка 47: cd: /var/lib/rabbitmq: Отказано в доступе [shows help text] Only root or rabbitmq can run rabbitmqctl The wrapper script at /usr/bin/rabbitmqctl fails to cd into /var/lib/rabbitmq for non-root users, then drops all arguments and displays help instead of executing the command. This is a 10+ year old bug that needs to be addressed. Attachment 1195211 [details] from 2016 contains a proposed fix.
CONFIRMED: Bug persists even for users in rabbitmq group. After adding user to rabbitmq group: $ groups rabbitmq wheel mock petro $ rabbitmqctl status [shows help text] Only root or rabbitmq can run rabbitmqctl The wrapper script has fundamental logic flaws that prevent ANY non-root user from running rabbitmqctl, even when in the rabbitmq group. The 2016 patch in attachment 1195211 [details] should be reviewed and applied. This 10+ year old bug blocks legitimate use cases like developers running local RabbitMQ instances.
VERIFIED: Simplified wrapper works perfectly! Tested the 2016 patch (simplified 9-line wrapper) and it successfully passes all arguments to the actual rabbitmqctl binary. Non-root users can now execute rabbitmqctl commands without the wrapper blocking them. Test command: $ ~/.local/bin/rabbitmqctl status Result: Successfully invoked the actual rabbitmqctl binary, which attempted to connect to RabbitMQ server (expected behavior - shows proper argument passing). The simplified wrapper approach is the correct fix. Will package this for rawhide, F44, and F43.