mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 22:44:27 -05:00 
			
		
		
		
	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
 |