mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 15:02:32 +00:00
12020f8a95
Because /etc/profile (and ~/.profile) are read by login shells only, aliases and functions defined there are not available to non-login shells, e.g. when using screen or tmux. If the ENV environment variable exists (exported by /etc/profile or ~/.profile) and references an existing file, then all interactive shells (login or non-login) will read that file as well. This sets the ENV environment variable in /etc/profile, pointing to /etc/shinit. This also adds /etc/shinit, which: * Contains alias and function definitions originally in /etc/profile * Sources /etc/mkshrc if the user is using mksh (also originally in /etc/profile), as /etc/mkshrc is meant for all interactive shells * Sources ~/.mkshrc if the user is using mksh, to compensate for the fact that mksh will not read ~/.mkshrc if ENV is set * Sources ~/.shinit if the user is not using mksh This also removes the shebang from /etc/profile, as the file is sourced, not executed. Signed-off-by: Jeffery To <jeffery.to@gmail.com>
41 lines
1023 B
Bash
41 lines
1023 B
Bash
[ -e /tmp/.failsafe ] && export FAILSAFE=1
|
|
|
|
[ -f /etc/banner ] && cat /etc/banner
|
|
[ -n "$FAILSAFE" ] && cat /etc/banner.failsafe
|
|
|
|
fgrep -sq '/ overlay ro,' /proc/mounts && {
|
|
echo 'Your JFFS2-partition seems full and overlayfs is mounted read-only.'
|
|
echo 'Please try to remove files from /overlay/upper/... and reboot!'
|
|
}
|
|
|
|
export PATH="%PATH%"
|
|
export HOME=$(grep -e "^${USER:-root}:" /etc/passwd | cut -d ":" -f 6)
|
|
export HOME=${HOME:-/root}
|
|
export PS1='\u@\h:\w\$ '
|
|
export ENV=/etc/shinit
|
|
|
|
case "$TERM" in
|
|
xterm*|rxvt*)
|
|
export PS1='\[\e]0;\u@\h: \w\a\]'$PS1
|
|
;;
|
|
esac
|
|
|
|
[ -n "$FAILSAFE" ] || {
|
|
for FILE in /etc/profile.d/*.sh; do
|
|
[ -e "$FILE" ] && . "$FILE"
|
|
done
|
|
unset FILE
|
|
}
|
|
|
|
if ( grep -qs '^root::' /etc/shadow && \
|
|
[ -z "$FAILSAFE" ] )
|
|
then
|
|
cat << EOF
|
|
=== WARNING! =====================================
|
|
There is no root password defined on this device!
|
|
Use the "passwd" command to set up a new password
|
|
in order to prevent unauthorized SSH logins.
|
|
--------------------------------------------------
|
|
EOF
|
|
fi
|