1
0
Fork 0
mirror of https://github.com/pygos/build.git synced 2024-12-23 23:50:51 +01:00

Add bash startup files, fix bash startup

- Add startup files
 - Fix initrd to no leak environment variables
 - Start bash from initrd as login shell (for now)

Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
This commit is contained in:
David Oberhollenzer 2018-01-18 21:22:09 +01:00
parent 9b7c8c5730
commit 8230c3996b
4 changed files with 109 additions and 1 deletions

51
pkg/bash/bashrc Normal file
View file

@ -0,0 +1,51 @@
# /etc/bashrc
# System wide functions and aliases
# Environment stuff goes in /etc/profile
# Prevent doublesourcing
if [ -z "$BASHRCSOURCED" ]; then
BASHRCSOURCED="Y"
# are we an interactive shell?
if [ "$PS1" ]; then
shopt -s histappend
shopt -s checkwinsize
history -a
PROMPT_COMMAND=""
if test "$UID" = 0 ; then
PS1="\[\033[1;31m\][\u@\h \W]# \[\033[0m\]"
else
PS1="\[\033[0;32m\][\u@\h \W]$ \[\033[0m\]"
fi
fi
# We're not a login shell
if ! shopt -q login_shell ; then
# By default, we want umask to get set. This sets it for non-login shell.
# Current threshold for system reserved uid/gids is 1000
if [ $UID -gt 999 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002
else
umask 022
fi
SHELL=/bin/bash
# Only display echos from profile.d scripts if we are no login shell
# and interactive - otherwise just process them to set envvars
for i in /etc/profile.d/*.sh; do
if [ -r "$i" ]; then
if [ "$PS1" ]; then
. "$i"
else
. "$i" >/dev/null
fi
fi
done
unset i
fi
fi

View file

@ -37,4 +37,8 @@ deploy() {
mv "$DEPLOY/lib" "$DEVDEPLOY"
mv "$DEPLOY/include" "$DEVDEPLOY"
mkdir -p "$DEPLOY/etc/"
cp "$SCRIPTDIR/pkg/bash/bashrc" "$DEPLOY/etc/"
cp "$SCRIPTDIR/pkg/bash/profile" "$DEPLOY/etc/"
}

51
pkg/bash/profile Normal file
View file

@ -0,0 +1,51 @@
# /etc/profile
# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc
if [ -x /bin/id ]; then
if [ -z "$EUID" ]; then
# ksh workaround
EUID=`id -u`
UID=`id -ru`
fi
USER="`id -un`"
LOGNAME=$USER
fi
HOSTNAME=$(/bin/cat /etc/hostname)
HISTSIZE=1000
HISTCONTROL=ignoreboth
PATH=/bin
export PATH USER LOGNAME HOSTNAME HISTSIZE HISTCONTROL
# By default, we want umask to get set. This sets it for login shell
# Current threshold for system reserved uid/gids is 1000
if [ $UID -gt 999 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002
else
umask 022
fi
for i in /etc/profile.d/*.sh ; do
if [ -r "$i" ]; then
if [ "${-#*i}" != "$-" ]; then
. "$i"
else
. "$i" >/dev/null
fi
fi
done
unset i
if [ -n "${BASH_VERSION-}" ] ; then
if [ -f /etc/bashrc ] ; then
# Bash login shells run only /etc/profile
# Bash non-login shells run only /etc/bashrc
# Check for double sourcing is done in /etc/bashrc.
. /etc/bashrc
fi
fi

View file

@ -107,4 +107,6 @@ umount -l /dev
umount /sys
umount /proc
exec /bin/busybox switch_root /newroot /bin/bash
unset -v singleuser overlay_dev root root_sfs
exec /bin/busybox switch_root /newroot /bin/bash --login