Subject: Bug#505: Fwd: [Bug 1101726] New: x2goclient fails on hosts using polyinstantiated /tmp directories

From: Orion Poplawski <[email-masked]>
Date: Tue, 27 May 2014 13:40:23 -0600

Package: x2goclient

-------- Original Message --------
Subject: [Bug 1101726] New: x2goclient fails on hosts using polyinstantiated 
/tmp directories
Date: Tue, 27 May 2014 19:38:53 +0000
From: [email-masked]
To: [email-masked]

https://bugzilla.redhat.com/show_bug.cgi?id=1101726

             Bug ID: 1101726
            Summary: x2goclient fails on hosts using polyinstantiated /tmp
                     directories
            Product: Fedora EPEL
            Version: el6
          Component: x2goclient
           Assignee: [email-masked]
           Reporter: [email-masked]
         QA Contact: [email-masked]
                 CC: [email-masked]

Hi,

Description of problem:

This is like bug#1100985, but whereas that was an issue with x2goserver, this
is an issue with the client.

If the host on which the client runs has enabled polyinstantiated /tmp
directories as per

https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Security-Enhanced_Linux/polyinstantiated-directories.html

then x2goclient cannot connect to anywhere (even if the host that it tries to
connect to has a "normal" /tmp). It seems it cannot find the /tmp/.X11-unix/X0
socket on the local host. It should be able to work with X's abstract namespace
socket rather than requiring the old filesystem socket.

Version-Release number of selected component (if applicable):

x2goclient-4.0.1.4-1.el6.x86_64
RHEL 6.5

How reproducible:

100%

Steps to Reproduce:
1. Uncomment the line in /etc/security/namespace.conf that reads:
#/tmp     /tmp-inst/           level      root,adm

Apply the workaround from bug#1100985 so that /tmp/.X11-unix gets created
in the user's /tmp directory (or for testing simply create it by hand with the
right permissions).

2. Start a new desktop session as a normal user. Observe that /tmp/.X11-unix/X0
does not exist in that user session.

3. Try to connect anywhere using x2goclient.

Actual results:

x2go fails with a message of the form:
    ServerProxy: WARNING! Connection to ':0.0' failed with error 'No such file
or directory'.

Expected results:

x2go works.

Additional info:

There seems to be no clean way to fix this. RHEL5 had some commented-out
example code in /etc/security/namespace.init that was designed for this kind of
problem:

# If you intend to polyinstantiate /tmp and you also want to use the X windows
# environment, you will have to use this script to bind mount the socket that
# is used by the X server to communicate with its clients. X server places
# this socket in /tmp/.X11-unix directory, which will get obscured by
# polyinstantiation. Uncommenting the following lines will bind mount
# the relevant directory at an alternative location (/.tmp/.X11-unix) such
# that the X server, window manager and X clients, can still find the
# socket X0 at the polyinstanted /tmp/.X11-unix.
#
#if [ $1 = /tmp ]; then
#       if [ ! -f /.tmp/.X11-unix ]; then
#               mkdir -p /.tmp/.X11-unix
#       fi
#       mount --bind /tmp/.X11-unix /.tmp/.X11-unix
#       cp -fp -- /tmp/.X0-lock "$2/.X0-lock"
#       mkdir -- "$2/.X11-unix"
#       ln -fs -- /.tmp/.X11-unix/X0 "$2/.X11-unix/X0"
#fi

By experiment, this does not seem to work in RHEL6. It seems that when the
namespace.init script runs, the real /tmp is already hidden.

If you run the bind mount part at startup, then just make the link in
namespace.init, it seems to work, but this is rather ugly.
It would be better if x2go would just work. It seems that other X applications
were fixed in RHEL6 to not need the workaround.
See eg bug#598671, which says that applications should look for X's abstract
namespace socket first, before falling back to the old filesystem socket
/tmp/.X11-unix/X0.

Thanks.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.

---

From: Mike Gabriel <[email-masked]>
Date: Sat, 31 May 2014 09:50:06 +0000

Control: reassign -1 nxproxy
Control: retitle -1 nxproxy fails to access /tmp/.X11-unix when /tmp  
is polyinstantiated

Hi Orion,

seems that we need to look at this in the near future...

> https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Security-Enhanced_Linux/polyinstantiated-directories.html

This is an issue with NX:

"""
NXPROXY - Version 3.5.0

Copyright (C) 2001, 2010 NoMachine.
See http://www.nomachine.com/ for more information.

Info: Proxy running in client mode with pid '12511'.
Session: Starting session at 'Sat May 31 11:45:41 2014'.
Loop: PANIC! Can't determine the location of the X display socket.
Error: Can't determine the location of the X display socket.
Loop: PANIC! Error 2 'No such file or directory' checking '/tmp/.X11-unix'.
Error: Error 2 'No such file or directory' checking '/tmp/.X11-unix'.
Session: Session terminated at 'Sat May 31 11:45:41 2014'
"""

Greets,
Mike
-- 

DAS-NETZWERKTEAM
mike gabriel, herweg 7, 24357 fleckeby
fon: +49 (1520) 1976 148

GnuPG Key ID 0x25771B31
mail: [email-masked], http://das-netzwerkteam.de

freeBusy:
https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.xfb