Re: X session and hostname changing policy



On Mon, 2010-06-21 at 14:57 +0300, Fırat Birlik wrote:
> 2010/6/17 Dan Williams <dcbw redhat com>:
> > On Mon, 2010-06-14 at 23:16 +0300, Fırat Birlik wrote:
> >> Hi there,
> >>
> >> I experience a problem with hostname manipulation of NetworkManager
> >> and the X session.  DHCP server sends a hostname within the dhcp
> >> offer, which is different the current one.  There is no persistent
> >> hostname definition within the 'nm-system-settings.conf' as this is a
> >> default installation.  NetworkManager just changes the hostname and as
> >> new hostname is not authenticated (xhost cookie MIT-MAGIC-COOKIE-1 for
> >> new hostname does not exist) no new application can be started
> >> afterwards.
> >
> > The solution is *not* to use hostname for local X authentication at all.
> > Instead, you want to allow all connections via Unix sockets from the
> > session user, which means that your X init should be doing something
> > like this:
> >
> > [ -x /usr/bin/xhost ] && [ -x /usr/bin/id ] &&
> >    xhost +si:localuser:`id -un` >& /dev/null
> >
> > which normally goes in 'localuser.sh' in /etc/X11/xinit/xinitrc.d or
> > wherever scripts get executed during X init time.  Hostnames do change
> > and relying on it for something like local authentication will certainly
> > break stuff.
> >
> 
> Thanks for pointing that out, I think this is the solution for major
> part of the problem, instead of forcing a persistent hostname.
> 
> But there is also SESSION_MANAGER variable and xauth list, because
> both depend on the previous hostname.  Do you have any tips for these
> also?

Normally for local logins, SESSION_MANAGER will be something like:

SESSION_MANAGER=local/unix:@/tmp/.ICE-unix/1681,unix/unix:/tmp/.ICE-unix/1681

which doesn't contain the hostname.  And you don't  need to worry about
xauth if you have the xhost stuff above, I'm pretty sure.  For example,
my xauth is:

localhost.localdomain/unix:0  MIT-MAGIC-COOKIE-1  e8cc630938a23ba5ac4e5fe9cd71f514

but my hostname is currently 'dcbw'.  If this isn't the case for you, we
should follow up with X developers to figure out why.

Dan

> Firat
> 
> > Most distros have had this fixed for a while now.
> >
> > Dan
> >
> >> To avoid this behavior, I can define a persistent hostname equal the
> >> content of /etc/HOSTNAME (this is a slackware system) as the
> >> following:
> >>
> >> --- /etc/NetworkManager/nm-system-settings.conf~
> >> +++ /etc/NetworkManager/nm-system-settings.conf
> >> @@ -1,2 +1,5 @@
> >>  [main]
> >>  plugins=keyfile
> >> +
> >> +[keyfile]
> >> +hostname=myhostname
> >>
> >>
> >> As persistent hostname has highest precedence, problem looks solved;
> >> but this should be repeated for each installation.
> >>
> >> What I'm asking is, is there any config option or some way to not let
> >> NetworkManager change the hostname?
> >>
> >> As a note, current precedence order for hostname (taken from
> >> NetworkManagerPolicy.c):
> >>
> >>        * 1) a configured hostname (from system-settings)
> >>        * 2) automatic hostname from the default device's config (DHCP, VPN, etc)
> >>        * 3) the original hostname when NM started
> >>        * 4) reverse-DNS of the best device's IPv4 address
> >>
> >>
> >> Thanks,
> >>
> >> Firat
> >> _______________________________________________
> >> networkmanager-list mailing list
> >> networkmanager-list gnome org
> >> http://mail.gnome.org/mailman/listinfo/networkmanager-list
> >
> >
> >




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]