One solution to (Re: How do a login shell detect that it is "remote")

Rui-Tao Dong rdong at MSRI.ORG
Fri Mar 22 05:56:07 AEST 1991


In article <1991Mar20.154258.1439 at resam.dk> andrew at resam.dk (Leif Andrew Rump) writes:
>Some of the quick reader may have read (before I cancelled the
>article: <1991Mar20.142203.682 at resam.dk>) about my problems getting
>dbxtool (an OpenLook & SunView GUI frontend to dbx) up and running!
>
>Well the problem boiled down because suddenly I found out that when I
>use rlogin to log in on a remote site, I get the path defined in the
>login scripts on the remote workstation and it is not possible to get
>the path from the workstation that I'm physical located at.  That's
>logical because the workstation I rlogin into may be something almost
>but not entirely unlike the SunSparc I'm looking at!
>
>BUT!
>
>When I start OpenWindows 2.0 (Sun's version of X) it changes my path
>so $OPENWINHOME/bin/xview become the first item in it! OK, because
>then I run the OpenWindows programs instead of SunView programs which
>is located in /usr/bin (!)
>
>BUT!
>
>When I rlogin to another workstation I get the path from the other
>workstation - WITHOUT $OPENWINHOME/bin/xview - i.e. I run the SunView
>versions in /usr/bin instead - which doesn't like to open windows on
>remote sites!
>
>HOW do I detect that I'm logged in from a remote site (I know that
>is cheating, but I need to put in the path again)?
>
>AND NO I can't put it in from the beginning - try it and you'll see
>the software fight of the century to the rights to own the screen!
>
>
>Any suggestions?
>
>Leif Andrew
>
>
>Leif Andrew Rump, AmbraSoft A/S, Stroedamvej 50, DK-2100 Copenhagen OE, Denmark
>UUCP: andrew at ambra.dk, phone: +45 39 27 11 77                /
>Currently at Scandinavian Airline Systems                =======/
>UUCP: andrew at resam.dk, phone: +45 32 32 51 54                \
>SAS, RESAM Project Office, CPHML-V, P.O.BOX 150, DK-2770 Kastrup, Denmark
>
>NOTICE: 'Cause of SendMail ConFiGuRation FaultS weee may experiienc ProBleeems
>wiiiiiiith our return add<zap> andrew at resam.dk whiccccch may BeCoMe sOmEthIng
>like <wheee>w at cph<click> !%#@#
>			      @$$%$%(&**&(^%$
>					     $#%%^&)(&^T^%^%^^#
>							       login:

	I have more or less the same problem. The additional difficulty I
have is that I some times use standard X11R4 and wish different binaries
for xterm etc.

	I hacked xrsh to xnrsh (Xnews rsh) to do the trick. The point is to
pass the environment variable NEWSSERVER and use it to select PATHs. 

put the following in your ~/.setpaths

--------------------------------------------------
setenv OPENWINHOME /usr/openwin

if ( $?NEWSSERVER == 1 ) then
	
	setenv PATH .:$HOME/bin:/usr/local/bin:/usr/ucb:$OPENWINHOME/bin:$OPENWINHOME/bin/xview:$OPENWINHOME/demo:/usr/bin/X11:/usr/bin:/bin
	setenv MANPATH $OPENWINHOME/man:/usr/local/man:/usr/man
	eval `svenv -env -csh`
else

	setenv PATH .:$HOME/bin:/usr/local/bin:/usr/ucb:/usr/bin/X11:/usr/bin:/bin:$OPENWINHOME/bin:$OPENWINHOME/bin/xview:$OPENWINHOME/demo
	setenv MANPATH /usr/local/man:/usr/man:$OPENWINHOME/man

endif
--------------------------------------------------

and put the shell script xnrsh in your ~/bin
--------------------------------------------------
#!/bin/sh
#
case $# in
0|1) echo "usage: $0 host cmd [args]" 1>&2; exit 1;;
esac

case "X$DISPLAY" in
Xunix:*)
  : ${HOSTNAME=`hostname`}
  DISPLAY=`echo "$DISPLAY" | sed -e "s/^unix:/${HOSTNAME}:/"`
  ;;
X:*)
  : ${HOSTNAME=`hostname`}
  DISPLAY="$HOSTNAME$DISPLAY"
  ;;
esac

commands=${DISPLAY:+"setenv DISPLAY $DISPLAY ;"}\
${NEWSSERVER:+"setenv NEWSSERVER  \"$NEWSSERVER\";"}

host="$1"
shift

exec rsh "$host" -n " $commands source .setpaths ; exec $@ "
--------------------------------------------------

You should rlogin to a remote host by doing

	> xnrsh remote_host xterm 

or 

	> xnrsh remote_host cmdtool


	> xnrsh remote_host emacs

Of course, you will need to set up .rhosts on machines so that you can
login w/o a passwd. And don't forget to pass Xauth infomation or use xhost
to add the remote_host to the access list.

	This is the most satisfaction solution I have found so far. Does
any body have any better ideas? 

Regards,

-------------------------------------------------------------------------
	Rui - Tao  Dong         |       (415) 237 - 7628 (H)
	110 Lakeshore Court     |       (415) 643 - 6048 (O)
	Richmond, CA 94804      |       rdong at borel.msri.org



More information about the Comp.unix.questions mailing list