[Bug 1099987] Re: /etc/skel/.profile does not detect bash properly

Launchpad Bug Tracker 1099987 at bugs.launchpad.net
Mon Feb 4 02:13:18 UTC 2013


Status changed to 'Confirmed' because the bug affects multiple users.

** Changed in: bash (Ubuntu)
       Status: New => Confirmed

-- 
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/1099987

Title:
  /etc/skel/.profile does not detect bash properly

Status in “bash” package in Ubuntu:
  Confirmed

Bug description:
  # ~/.profile: executed by the command interpreter for login shells.
  # This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
  # exists.
  # see /usr/share/doc/bash/examples/startup-files for examples.
  # the files are located in the bash-doc package.

  # the default umask is set in /etc/profile; for setting the umask
  # for ssh logins, install and configure the libpam-umask package.
  #umask 022

  # if running bash
  if [ -n "$BASH_VERSION" ]; then
      # include .bashrc if it exists
      if [ -f "$HOME/.bashrc" ]; then
          . "$HOME/.bashrc"
      fi
  fi

  # set PATH so it includes user's private bin if it exists
  if [ -d "$HOME/bin" ] ; then
      PATH="$HOME/bin:$PATH"
  fi

  So if I run bash in posix mode or as /bin/sh.

  antarus at goats5 /etc/skel $ env -i /bin/sh -c 'echo $BASH_VERSION'
  4.2.24(1)-release
  antarus at goats5 /etc/skel $ env -i bash --posix -c 'echo $BASH_VERSION'
  4.2.24(1)-release

  This means when lightdm-session-wrapper sources the users
  $HOME/.profile (created from /etc/skel) it will also sources their
  $HOME/.bashrc. lightdm-session-wrapper runs as posix sh, and not bash.
  Sourcing a .bashrc as posix sh does not work well.

  antarus at goats5 ~/antarus $ /bin/sh
  sh-4.2$ source ~/.bashrc
  sh: `break-posix-sh': not a valid identifier
  antarus at goats5 ~/antarus $ grep 'break-posix-sh' ~/.bashrc
  function break-posix-sh() {

  Functions cannot have dashes in them in posix, but can in bash, for
  example.

  If you replace the .profile login with something like:

  if ! shopt -oq posix; then
      # include .bashrc if it exists
      if [ -f "$HOME/.bashrc" ]; then
          . "$HOME/.bashrc"
      fi
  fi

  It seems to work properly.

  DISTRIB_CODENAME=precise
  DISTRIB_DESCRIPTION="Ubuntu 12.04.1 LTS"
  DISTRIB_ID=Ubuntu
  DISTRIB_RELEASE=12.04

  antarus at goats5 ~/antarus $ apt-cache policy bash
  bash:
    Installed: 4.2-2ubuntu2
    Candidate: 4.2-2ubuntu2
    Version table:

  If lightdm cannot source my .bashrc, I cannot login. Also, thousands
  of my users cannot login.

  -A

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




More information about the foundations-bugs mailing list