diff --git a/ansible/roles/rabbitmq/templates/rabbitmq.json.j2 b/ansible/roles/rabbitmq/templates/rabbitmq.json.j2
index 1f0d48a671582c588b039fc411e3f65098a15239..264c96fde0d64bf20d9df36c9a87ee1812d2db4e 100644
--- a/ansible/roles/rabbitmq/templates/rabbitmq.json.j2
+++ b/ansible/roles/rabbitmq/templates/rabbitmq.json.j2
@@ -1,5 +1,5 @@
 {
-    "command": "/usr/sbin/rabbitmq-server",
+    "command": "sudo -H -u rabbitmq /usr/sbin/rabbitmq-server",
     "config_files": [
         {
             "source": "{{ container_config_directory }}/rabbitmq-env.conf",
diff --git a/docker/ceilometer/ceilometer-api/extend_start.sh b/docker/ceilometer/ceilometer-api/extend_start.sh
index afe612ae69381c16f4d813e8e79a0c1f44a52e25..5e38e555d1a30379acb939ece89c02c7a84ad666 100644
--- a/docker/ceilometer/ceilometer-api/extend_start.sh
+++ b/docker/ceilometer/ceilometer-api/extend_start.sh
@@ -3,6 +3,6 @@
 # Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases
 # of the KOLLA_BOOTSTRAP variable being set, including empty.
 if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
-    su -s /bin/sh -c "ceilometer-manage db_sync" ceilometer
+    sudo -H -u ceilometer ceilometer-manage db_sync
     exit 0
 fi
diff --git a/docker/cinder/cinder-api/extend_start.sh b/docker/cinder/cinder-api/extend_start.sh
index 9cf68ae868bb930d806f513726e9fef5b2b81460..e9a38ac0f5e61f03db53ad75a636155beaec3644 100644
--- a/docker/cinder/cinder-api/extend_start.sh
+++ b/docker/cinder/cinder-api/extend_start.sh
@@ -4,6 +4,6 @@ set -o errexit
 # Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases
 # of the KOLLA_BOOTSTRAP variable being set, including empty.
 if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
-    su -s /bin/sh -c "cinder-manage db sync" cinder
+    sudo -H -u cinder cinder-manage db sync
     exit 0
 fi
diff --git a/docker/designate/designate-api/extend_start.sh b/docker/designate/designate-api/extend_start.sh
index 8fda9197b3c11780ee814bb9481df1046fee0919..f851d894ae15bf4bdb53e51611d82a9442de8382 100644
--- a/docker/designate/designate-api/extend_start.sh
+++ b/docker/designate/designate-api/extend_start.sh
@@ -3,6 +3,6 @@
 # Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases
 # of the KOLLA_BOOTSTRAP variable being set, including empty.
 if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
-    su -s /bin/sh -c "designate-manage db_sync" designate
+    sudo -H -u designate designate-manage db_sync
     exit 0
 fi
diff --git a/docker/glance/glance-api/extend_start.sh b/docker/glance/glance-api/extend_start.sh
index eebee43e493063df58cac7ac6852d26966e1c6f6..fd70962ebdf264dd4f026096854c67f4ef2eb410 100644
--- a/docker/glance/glance-api/extend_start.sh
+++ b/docker/glance/glance-api/extend_start.sh
@@ -3,6 +3,6 @@
 # Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases
 # of the KOLLA_BOOTSTRAP variable being set, including empty.
 if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
-    su -s /bin/sh -c "glance-manage db_sync" glance
+    sudo -H -u glance glance-manage db_sync
     exit 0
 fi
diff --git a/docker/gnocchi/gnocchi-api/extend_start.sh b/docker/gnocchi/gnocchi-api/extend_start.sh
index 8ca5d738817985a0db2f4fd6e377d95b93146aa0..344c3063f2d9bb2611bd8629c4e5311b828c1446 100644
--- a/docker/gnocchi/gnocchi-api/extend_start.sh
+++ b/docker/gnocchi/gnocchi-api/extend_start.sh
@@ -3,6 +3,6 @@
 # Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases
 # of the KOLLA_BOOTSTRAP variable being set, including empty.
 if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
-    su -s /bin/sh -c "gnocchi-manage db_sync" gnocchi
+    sudo -H -u gnocchi gnocchi-manage db_sync
     exit 0
 fi
diff --git a/docker/heat/heat-api/extend_start.sh b/docker/heat/heat-api/extend_start.sh
index 17bd742e34f3b7a570b6b5e6958477eb7fa5d696..f04438a789c576a31c8ea0aa98c7f4a0050f8829 100644
--- a/docker/heat/heat-api/extend_start.sh
+++ b/docker/heat/heat-api/extend_start.sh
@@ -3,7 +3,7 @@
 # Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases
 # of the KOLLA_BOOTSTRAP variable being set, including empty.
 if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
-    su -s /bin/sh -c "heat-manage db_sync" heat
+    sudo -H -u heat heat-manage db_sync
     openstack domain create heat_user_domain
     openstack user create --domain heat_user_domain heat_domain_admin --password ${HEAT_DOMAIN_ADMIN_PASSWORD}
     openstack role add --domain heat_user_domain --user heat_domain_admin admin
diff --git a/docker/ironic/ironic-api/extend_start.sh b/docker/ironic/ironic-api/extend_start.sh
index bbbe5c7e1fd954c42ebd082a0a9d3336b7c25569..b7ef2b242be64845b3e33ac013b323fe06afe80c 100644
--- a/docker/ironic/ironic-api/extend_start.sh
+++ b/docker/ironic/ironic-api/extend_start.sh
@@ -3,6 +3,6 @@
 # Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases
 # of the KOLLA_BOOTSTRAP variable being set, including empty.
 if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
-    su -s /bin/sh -c "ironic-dbsync upgrade" ironic
+    sudo -H -u ironic ironic-dbsync upgrade
     exit 0
 fi
diff --git a/docker/keystone/extend_start.sh b/docker/keystone/extend_start.sh
index 9bd9d537080838782933cd40237a016ac985e942..b1a6d334b296ae2d84d8f3322d78ca7ebda181fb 100644
--- a/docker/keystone/extend_start.sh
+++ b/docker/keystone/extend_start.sh
@@ -9,7 +9,7 @@ fi
 # Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases
 # of the KOLLA_BOOTSTRAP variable being set, including empty.
 if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
-    su -s /bin/sh -c "keystone-manage db_sync" keystone
+    sudo -H -u keystone keystone-manage db_sync
     # Start the api to set initial endpoint and users with the admin_token
     $CMD
     sleep 5
diff --git a/docker/magnum/magnum-api/extend_start.sh b/docker/magnum/magnum-api/extend_start.sh
index fae394185188e2504f62454a4dcb995fd8bbbfa6..c193a0a9a0ea8326ea2489de073762eb325bb55f 100644
--- a/docker/magnum/magnum-api/extend_start.sh
+++ b/docker/magnum/magnum-api/extend_start.sh
@@ -3,6 +3,6 @@
 # Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases
 # of the KOLLA_BOOTSTRAP variable being set, including empty.
 if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
-    su -s /bin/sh -c "magnum-manage db_sync" magnum
+    sudo -H -u magnum magnum-manage db_sync
     exit 0
 fi
diff --git a/docker/murano/murano-api/extend_start.sh b/docker/murano/murano-api/extend_start.sh
index 578cc72cbe9961a5178ae32ba5ddf59a3feba62c..4ca50b6c9274164e66f4128f76775f3b3433089d 100644
--- a/docker/murano/murano-api/extend_start.sh
+++ b/docker/murano/murano-api/extend_start.sh
@@ -3,6 +3,6 @@
 # Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases
 # of the KOLLA_BOOTSTRAP variable being set, including empty.
 if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
-    su -s /bin/sh -c "murano-db-manage --config-file /etc/murano/murano.conf upgrade" murano
+    sudo -H -u murano murano-db-manage --config-file /etc/murano/murano.conf upgrade
     exit 0
 fi
diff --git a/docker/neutron/neutron-server/extend_start.sh b/docker/neutron/neutron-server/extend_start.sh
index c832d586d458cdcae0ea01846fbd0e8c802e76dd..d60829f10c02f55a0f0beaba0db9894309a9bdca 100644
--- a/docker/neutron/neutron-server/extend_start.sh
+++ b/docker/neutron/neutron-server/extend_start.sh
@@ -3,7 +3,7 @@
 # Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases
 # of the KOLLA_BOOTSTRAP variable being set, including empty.
 if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
-    su -s /bin/bash -c "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron
+    sudo -H -u neutron neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head
     exit 0
 fi
 
diff --git a/docker/nova/nova-api/extend_start.sh b/docker/nova/nova-api/extend_start.sh
index 2aaad1e8b407d45e531b7d080f6b0e02387d688a..9b0e9d74623c48fe872a3462022bc8c18e7ad30b 100644
--- a/docker/nova/nova-api/extend_start.sh
+++ b/docker/nova/nova-api/extend_start.sh
@@ -3,6 +3,6 @@
 # Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases
 # of the KOLLA_BOOTSTRAP variable being set, including empty.
 if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
-    su -s /bin/sh -c "nova-manage db sync" nova
+    sudo -H -u nova nova-manage db sync
     exit 0
 fi
diff --git a/docker/zaqar/extend_start.sh b/docker/zaqar/extend_start.sh
index d71b02aab63d04c4493460ba7cf2b35ba1022f38..ec128144a4126bc730b2e0f25ec1fd268a729ec7 100644
--- a/docker/zaqar/extend_start.sh
+++ b/docker/zaqar/extend_start.sh
@@ -3,6 +3,6 @@
 # Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases
 # of the KOLLA_BOOTSTRAP variable being set, including empty.
 if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
-    su -s /bin/sh -c "zaqar-manage db_sync" cinder
+    sudo -H -u zaqar zaqar-manage db_sync
     exit 0
 fi