X permissions on a SuSE system

X works for aeb, but for root I get (on SuSE 9.1)
# ethereal
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified
That looks like a familiar thing. One should only say
% xhost +localhost
But that was not it. Not this time. Nothing wrong at first sight with .Xauthority, with DISPLAY. Nothing wrong with the firewall. Then what? After
% xhost +
everything works, but that is too insecure. Instead of explicitly allowing localhost, one can also do
% sux
xauth:  creating new authority file /root/.Xauthority
That didnt help this time. Or, one can avoid port 6000 altogether and use ssh forwarding:
% ssh -X root@localhost
Yes, that works. Hmm. But this is silly, and still does not allow other local machines to use this display. Where is xhost being overridden? If I start xinit by hand, all is well:
% xinit .xinitrc -- -auth $HOME/.Xauthority > .xout 2>&1
so there must be something in SuSE's initscripts that cause this. Ah, yes, I see, /usr/X11R6/bin/startx reads /etc/sysconfig/displaymanager, and if in that file DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN is not set to "yes", it will start the server with the -nolisten tcp argument. After changing DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN to "yes" all was well.