It appears this has come up before, and was discussed upstream. [1] and
[2] cover discussion of whether --rcfile should ignore the system-wide
bashrc (SYS_BASHRC hereafter), with the conclusion from upstream that it
should not. [3] is an attempt by someone to fix this upstream by
modifying bash's behaviour, which is rejected by the upstream
developers. [4] and [5] are the upstream Debian bugs (which I'll link
this bug to).

At any rate, upstream bash devs have made their position quite clear:
the Debian-patched documentation is wrong, and the behaviour of bash is
as expected. So, the solution to this bug is to fix the documentation.
I'll propose an updated patch here and see if we can't put this decade-
old bug to bed!

I'll also try and rebase the noble patch upstream for Debian (there's
already a patch there, but it's predictably ancient).

[1]: https://lists.gnu.org/archive/html/bug-bash/2018-01/msg00003.html

[2]: https://lists.gnu.org/archive/html/bug-bash/2009-05/msg00031.html

[3]: https://savannah.gnu.org/support/index.php?107950

[4]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=516152

[5]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=343673

** Bug watch added: Debian Bug tracker #516152
   https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=516152

** Bug watch added: Debian Bug tracker #343673
   https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=343673

** Also affects: gnubash via
   https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=516152
   Importance: Unknown
       Status: Unknown

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to bash in Ubuntu.
https://bugs.launchpad.net/bugs/1097467

Title:
  bash does not fulfill --rcfile option properly

Status in Gnu Bash:
  Unknown
Status in bash package in Ubuntu:
  Confirmed

Bug description:
  I am starting a bash shell using

  $ bash --noprofile --rcfile my-custom-bash-rc-file

  Due to the --rcflag, the newly started bash should *not* execute
  commands from /etc/bash.bashrc. That is at least how I interpret `man
  bash`:

        --rcfile file
                Execute commands from file instead of the system wide 
initialization file /etc/bash.bashrc and the standard personal initial‐
                ization file ~/.bashrc if the shell is interactive (see 
INVOCATION below).

  However, it seems that the commands in /etc/bash.bashrc are in fact
  executed.

  To see/reproduce/diagnose this, on Ubuntu I believe one can just
  invoke bash like this (as the regular user):

  $ touch testrc
  $ env -i bash --noprofile --rcfile testrc

  The expected result would be that nothing special is printed on the
  terminal. However, there is an error message, which is printed from
  /etc/bash.bashrc. The "env -i" causes $HOME to not be set in the
  invoked shell, which in turn triggers the error. The error message is:

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

  Another way to see this -- without the "env -i" -- is to add  a
  command to /etc/bash.bashrc, such as

  echo HELLO THERE

  To trigger the bug(?), one can then just do

  $ touch testrc
  $ bash --noprofile --rcfile testrc

  The expected result would be that nothing special is shown in the
  terminal. However, it turns out that the string

  HELLO THERE

  is printed.

To manage notifications about this bug go to:
https://bugs.launchpad.net/gnubash/+bug/1097467/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to