| 1 |
# /etc/profile: login shell setup
|
| 2 |
#
|
| 3 |
# That this file is used by any Bourne-shell derivative to setup the
|
| 4 |
# environment for login shells.
|
| 5 |
#
|
| 6 |
|
| 7 |
# Load environment settings from profile.env, which is created by
|
| 8 |
# env-update from the files in /etc/env.d
|
| 9 |
if [ -e /etc/profile.env ] ; then
|
| 10 |
. /etc/profile.env
|
| 11 |
fi
|
| 12 |
|
| 13 |
# 077 would be more secure, but 022 is generally quite realistic
|
| 14 |
umask 022
|
| 15 |
|
| 16 |
# Set up PATH depending on whether we're root or a normal user.
|
| 17 |
# There's no real reason to exclude sbin paths from the normal user,
|
| 18 |
# but it can make tab-completion easier when they aren't in the
|
| 19 |
# user's PATH to pollute the executable namespace.
|
| 20 |
#
|
| 21 |
# It is intentional in the following line to use || instead of -o.
|
| 22 |
# This way the evaluation can be short-circuited and calling whoami is
|
| 23 |
# avoided.
|
| 24 |
if [ "$EUID" = "0" ] || [ "$USER" = "root" ] ; then
|
| 25 |
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:${ROOTPATH}"
|
| 26 |
else
|
| 27 |
PATH="/usr/local/bin:/usr/bin:/bin:${PATH}"
|
| 28 |
fi
|
| 29 |
export PATH
|
| 30 |
unset ROOTPATH
|
| 31 |
|
| 32 |
# Extract the value of EDITOR
|
| 33 |
[ -z "$EDITOR" ] && EDITOR="`. /etc/rc.conf 2>/dev/null; echo $EDITOR`"
|
| 34 |
[ -z "$EDITOR" ] && EDITOR="/bin/nano"
|
| 35 |
export EDITOR
|
| 36 |
|
| 37 |
if [ -n "${BASH_VERSION}" ] ; then
|
| 38 |
# Newer bash ebuilds include /etc/bash/bashrc which will setup PS1
|
| 39 |
# including color. We leave out color here because not all
|
| 40 |
# terminals support it.
|
| 41 |
if [ -f /etc/bash/bashrc ] ; then
|
| 42 |
# Bash login shells run only /etc/profile
|
| 43 |
# Bash non-login shells run only /etc/bash/bashrc
|
| 44 |
# Since we want to run /etc/bash/bashrc regardless, we source it
|
| 45 |
# from here. It is unfortunate that there is no way to do
|
| 46 |
# this *after* the user's .bash_profile runs (without putting
|
| 47 |
# it in the user's dot-files), but it shouldn't make any
|
| 48 |
# difference.
|
| 49 |
. /etc/bash/bashrc
|
| 50 |
else
|
| 51 |
PS1='\u@\h \w \$ '
|
| 52 |
fi
|
| 53 |
else
|
| 54 |
# Setup a bland default prompt. Since this prompt should be useable
|
| 55 |
# on color and non-color terminals, as well as shells that don't
|
| 56 |
# understand sequences such as \h, don't put anything special in it.
|
| 57 |
if type whoami >/dev/null 2>/dev/null && \
|
| 58 |
type cut >/dev/null 2>/dev/null && \
|
| 59 |
type uname >/dev/null 2>/dev/null ; then
|
| 60 |
PS1="`whoami`@`uname -n | cut -f1 -d.` \$ "
|
| 61 |
fi
|
| 62 |
fi
|
| 63 |
|
| 64 |
for sh in /etc/profile.d/*.sh ; do
|
| 65 |
[ -r "$sh" ] && . "$sh"
|
| 66 |
done
|
| 67 |
unset sh
|