Re: BgRegister X server insecure - newbie

Joel Hatton <[email protected]>
Newsgroups gmane.mail.exmh.user
Message-ID <[email protected]>
> 
> Hi,
> 
> I am sure this has been covered before, but I cannot find a fix.
> 
> I keep seeing these msgs:
>  BgRegister X server insecure (must use xauth-style authorization);
>  command ignored
> 
>  exmh-bg cannot rendez-vous with UI - exiting.
>  Usually this is because Tk send is not working.
> 
> I looked at FAQ 4b, but I am still not sure what to do. Can anyone help?
> 
> exmh version 2.6.3
> os: aix 5.2

Hi Paul,

I'm not sure how X is started in aix, but you may get some help from this
relevant part of /usr/X11R6/bin/startx from FreeBSD (it doesn't have the
'mcookie' command either):

	authdisplay=${display:-:0}
	mcookie=`dd if=/dev/urandom bs=16 count=1 2>/dev/null | hexdump -e \\"%08x\\"`
	for displayname in $authdisplay $hostname$authdisplay; do
    	if ! xauth list "$displayname" | grep "$displayname " >/dev/null 2>&1; then
        	xauth -q << EOF 
	add $displayname . $mcookie
	EOF
		removelist="$displayname $removelist"
    	fi
	done

Look at your command for starting X, it's likely to be a shell script of
some sort that invokes xiniit. I've appended the full startx below.

joel

-- Joel Hatton --
Security Analyst                    | Hotline: +61 7 3365 4417
AusCERT - Australia's national CERT | Fax:     +61 7 3365 7031
The University of Queensland        | WWW:     www.auscert.org.au
Qld 4072 Australia                  | Email:   [email protected]

#!/bin/sh

# $Xorg: startx.cpp,v 1.3 2000/08/17 19:54:29 cpqbld Exp $
#
# This is just a sample implementation of a slightly less primitive
# interface than xinit.  It looks for user .xinitrc and .xserverrc
# files, then system xinitrc and xserverrc files, else lets xinit choose
# its default.  The system xinitrc should probably do things like check
# for .Xresources files and merge them in, startup up a window manager,
# and pop a clock and serveral xterms.
#
# Site administrators are STRONGLY urged to write nicer versions.
#
# $XFree86: xc/programs/xinit/startx.cpp,v 3.16tsi Exp $


userclientrc=$HOME/.xinitrc
userserverrc=$HOME/.xserverrc
sysclientrc=/usr/X11R6/lib/X11/xinit/xinitrc
sysserverrc=/usr/X11R6/lib/X11/xinit/xserverrc
defaultclient=/usr/X11R6/bin/xterm
defaultserver=/usr/X11R6/bin/X
defaultclientargs=""
defaultserverargs=""
clientargs=""
serverargs=""






if [ -f $userclientrc ]; then
    defaultclientargs=$userclientrc
elif [ -f $sysclientrc ]; then
    defaultclientargs=$sysclientrc
fi




if [ -f $userserverrc ]; then
    defaultserverargs=$userserverrc
elif [ -f $sysserverrc ]; then
    defaultserverargs=$sysserverrc
fi

whoseargs="client"
listen_tcp="-nolisten tcp"
while [ x"$1" != x ]; do
    case "$1" in
    -listen_tcp)
	listen_tcp=""
	;;
    # '' required to prevent cpp from treating "/*" as a C comment.
    /''*|\./''*)
	if [ "$whoseargs" = "client" ]; then
	    if [ x"$clientargs" = x ]; then
		client="$1"
	    else
		clientargs="$clientargs $1"
	    fi
	else
	    if [ x"$serverargs" = x ]; then
		server="$1"
	    else
		serverargs="$serverargs $1"
	    fi
	fi
	;;
    --)
	whoseargs="server"
	;;
    *)
	if [ "$whoseargs" = "client" ]; then
	    clientargs="$clientargs $1"
	else
	    # display must be the FIRST server argument
	    if [ x"$serverargs" = x ] && \
		 expr "$1" : ':[0-9][0-9]*$' > /dev/null 2>&1; then
		display="$1"
	    else
		serverargs="$serverargs $1"
	    fi
	fi
	;;
    esac
    shift
done

# process client arguments
if [ x"$client" = x ]; then
    # if no client arguments either, use rc file instead
    if [ x"$clientargs" = x ]; then
	client="$defaultclientargs"
    else
	client=$defaultclient
    fi
fi

# process server arguments
if [ x"$server" = x ]; then
    # if no server arguments or display either, use rc file instead
    if [ x"$serverargs" = x -a x"$display" = x ]; then
	server="$defaultserverargs"
    else
	server=$defaultserver
    fi
fi

if [ x"$XAUTHORITY" = x ]; then
    XAUTHORITY=$HOME/.Xauthority
    export XAUTHORITY
fi

removelist=


# set up default Xauth info for this machine
case `uname` in
Linux*)
	if [ -z "`hostname --version 2>&1 | grep GNU`" ]; then
		hostname=`hostname -f`
	else
		hostname=`hostname`
	fi
	;;
*)
	hostname=`hostname`
	;;
esac

authdisplay=${display:-:0}
mcookie=`dd if=/dev/urandom bs=16 count=1 2>/dev/null | hexdump -e \\"%08x\\"`
for displayname in $authdisplay $hostname$authdisplay; do
    if ! xauth list "$displayname" | grep "$displayname " >/dev/null 2>&1; then
        xauth -q << EOF 
add $displayname . $mcookie
EOF
	removelist="$displayname $removelist"
    fi
done


xinit $client $clientargs -- $server $display $serverargs $listen_tcp

if [ x"$removelist" != x ]; then
    xauth remove $removelist
fi
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.