From d64237a6a555944d6d35676490bc4fb7c7db965d Mon Sep 17 00:00:00 2001 From: Tommi Virtanen Date: Mon, 19 Sep 2011 09:47:11 -0700 Subject: [PATCH] ceph_common.sh: Do not sudo to root unless needed Using do_root_cmd() doesn't really need to sudo to root if you're already root. Commit 71dc75bdafe62a098c0493ad62f2d0d2a6ca7946 causes a regression: when system "foo" has a sudoers config that requires a tty, init-ceph now fails like this: sudo: sorry, you must have a tty to run sudo when it is invoked by root with something like this: ssh foo /etc/init.d/init-ceph start Signed-off-by: Jim Schutt Signed-off-by: Tommi Virtanen --- src/ceph_common.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ceph_common.sh b/src/ceph_common.sh index adb8783f4e9a7..1da42bd9436ce 100644 --- a/src/ceph_common.sh +++ b/src/ceph_common.sh @@ -97,7 +97,12 @@ do_root_cmd() { if [ -z "$ssh" ]; then [ $verbose -eq 1 ] && echo "--- $host# $1" ulimit -c unlimited - sudo bash -c "$1" || { echo "failed: '$1'" ; exit 1; } + whoami=`whoami` + if [ "$whoami" = "root" ]; then + bash -c "$1" || { echo "failed: '$1'" ; exit 1; } + else + sudo bash -c "$1" || { echo "failed: '$1'" ; exit 1; } + fi else [ $verbose -eq 1 ] && echo "--- $rootssh $2 \"cd $sshdir ; ulimit -c unlimited ; $1\"" $rootssh $2 "cd $sshdir ; ulimit -c unlimited ; $1" || { echo "failed: '$rootssh $1'" ; exit 1; } -- 2.39.5