# # /etc/profile: system-wide profile for the Bourne shell (sh(1)) and # Bourne compatible shells (bash(1), ksh(1), ash(1), ...). # # 2008-08-07, alex@barton.de # - Added support for /etc/profile.d # - Added support for /etc/chroot_name # - Restructure PATH and MANPATH detecttion. # - Add ~/Applications to PATH. # - Add generic chroot name check. # - Check if debian_chroot is readable (insted of if it exists). # - Fix quota check, don't use full path name # 2007-10-28, alex@barton.de # - Look for /usr/libexec/path_helper, used by Mac OS X 10.5 # 2007-04-05, alex@barton.de # - Check for and read /etc/bashrc as well, if /etc/bash.bashrc doesn't exist # 2006-01-04, alex@barton.de # - Use "hostname -s" (not "--short") for compatibility to [Net]BSD. # - Added /usr/pkg/bin to optional PATH components. # 2005-04-23, alex@Arthur.Ath.CX # - Removed umask, we do use the system default now. # 2005-02-19, alex@Arthur.Ath.CX # - Removed export of CVS_RSH and MANWIDTH: use /etc/environment! # 2005-02-04, alex@Arthur.Ath.CX # - Added export of CVS_RSH. # - Added export of MANWIDTH=80. # 2005-01-23, alex@Arthur.Ath.CX # - Added check for quotas # 2004-09-13, alex@Arthur.Ath.CX # - I made this script more generic, so that it is usabe for other systems # than Arthur as well: read in local profile from /var/lib/$ME/profile # after the initialization done in here. # - Changed shell prompt to generic version using "<" and ">". # - Make sure that $ME is set, even when not running interactive. # 2004-08-11, alex@Arthur.Ath.CX # - Make sure that $USER is set. # - Always export $UID and $USER variables. # 2004-07-30, alex@Arthur.Ath.CX # - Make sure $UID is set. # - Let ksh read in "/etc/ksh.kshrc". # 2004-05-20, alex@Arthur.Ath.CX # - Added support for "$debian_chroot" # 2004-02-16, alex@Arthur.Ath.CX # - Removed test for old home directory. # 2004-02-02, alex@Arthur.Ath.CX # - Added scan for optional PATH elements. # 2003-12-18, alex@Arthur.Ath.CX # - Initial version. # [ -e /tmp/ConfigDebug.$USER ] && echo " >> /etc/profile ..." PROFILEREAD="true" export PROFILEREAD # Initialize PATH variable export PATH MANPATH if [ -x /usr/libexec/path_helper ]; then PATH=""; MANPATH="" eval `/usr/libexec/path_helper -s` else PATH="/usr/local/bin:/usr/bin:/bin" [ "$UID" -eq 0 ] && PATH="/usr/local/sbin:/usr/sbin:/sbin:$PATH" fi # prepend optional directories to PATH ... path="" for d in /usr/pkg/bin /opt/*/bin; do [ -d "$d" -o -h "$d" ] && path="$path$d:" done [ -n "$path" ] && PATH="$path$PATH" if [ "$UID" -eq 0 ]; then path="" for d in /usr/pkg/sbin /opt/*/sbin; do [ -d "$d" -o -h "$d" ] && path="$path$d:" done [ -n "$path" ] && PATH="$path$PATH" fi # append optional directories to PATH ... for d in /usr/bin/X11 /usr/games; do [ -d "$d" -o -h "$d" ] && PATH="$PATH:$d" done # set PATH so it includes user's private executables [ -d ~/Applications ] && PATH=~/Applications:"${PATH}" [ -d ~/bin ] && PATH=~/bin:"${PATH}" [ -d ~/sbin ] && PATH=~/sbin:"${PATH}" # set MANPATH so it includes user's private man files if [ -n "$MANPATH" ]; then path="" for d in /usr/pkg/share/man /usr/pkg/man /opt/*/share/man /opt/*/man; do [ -d "$d" -o -h "$d" ] && path="$path$d:" done [ -n "$path" ] && MANPATH="$path$MANPATH" fi [ -d ~/man ] && MANPATH=~/man:"${MANPATH}" [ -d ~/share/man ] && MANPATH=~/share/man:"${MANPATH}" # set variable identifying the chroot you work in [ -r /etc/debian_chroot ] && chroot_name=$(cat /etc/debian_chroot) [ -r /etc/chroot_name ] && chroot_name=$(cat /etc/chroot_name) # validate terminal definition [ -z "$TERM" ] && eval `tset -s -Q` # make sure $UID and $USER is set [ -z "$UID" ] && UID=`id -u` [ -z "$USER" ] && USER=`id -un` export UID USER # get my own hostname ME=`hostname -s` export ME # read profile additions if [ -d /etc/profile.d ]; then for f in /etc/profile.d/*; do [ -r "$f" ] && . "$f" done fi # read local profile, if available [ -r "/var/lib/${ME}/profile" ] && . /var/lib/${ME}/profile # interactive shell? [ "$PS1" ] || return # generic shell prompt [ "$UID" -eq 0 ] \ && PS1="<$ME> # " \ || PS1="<$ME> \$ " # bash-specific initialization [ "$BASH" -a -z "$BASHRCREAD" -a -r /etc/bash.bashrc ] \ && source /etc/bash.bashrc [ "$BASH" -a -z "$BASHRCREAD" -a -r /etc/bashrc ] \ && source /etc/bashrc # ksh-specific initialization [ "$KSH_VERSION" -a -z "$KSHRCREAD" -a -r /etc/ksh.kshrc ] \ && . /etc/ksh.kshrc # Check quotas which quota >/dev/null 2>&1 [ $? -eq 0 ] && quota -q # -eof-