[Bug 1097473] [NEW] Invoking "env -i bash" unnecessarily results in confusing message

Hugo Heden hugoheden at gmail.com
Tue Jan 8 21:30:51 UTC 2013


Public bug reported:

I was invoking bash as follows:

$ env -i bash

This caused this message to be printed:

$ env -i bash
> To run a command as administrator (user "root"), use "sudo <command>".
> See "man sudo_root" for details.

While I think I understand the rationale for the message, I found it
more confusing than helpful in this situation. I thought I had done
something wrong, or that there was some error with the new shell I was
starting.

The message is, I believe, caused by the following snippet in
/etc/bash.bashrc (note that the "env -i" part above causes $HOME to not
be set)

# sudo hint
if [ ! -e "$HOME/.sudo_as_admin_successful" ] && [ ! -e "$HOME/.hushlogin" ] ; then
    case " $(groups) " in *\ admin\ *)
    if [ -x /usr/bin/sudo ]; then
        cat <<-EOF
        To run a command as administrator (user "root"), use "sudo <command>".
        See "man sudo_root" for details.

        EOF
    fi
    esac
fi

It would perhaps be better if the if-statement also checked that $HOME
is set (to refer to an existing directory?) before checking if
$HOME/.sudo_as_admin_successful and $HOME/.hushlogin exist.

** Affects: bash (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to bash in Ubuntu.
https://bugs.launchpad.net/bugs/1097473

Title:
  Invoking "env -i bash" unnecessarily results in confusing message

Status in “bash” package in Ubuntu:
  New

Bug description:
  I was invoking bash as follows:

  $ env -i bash

  This caused this message to be printed:

  $ env -i bash
  > To run a command as administrator (user "root"), use "sudo <command>".
  > See "man sudo_root" for details.

  While I think I understand the rationale for the message, I found it
  more confusing than helpful in this situation. I thought I had done
  something wrong, or that there was some error with the new shell I was
  starting.

  The message is, I believe, caused by the following snippet in
  /etc/bash.bashrc (note that the "env -i" part above causes $HOME to
  not be set)

  # sudo hint
  if [ ! -e "$HOME/.sudo_as_admin_successful" ] && [ ! -e "$HOME/.hushlogin" ] ; then
      case " $(groups) " in *\ admin\ *)
      if [ -x /usr/bin/sudo ]; then
          cat <<-EOF
          To run a command as administrator (user "root"), use "sudo <command>".
          See "man sudo_root" for details.

          EOF
      fi
      esac
  fi

  It would perhaps be better if the if-statement also checked that $HOME
  is set (to refer to an existing directory?) before checking if
  $HOME/.sudo_as_admin_successful and $HOME/.hushlogin exist.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1097473/+subscriptions




More information about the foundations-bugs mailing list