Thursday, 13 November 2014

[rabbitmq] ghi chú nhanh về user chạy rabbitmq

Bài viết sử dụng dẫn chứng trên:
# lsb_release -d; dpkg -l rabbitmq* | grep rabbit
Description:    Ubuntu 12.04.4 LTS
ii  rabbitmq-server                  3.1.2-1                            AMQP server written in Erlang
User chạy process rabbitmq luôn luôn là user ``rabbitmq``, cho dù bạn đã dùng user ``root`` để start service hoặc sử dụng câu lệnh ``rabbitmqctl` bằng ``root`` user.
Lý do là vì các bin script do package rabbitmq cung cấp luôn kiểm tra user gọi câu lệnh và set nó về ``rabbitmq`` nếu có thể.

Bằng chứng:


# grep '^if \[' -A15 `which rabbitmqctl`
if [ `id -u` = `id -u rabbitmq` -a "$SCRIPT" = "rabbitmq-server" ] ; then
    /usr/lib/rabbitmq/bin/rabbitmq-server "$@"  > "/var/log/rabbitmq/startup_log" 2> "/var/log/rabbitmq/startup_err"
elif [ `id -u` = `id -u rabbitmq` -o "$SCRIPT" = "rabbitmq-plugins" ] ; then
    /usr/lib/rabbitmq/bin/${SCRIPT} "$@"
elif [ `id -u` = 0 ] ; then
    su rabbitmq -s /bin/sh -c "/usr/lib/rabbitmq/bin/${SCRIPT} ${CMDLINE}"
else
    /usr/lib/rabbitmq/bin/${SCRIPT}
    echo
    echo "Only root or rabbitmq should run ${SCRIPT}"
    echo
    exit 1
fi

Hết.
HVN