All pastes #112916 Raw Edit

Untitled

public cpp v1 · immutable
·published 2006-08-03 09:09 UTC
rendered paste body
#!/bin/bash## Copyright (c) 2005 by Fabian Franz <freenx@fabian-franz.de>#           (c) 2005 by Jon Severinsson <jonno@users.berlios.de>## License: GPL, version 2## CVS: $Id: nxloadconfig,v 1.43 2005/08/02 15:39:32 fabianx Exp $## ========================================================================########################################################################## Commandline support for --help, --check and --userconf#########################################################################HELP="no"CHECK="no"USERCONF="no"NXLCFG_IGNORE_ERRORS="no"while [ "$1" ]do	case "$1" in		--help) HELP="yes"; shift ;;		--check) CHECK="yes"; shift ;;		--ignore-errors) NXLCFG_IGNORE_ERRORS="yes"; shift;;		--userconf) USERCONF="yes" ; 					case "$2" in						"" | --*) shift ;;						*) USER=$2 ; shift 2 ;;					esac ;;		--) shift ; break ;;		*) echo "Invalid flag $1" ; HELP="yes"; shift ; break ;;	esacdoneif [ "$HELP" = "yes" ]then	echo "nxloadconfig - Load the FreeNX configuration variables into the environment."	echo "Syntax: nxloadconfig --help"	echo "        nxloadconfig [--check] [--userconf [<username>]]"	echo	echo "  --check                  Write errors to standard output."	echo "	--ignore-errors		 just warn, and don't exit with a error, if errors occure"	echo "  --userconf [<username>]  Parse <username>.node.conf as well as node.conf."	echo "                           Assume current user if no username is specified."	exit 0fi########################################################################## INTERNAL STUFF# DO NOT TOUCH unless you REALLY know what you are doing#########################################################################NX_VERSION=1.4.0-45-SVNNX_LICENSE="OS (GPL)"# Where can different nx components be foundNX_DIR=/usrPATH_BIN=$NX_DIR/lib/nx # if you change that, be sure to also change the public keysPATH_LIB=$NX_DIR/libNX_ETC_DIR=/etc/nxserverNX_SESS_DIR=/var/lib/nxserver/dbNX_HOME_DIR=/var/lib/nxserver/home# Advanced users ONLYAGENT_LIBRARY_PATH="" #CalculatedPROXY_LIBRARY_PATH="" #CalculatedAPPLICATION_LIBRARY_PATH="" #CalculatedAPPLICATION_LIBRARY_PRELOAD="" #Calculated# the name of the authorized keys file for sshSSH_AUTHORIZED_KEYS="authorized_keys2"########################################################################## Default Values# A user should NEVER touch this, edit $NX_ETC_DIR/node.conf instead########################################################################## General FreeNX directivesSERVER_NAME="$(hostname)"SSHD_PORT=22# Authentication / Security directivesENABLE_USERMODE_AUTHENTICATION="0"ENABLE_PASSDB_AUTHENTICATION="1"ENABLE_SSH_AUTHENTICATION="1"ENABLE_SU_AUTHENTICATION="0"ENABLE_USER_DB="0"ENABLE_FORCE_ENCRYPTION="0"SSHD_CHECK_IP="0"NX_SERVER_TIMEOUT="10"# Restriction directivesDISPLAY_BASE=1000SESSION_LIMIT=200SESSION_USER_LIMIT="" #CalculatedDISPLAY_LIMIT=200ENABLE_PERSISTENT_SESSION="all"DISABLE_PERSISTENT_SESSION=""# Logging directivesNX_LOG_LEVEL=0NX_LOG_SECURE=1NX_LOGFILE=/var/log/nxserver.logSESSION_LOG_CLEAN=1SESSION_HISTORY=2592000# Forwarding directivesENABLE_SERVER_FORWARD="0"SERVER_FORWARD_HOST=""SERVER_FORWARD_PORT=22SERVER_FORWARD_KEY="/usr/NX/share/client.id_dsa.key"ENABLE_NOMACHINE_FORWARD_USER="0"NOMACHINE_SERVER="/usr/NX/bin/nxserver"NOMACHINE_NX_HOME_DIR="/usr/NX/home/nx"ENABLE_NOMACHINE_FORWARD_PORT="0"NOMACHINE_FORWARD_PORT="22"# Services directivesENABLE_ESD_PRELOAD="0"ESD_BIN_PRELOAD="esddsp"ENABLE_ARTSD_PRELOAD="0"ARTSD_BIN_PRELOAD="artsdsp"ENABLE_KDE_CUPS="0"KDE_PRINTRC="" # CalculatedCUPS_ETC="/etc/cups/"# Path directivesUSER_FAKE_HOME="" #CalculatedSET_LD_LIBRARY_PATH="1"DEFAULT_X_WM=""KILL_DEFAULT_X_WM="1"USER_X_STARTUP_SCRIPT=.XclientsDEFAULT_X_SESSION=/etc/X11/xdm/XsessionCOMMAND_START_KDE='/usr/bin/dbus-launch --sh-syntax --exit-with-session startkde'COMMAND_START_GNOME='/usr/bin/dbus-launch --sh-syntax --exit-with-session gnome-session'COMMAND_START_CDE=cdwmCOMMAND_XTERM=xtermCOMMAND_XAUTH=/usr/bin/xauthCOMMAND_SMBMOUNT=smbmountCOMMAND_SMBUMOUNT=smbumountCOMMAND_NETCAT=netcatCOMMAND_SSH=sshCOMMAND_SSH_KEYGEN=ssh-keygenCOMMAND_CUPSD=/usr/sbin/cupsdCOMMAND_MD5SUM=md5sum# Misc directivesENABLE_AUTORECONNECT="0"ENABLE_AUTORECONNECT_BEFORE_140="1"EXPORT_USERIP="0"EXPORT_SESSIONID="0"NODE_AUTOSTART=""ENABLE_ROOTLESS_MODE="1"ENABLE_1_5_0_BACKEND="1"ENABLE_USESSION="0"COMMAND_SESSREG="sessreg"AGENT_EXTRA_OPTIONS_RFB=""AGENT_EXTRA_OPTIONS_RDP=""AGENT_EXTRA_OPTIONS_X="-fp /usr/share/X11/fonts/misc:/usr/share/X11/fonts/cyrillic:/usr/share/X11/fonts/Type1:/usr/share/X11/fonts/CID:/usr/share/X11/fonts/100dpi:/usr/share/X11/fonts/75dpi:/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType:/var/lib/defoma/x-ttcidfont-conf.d/dirs/CID"AGENT_STARTUP_TIMEOUT="60"AGENT_FONT_SERVER=""PROXY_TCP_NODELAY="0"PROXY_EXTRA_OPTIONS=""############################################################################# OS specific directives############################################################################OS="$( uname -sr )"case "$OS" in	"SunOS 5.10")		DEFAULT_X_WM=cdwm		DEFAULT_X_SESSION=/etc/X11/gdm/Xsession		COMMAND_XTERM=/usr/openwin/bin/xterm		COMMAND_XAUTH=/usr/openwin/bin/xauth		COMMAND_CUPSD=/opt/sfw/cups/sbin/cupsd		COMMAND_MD5SUM=gmd5sum		PATH=/usr/xpg4/bin:/usr/openwin/bin:$PATH		export PATH		;;esac# replace incompatible commandscase "$OS" in       "SunOS 5.10")               function which()               {                       [ -e "$1" ] && echo $1 && return 0                       [ -z "$1" ] && return 1                       for i in  $(echo $PATH | tr ":" "\n"); do                               [ -e $i/$1 ] && echo $i/$1 && return 0                       done                       return 1               }       ;;esac########################################################################## node.conf file evaluation#########################################################################if [ -d $NX_ETC_DIR/node.conf.d ]then	for i in $NX_ETC_DIR/node.conf.d/*	do		[ -e $i ] && . $i	donefi[ -e $NX_ETC_DIR/node.conf ] && . $NX_ETC_DIR/node.conf[ "$USERCONF" = "yes" -a -e $NX_ETC_DIR/$USER.node.conf ] && . $NX_ETC_DIR/$USER.node.conf########################################################################## Calculated values#########################################################################[ -z "$SESSION_USER_LIMIT" ] && SESSION_USER_LIMIT=$SESSION_LIMIT[ -z "$USER_FAKE_HOME" ] && USER_FAKE_HOME=$HOME[ -z "$AGENT_LIBRARY_PATH" ] && AGENT_LIBRARY_PATH=$PATH_LIB[ -z "$PROXY_LIBRARY_PATH" ] && PROXY_LIBRARY_PATH=$PATH_LIB[ -z "$APPLICATION_LIBRARY_PATH" ] && APPLICATION_LIBRARY_PATH=$PATH_LIB[ -z "$APPLICATION_LIBRARY_PRELOAD" ] && APPLICATION_LIBRARY_PRELOAD="$APPLICATION_LIBRARY_PATH/libX11-nx.so.6.2:$APPLICATION_LIBRARY_PATH/libXext-nx.so.6.4:$APPLICATION_LIBRARY_PATH/libXcomp.so.1:$APPLICATION_LIBRARY_PATH/libXcompext.so.1:$APPLICATION_LIBRARY_PATH/libXrender-nx.so.1.2"[ -z "$KDE_PRINTRC" -a -n "$KDEHOME" ] && KDE_PRINTRC="$KDEHOME/share/config/kdeprintrc"[ -z "$KDE_PRINTRC" -a -z "$KDEHOME" ] && KDE_PRINTRC="$HOME/.kde/share/config/kdeprintrc"########################################################################## Support for --check#########################################################################if [ "$CHECK" = "yes" ]then	ERROR="no"	WARNING="no"		# Internal Stuff		[ ! -d "$PATH_BIN" ] && \		ERROR="yes" && echo "Error: Invalid value \"PATH_BIN=$PATH_BIN\""	# Check for NX agents ...		[ ! -f "$PATH_BIN/nxagent" ] && \		ERROR="yes" && echo "Error: Could not find nxagent in $PATH_BIN. Please install some OSS components."			[ ! -f "$PATH_BIN/nxdesktop" ] && \		WARNING="yes" && echo "Warning: Could not find nxdesktop in $PATH_BIN. RDP sessions won't work."			[ ! -f "$PATH_BIN/nxviewer" ] && \		WARNING="yes" && echo "Warning: Could not find nxviewer in $PATH_BIN. VNC sessions won't work."	# Check for paths			[ ! -d "$PATH_LIB" ] && \		ERROR="yes" && echo "Error: Invalid value \"PATH_LIB=$PATH_LIB\""	[ ! -d "$NX_ETC_DIR" ] && \		ERROR="yes" && echo "Error: Invalid value \"NX_ETC_DIR=$NX_ETC_DIR\""	[ ! -d "$NX_SESS_DIR" ] && \		ERROR="yes" && echo "Error: Invalid value \"NX_SESS_DIR=$NX_SESS_DIR\""	[ ! -d "$NX_HOME_DIR" ] && \		ERROR="yes" && echo "Error: Invalid value \"NX_HOME_DIR=$NX_HOME_DIR\""	[ ! -d "$AGENT_LIBRARY_PATH" ] && \		ERROR="yes" && echo "Error: Invalid value \"AGENT_LIBRARY_PATH=$AGENT_LIBRARY_PATH\""	[ ! -d "$PROXY_LIBRARY_PATH" ] && \		ERROR="yes" && echo "Error: Invalid value \"PROXY_LIBRARY_PATH=$PROXY_LIBRARY_PATH\""	[ ! -d "$APPLICATION_LIBRARY_PATH" ] && \		ERROR="yes" && echo "Error: Invalid value \"APPLICATION_LIBRARY_PATH=$APPLICATION_LIBRARY_PATH\""		OLD_IFS=$IFS	IFS=":"	for LIBRARY in $APPLICATION_LIBRARY_PRELOAD; do		[ ! -e $LIBRARY ] && \			ERROR="yes" && echo "Error: Invalid value \"APPLICATION_LIBRARY_PRELOAD=$APPLICATION_LIBRARY_PRELOAD\"" && break ;	done	IFS=$OLD_IFS		[ -z "$SSH_AUTHORIZED_KEYS" ] && \		ERROR="yes" && echo "Error: Invalid value \"SSH_AUTHORIZED_KEYS=$SSH_AUTHORIZED_KEYS\""			# General FreeNX directives		[ -z "$SERVER_NAME" ] && \		ERROR="yes" && echo "Error: Invalid value \"SERVER_NAME=$SERVER_NAME\""	[ -z $(echo "$SSHD_PORT" | egrep "^[1-9][0-9]{0,4}$") ] && \		ERROR="yes" && echo "Error: Invalid value \"SSHD_PORT=$SSHD_PORT\""			# Authentication / Security directives		[ -z $(echo "$ENABLE_PASSDB_AUTHENTICATION" | egrep "^[0|1]$") ] && \		ERROR="yes" && echo "Error: Invalid value \"ENABLE_PASSDB_AUTHENTICATION=$ENABLE_PASSDB_AUTHENTICATION\""	[ -z $(echo "$ENABLE_SSH_AUTHENTICATION" | egrep "^[0|1]$") ] && \		ERROR="yes" && echo "Error: Invalid value \"ENABLE_SSH_AUTHENTICATION=$ENABLE_SSH_AUTHENTICATION:\""	[ -z $(echo "$ENABLE_SU_AUTHENTICATION" | egrep "^[0|1]$") ] && \		ERROR="yes" && echo "Error: Invalid value \"ENABLE_SU_AUTHENTICATION=$NENABLE_SU_AUTHENTICATION\""	[ -z $(echo "$ENABLE_USER_DB" | egrep "^[0|1]$") ] && \		ERROR="yes" && echo "Error: Invalid value \"ENABLE_USER_DB=$ENABLE_USER_DB\""		[ -z $(echo "$ENABLE_FORCE_ENCRYPTION" | egrep "^[0|1]$") ] && \		ERROR="yes" && echo "Error: Invalid value \"ENABLE_FORCE_ENCRYPTION=$ENABLE_FORCE_ENCRYPTION\""	[ -z $(echo "$SSHD_CHECK_IP" | egrep "^[0|1]$") ] && \		ERROR="yes" && echo "Error: Invalid value \"SSHD_CHECK_IP=$SSHD_CHECK_IP\""			# Restriction directives		[ -z $(echo "$DISPLAY_BASE" | egrep "^[1-9][0-9]{0,4}$") ] && \		ERROR="yes" && echo "Error: Invalid value \"DISPLAY_BASE=$DISPLAY_BASE\""	[ -z $(echo "$SESSION_LIMIT" | egrep "^[1-9][0-9]{0,4}$") ] &&  \		ERROR="yes" && echo "Error: Invalid value \"SESSION_LIMIT=$SESSION_LIMIT\""	[ -z $(echo "$SESSION_USER_LIMIT" | egrep "^[1-9][0-9]{0,4}$") -o $SESSION_USER_LIMIT -gt $SESSION_LIMIT ] && \		ERROR="yes" && echo "Error: Invalid value \"SESSION_USER_LIMIT=$SESSION_USER_LIMIT\""	[ -z $(echo "$DISPLAY_LIMIT" | egrep "^[1-9][0-9]{0,4}$") -o $DISPLAY_LIMIT -lt $SESSION_LIMIT ] && \		ERROR="yes" && echo "Error: Invalid value \"DISPLAY_LIMIT=$DISPLAY_LIMIT\""		OLD_IFS=$IFS	IFS=","	if [ "$ENABLE_PERSISTENT_SESSION" != "all" ]	then		for USERNAME in $ENABLE_PERSISTENT_SESSION; do			[ "${USERNAME:0:1}" != "@" ] && [ -z $(getent passwd $USERNAME) ] && \				ERROR="yes" && echo "Error: Invalid value \"ENABLE_PERSISTENT_SESSION=$ENABLE_PERSISTENT_SESSION\"" && break ;			[ "${USERNAME:0:1}" = "@" ] && [ -z $(getent group ${USERNAME:1}) ] && \				ERROR="yes" && echo "Error: Invalid value \"ENABLE_PERSISTENT_SESSION=$ENABLE_PERSISTENT_SESSION\"" && break ;		done	fi	for USERNAME in $DISABLE_PERSISTENT_SESSION; do		[ "${USERNAME:0:1}" != "@" ] && [ -z $(getent passwd $USERNAME) ] && \			ERROR="yes" && echo "Error: Invalid value \"DISABLE_PERSISTENT_SESSION=$DISABLE_PERSISTENT_SESSION\"" && break ;		[ "${USERNAME:0:1}" = "@" ] && [ -z $(getent group ${USERNAME:1}) ] && \			ERROR="yes" && echo "Error: Invalid value \"DISABLE_PERSISTENT_SESSION=$DISABLE_PERSISTENT_SESSION\"" && break ;	done	IFS=$OLD_IFS			# Logging directives		[ -z $(echo "$NX_LOG_LEVEL" | egrep "^[0-7]$") ] && \		ERROR="yes" && echo "Error: Invalid value \"NX_LOG_LEVEL=$NX_LOG_LEVEL\""	[ "$NX_LOG_LEVEL" != "0" -a ! -e "$NX_LOGFILE" ] && \		WARNING="yes" && echo "Warning: Invalid value \"NX_LOGFILE=$NX_LOGFILE\"" \					  && echo "         No loggfile will be kept."		# How do I check if another user might write to a file? ( -w checks only current user)	[ -z $(echo "$SESSION_LOG_CLEAN" | egrep "^[0|1]$") ] && \		ERROR="yes" && echo "Error: Invalid value \"SESSION_LOG_CLEAN=$SESSION_LOG_CLEAN\""	[ -z $(echo "$SESSION_HISTORY" | egrep "^-?[0-9]+$") ] && \		ERROR="yes" && echo "Error: Invalid value \"SESSION_HISTORY=$SESSION_HISTORY\""			# Forwarding directives		[ -z $(echo "$ENABLE_SERVER_FORWARD" | egrep "^[0|1]$") ] && \		ERROR="yes" && echo "Error: Invalid value \"ENABLE_SERVER_FORWARD=$ENABLE_SERVER_FORWARD\""	[ "$ENABLE_SERVER_FORWARD" = "1" -a -z "$SERVER_FORWARD_HOST" ] && \		ERROR="yes" && echo "Error: Invalid value \"SERVER_FORWARD_HOST=$SERVER_FORWARD_HOST\"" 		# Any ideas on how I can check for a VALID host is velcome!		# In my private scripts I use 'resolveip -q' and check if output conforms to [0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}, 		# but resolveip is part of mysql, and I don't think I should add that dependancy...	[ "$ENABLE_SERVER_FORWARD" = "1" -a -z $(echo "$SERVER_FORWARD_PORT" | egrep "^[1-9][0-9]{0,4}$") ] && \		ERROR="yes" && echo "Error: Invalid value \"SERVER_FORWARD_PORT=$SERVER_FORWARD_PORT\""	[ "$ENABLE_SERVER_FORWARD" = "1" -a ! -e "$SERVER_FORWARD_KEY" ] && \		ERROR="yes" && echo "Error: Invalid value \"SERVER_FORWARD_KEY=$SERVER_FORWARD_KEY\""		[ -z $(echo "$ENABLE_NOMACHINE_FORWARD_USER" | egrep "^[0|1]$") ] && \		ERROR="yes" && echo "Error: Invalid value \"ENABLE_NOMACHINE_FORWARD_USER=$ENABLE_NOMACHINE_FORWARD_USER\""	[ -z $(echo "$ENABLE_NOMACHINE_FORWARD_PORT" | egrep "^[0|1]$") ] && \		ERROR="yes" && echo "Error: Invalid value \"ENABLE_NOMACHINE_FORWARD_PORT=$ENABLE_NOMACHINE_FORWARD_PORT\""	[ "$ENABLE_NOMACHINE_FORWARD_USER" = "1" -o "$ENABLE_NOMACHINE_FORWARD_PORT" = "1" ] && ! which "$NOMACHINE_SERVER" >/dev/null 2>&1 && \		ERROR="yes" && echo "Error: Invalid value \"NOMACHINE_SERVER=$NOMACHINE_SERVER\""	[ "$ENABLE_NOMACHINE_FORWARD_USER" = "1" -a ! -d "$NOMACHINE_NX_HOME_DIR" ] && \		ERROR="yes" && echo "Error: Invalid value \"NOMACHINE_NX_HOME_DIR=$NOMACHINE_NX_HOME_DIR\""	[ "$ENABLE_NOMACHINE_FORWARD_PORT" = "1" -a -z $(echo "$NOMACHINE_FORWARD_PORT" | egrep "^[1-9][0-9]{0,4}$") ] && \		ERROR="yes" && echo "Error: Invalid value \"NOMACHINE_FORWARD_PORT=$NOMACHINE_FORWARD_PORT\""			# Services directives		[ -z $(echo "$ENABLE_ESD_PRELOAD" | egrep "^[0|1]$") ] && \		ERROR="yes" && echo "Error: Invalid value \"ENABLE_ESD_PRELOAD=$ENABLE_ESD_PRELOAD\""	[ "$ENABLE_ESD_PRELOAD" = "1" ] && ! which "$ESD_BIN_PRELOAD" >/dev/null 2>&1 && \		WARNING="yes" && echo "Warning: Invalid value \"ESD_BIN_PRELOAD=$ESD_BIN_PRELOAD\"" \					  && echo "         No esd preload will be performed."		[ -z $(echo "$ENABLE_ARTSD_PRELOAD" | egrep "^[0|1]$") ] && \		ERROR="yes" && echo "Error: Invalid value \"ENABLE_ARTSD_PRELOAD=$ENABLE_ARTSD_PRELOAD\""	[ "$ARTSD_BIN_PRELOAD" = "1" ] && ! which "$ARTSD_BIN_PRELOAD" >/dev/null 2>&1 && \		WARNING="yes" && echo "Warning: Invalid value \"ARTSD_BIN_PRELOAD=$ARTSD_BIN_PRELOAD\"" \					  && echo "         No arts preload will be performed."		[ -z $(echo "$ENABLE_KDE_CUPS" | egrep "^[0|1]$") ] && \		ERROR="yes" && echo "Error: Invalid value \"ENABLE_KDE_CUPS=$ENABLE_KDE_CUPS\""	[ "$ENABLE_KDE_CUPS" = "1" -a ! -e "$KDE_PRINTRC" ] && \		ERROR="yes" && echo "Error: Invalid value \"KDE_PRINTRC=$KDE_PRINTRC\""	[ ! -e "$CUPS_ETC/mime.types" -o ! -e "$CUPS_ETC/mime.convs" ] && \		WARNING="yes" && echo "Warning: Invalid value \"CUPS_ETC=$CUPS_ETC\"" \					  && echo "         Users will not be able to enable printing."		# Path directives		[ ! -d "$USER_FAKE_HOME" ] && \		ERROR="yes" && echo "Error: Invalid value \"USER_FAKE_HOME=$USER_FAKE_HOME\""	[ -z $(echo "$SET_LD_LIBRARY_PATH" | egrep "^[0|1]$") ] && \		ERROR="yes" && echo "Error: Invalid value \"SET_LD_LIBRARY_PATH=$SET_LD_LIBRARY_PATH\""		[ "$DEFAULT_X_WM" != "" ] && ! which "$DEFAULT_X_WM" >/dev/null 2>&1 && \		ERROR="yes" && echo "Error: Invalid value \"DEFAULT_X_WM=$DEFAULT_X_WM\""	[ "$DEFAULT_X_WM" != "" -a  -z $(echo "$KILL_DEFAULT_X_WM" | egrep "^[0|1]$") ] && \		ERROR="yes" && echo "Error: Invalid value \"KILL_DEFAULT_X_WM=$KILL_DEFAULT_X_WM\""	[ -z "$USER_X_STARTUP_SCRIPT" ] && \		ERROR="yes" && echo "Error: Invalid value \"USER_X_STARTUP_SCRIPT=$USER_X_STARTUP_SCRIPT\""	! which "$DEFAULT_X_SESSION" >/dev/null 2>&1 && \		WARNING="yes" && echo "Warning: Invalid value \"DEFAULT_X_SESSION=$DEFAULT_X_SESSION\"" \					  && echo "         Users might not be able to request a default X session."	! which "$COMMAND_START_KDE" >/dev/null 2>&1 && \		WARNING="yes" && echo "Warning: Invalid value \"COMMAND_START_KDE=$COMMAND_START_KDE\"" \					  && echo "         Users will not be able to request a KDE session."	! which "$COMMAND_START_GNOME" >/dev/null 2>&1 && \		WARNING="yes" && echo "Warning: Invalid value \"COMMAND_START_GNOME=$COMMAND_START_GNOME\"" \					  && echo "         Users will not be able to request a Gnome session."	! which "$COMMAND_START_CDE" >/dev/null 2>&1 && \		WARNING="yes" && echo "Warning: Invalid value \"COMMAND_START_CDE=$COMMAND_START_CDE\"" \					  && echo "         Users will not be able to request a CDE session."	! which "$COMMAND_XTERM" >/dev/null 2>&1 && \		WARNING="yes" && echo "Warning: Invalid value \"COMMAND_XTERM=$COMMAND_XTERM\"" \					  && echo "         Users will not be able to request an xterm session."	! which "$COMMAND_XAUTH" >/dev/null 2>&1 && \		ERROR="yes" && echo "Error: Invalid value \"COMMAND_XAUTH=$COMMAND_XAUTH\""	! which "$COMMAND_SMBMOUNT" >/dev/null 2>&1 && \		WARNING="yes" && echo "Warning: Invalid value \"COMMAND_SMBMOUNT=$COMMAND_SMBMOUNT\". You'll not be able to use SAMBA. "	! which "$COMMAND_SMBUMOUNT" >/dev/null 2>&1 && \		WARNING="yes" && echo "Warning: Invalid value \"COMMAND_SMBUMOUNT=$COMMAND_SMBUMOUNT\". You'll not be able to use SAMBA."	! which "$COMMAND_NETCAT" >/dev/null 2>&1 && \		ERROR="yes" && echo "Error: Invalid value \"COMMAND_NETCAT=$COMMAND_NETCAT\""	! which "$COMMAND_SSH" >/dev/null 2>&1 && \		ERROR="yes" && echo "Error: Invalid value \"COMMAND_SSH=$COMMAND_SSH\""	! which "$COMMAND_SSH_KEYGEN" >/dev/null 2>&1 && \		ERROR="yes" && echo "Error: Invalid value \"COMMAND_SSH_KEYGEN=$COMMAND_SSH_KEYGEN\""	! which "$COMMAND_CUPSD" >/dev/null 2>&1 && \		WARNING="yes" && echo "Warning: Invalid value \"COMMAND_CUPSD=$COMMAND_CUPSD\"" \					  && echo "         Users will not be able to enable printing."	! which "$COMMAND_MD5SUM" >/dev/null 2>&1 && \		ERROR="yes" && echo "Error: Invalid value \"COMMAND_MD5SUM=$COMMAND_MD5SUM\""	# Check for expect	COMMAND_EXPECT=$(head -n1 $PATH_BIN/nxnode-login | cut -d'!' -f2)	! which "$COMMAND_EXPECT" >/dev/null 2>&1 && \		ERROR="yes" && echo "Error: expect necessary for $PATH_BIN/nxnode-login could not be found in '$COMMAND_EXPECT'. Please install it or change nxnode-login accordingly."	# Misc directives		[ -z $(echo "$ENABLE_AUTORECONNECT" | egrep "^[0|1]$") ] && \		ERROR="yes" && echo "Error: Invalid value \"ENABLE_AUTORECONNECT=$ENABLE_AUTORECONNECT\""	[ -z $(echo "$ENABLE_AUTORECONNECT_BEFORE_140" | egrep "^[0|1]$") ] && \		ERROR="yes" && echo "Error: Invalid value \"ENABLE_AUTORECONNECT_BEFORE_140=$ENABLE_AUTORECONNECT_BEFORE_140\""		[ -z $(echo "$EXPORT_USERIP" | egrep "^[0|1]$") ] && \		ERROR="yes" && echo "Error: Invalid value \"EXPORT_USERIP=$EXPORT_USERIP\""	[ -z $(echo "$EXPORT_SESSIONID" | egrep "^[0|1]$") ] && \		ERROR="yes" && echo "Error: Invalid value \"EXPORT_SESSIONID=$EXPORT_SESSIONID\""	[ -n "$NODE_AUTOSTART" ] && ! which "$NODE_AUTOSTART" >/dev/null 2>&1 && \		WARNING="yes" && echo "Warning: Invalid value \"NODE_AUTOSTART=$NODE_AUTOSTART\"" \					  && echo "         No autostart will be performed."	[ -z $(echo "$ENABLE_ROOTLESS_MODE" | egrep "^[0|1]$") ] && \		ERROR="yes" && echo "Error: Invalid value \"ENABLE_ROOTLESS_MODE=$ENABLE_ROOTLESS_MODE\""			[ -z $(echo "$ENABLE_1_5_0_BACKEND" | egrep "^[0|1]$") ] && \		ERROR="yes" && echo "Error: Invalid value \"ENABLE_1_5_0_BACKEND=$ENABLE_1_5_0_BACKEND\""			[ "$ENABLE_ROOTLESS_MODE" = "1" -a "$ENABLE_1_5_0_BACKEND" = "0" ] && \		ERROR="yes" && echo "Error: Rootless mode can just be used with 1.5.0 backend."	[ "$ENABLE_1_5_0_BACKEND" = "1" -a -z "$(strings $PATH_BIN/nxagent | grep 'NXAGENT - Version 1.5.0')" ] && \		ERROR="yes" && echo "Error: Could not find 1.5.0 version string in nxagent. NX 1.5.0 backend option must be used with 1.5.0 OSS components."	[ "$ENABLE_1_5_0_BACKEND" = "0" -a -n "$(strings $PATH_BIN/nxagent | grep 'NXAGENT - Version 1.5.0')" ] && \		WARNING="yes" && echo "Warning: 1.5.0 OSS components found, but ENABLE_1_5_0 backend option is not set."	[ -z $(echo "$ENABLE_USESSION" | egrep "^[0|1]$") ] && \		ERROR="yes" && echo "Error: Invalid value \"ENABLE_USESSION=$ENABLE_USESSION\""	[ "$ENABLE_USESSION" = "1" ] && ! which "$COMMAND_SESSREG" >/dev/null 2>&1 && \		WARNING="yes" && echo "Warning: Invalid value \"COMMAND_SESSREG=$COMMAND_SESSREG\"" \					  && echo "         Logged in users will not be registered with sessreg."		#AGENT_EXTRA_OPTIONS_RFB=""	#AGENT_EXTRA_OPTIONS_RDP=""	#AGENT_EXTRA_OPTIONS_X=""	#PROXY_EXTRA_OPTIONS=""		#Can these be checked???		#AGENT_FONT_SERVER=""		#Any ideas on how I can check for a VALID host is velcome!		[ -z $(echo "$PROXY_TCP_NODELAY" | egrep "^[0|1]$") ] && \		ERROR="yes" && echo "Error: Invalid value \"PROXY_TCP_NODELAY=$PROXY_TCP_NODELAY\""			if [ "$ERROR" = "yes" ]	then		echo		echo "  Errors occured during config check."		echo "  Please correct the configuration file."		echo		[ "$NXLCFG_IGNORE_ERRORS" = "no" ] && exit 1 || exit 0	elif [ "$WARNING" = "yes" ]	then		echo		echo "  Warnings occured during config check."		echo "  To enable these features please correct the configuration file."		echo	fifi