summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorLuke Bakken <lbakken@pivotal.io>2018-09-12 15:17:22 -0700
committerLuke Bakken <lbakken@pivotal.io>2018-09-12 15:26:42 -0700
commit79d58412246950cad0fa56a25621c68292c3f806 (patch)
treecf9d6ce29600e6252d0ee22aca32eaa636a073a5 /scripts
parent3d18a4918d09a652318ee921546fbb936c44d8e5 (diff)
downloadrabbitmq-server-git-79d58412246950cad0fa56a25621c68292c3f806.tar.gz
Ensure ~rabbitmq/.erlang.cookie is readable after running a command as root
Fixes #85
Diffstat (limited to 'scripts')
-rw-r--r--scripts/rabbitmq-script-wrapper18
1 files changed, 17 insertions, 1 deletions
diff --git a/scripts/rabbitmq-script-wrapper b/scripts/rabbitmq-script-wrapper
index dd8ce1a590..488100f57a 100644
--- a/scripts/rabbitmq-script-wrapper
+++ b/scripts/rabbitmq-script-wrapper
@@ -29,7 +29,8 @@ main() {
exec_script_as_rabbitmq "$@"
elif current_user_is_root && calling_rabbitmq_plugins
then
- exec_script_as_rabbitmq "$@"
+ run_script_as_rabbitmq "$@"
+ maybe_fixup_erlang_cookie
elif current_user_is_root
then
exec_script_as_root "$@"
@@ -38,6 +39,17 @@ main() {
fi
}
+maybe_fixup_erlang_cookie() {
+ # rabbitmq/rabbitmq-server-release#85
+ _rabbitmq_home="$(cd ~rabbitmq && pwd)"
+ _erlang_cookie="$_rabbitmq_home/.erlang.cookie"
+ if [ -f "$_erlang_cookie" ]
+ then
+ chown rabbitmq:rabbitmq "$_erlang_cookie"
+ chmod 400 "$_erlang_cookie"
+ fi
+}
+
ensure_we_are_in_a_readable_dir() {
# shellcheck disable=SC2164
cd ~rabbitmq || cd /
@@ -70,6 +82,10 @@ exec_rabbitmq_server() {
exec /usr/lib/rabbitmq/bin/rabbitmq-server "$@" @STDOUT_STDERR_REDIRECTION@
}
+run_script_as_rabbitmq() {
+ HOME="$(cd ~rabbitmq && pwd)" "/usr/lib/rabbitmq/bin/$SCRIPT" "$@"
+}
+
exec_script_as_rabbitmq() {
HOME="$(cd ~rabbitmq && pwd)" exec "/usr/lib/rabbitmq/bin/$SCRIPT" "$@"
}