! Please note that this is a snapshot of our old Bugzilla server, which is read only since May 29, 2020. Please go to gitlab.xfce.org for our new server !
Regular Users cannot Change Settings in Xfce
Status:
CLOSED: INVALID
Severity:
critical
Product:
Xfce-mcs
Component:
General

Comments

Description Rob 2005-12-18 16:04:46 CET
I just installed xfce4 v4.2.3.2 on my Arch Linux box. I can change the settings
while logged in as root. But when I log into a non-root regular user account,
nothing happens when I click on the Settings icon on the Panel.

Also I see an error when I exit xfce4 -- Critical error cannot save settings.

I tried to delete my .config file in my home folder but that made no difference. 

FYI - Pernissions looked good anyway...

Directories were drwx and files rw for owner rob and group users. But when I log
into rob, startxfce4 and try to change settings nothing happens.

Next I uninstalled xfce4-goodies and xfce4. Then I manually deleted the .config
and .cache directories in the home folders for root and my regular user account
"rob". Then I installed xfce4 and xfce4-goodies.

Same problem. Cannot save settings when using my non root account rob.

I also see the following error messages --

(xftaskbar4: 3505): libxfcegui4-WARNING **: Disconnected from session manager

(xfdesktop: 3505): libxfcegui4-WARNING **: ICE I/O Error

(xfdesktop: 3587): libxfcegui4-WARNING**: Disconncted from session manager

/opt/xfce4/etc/xdg/xfce4/xinitrc: line 73: 3574 Segmentation fault $xfcesm
xscreensaver" 10:06:48: -1: unrecognized ClientMessage "_NET_WM_STATE" received
xscreensaver" 10:06:48: -1: for window 0x80002d ((null)) / (null))
xscreensaver" 10:06:48: -1: SIGHUP received: restarting...
xscreensaver" 10:06:48: -1: running as rob/users (1000/100)

waiting for X server to shut down xfwm4: Fatal IO error 104 (connection reset by
peer) on X server :0.0

** (xfce4-panel:3582): CRITICAL **: Could not write config file
ICE default IO error handler doing an exit (), pid = 3590, errno = 0
xfdesktop: Fatal IO error 104 (connection reset by peer) on X server :0.0
** message: xfce4-panel: Exit
XIO : fatal IO error 104 (connection reset by peer) on X server ":0.0"
after 0 request (0 known processed) with 0 events remaining

I believe all this trouble started after I installed xscreensaver. 
So I just uninstalled xscreensaver. No difference. I still have the same problem..

I am also seeing some other error messages:

(xfce4-panel: 3807): Gdk-WARNING **: GdkWindow 0x8000b4 unexpectedly destroyed

Rob


Reproducible: Always
Steps to Reproduce:
1. Install xfce and xfce-goodies
2. log into non-root regular user account
3. Click on settings icon on Panel.

Actual Results:  
Nothing happens.  You also see the following error messages when exiting xfce4:

(xftaskbar4: 3505): libxfcegui4-WARNING **: Disconnected from session manager

(xfdesktop: 3505): libxfcegui4-WARNING **: ICE I/O Error

(xfdesktop: 3587): libxfcegui4-WARNING**: Disconncted from session manager

/opt/xfce4/etc/xdg/xfce4/xinitrc: line 73: 3574 Segmentation fault $xfcesm
xscreensaver" 10:06:48: -1: unrecognized ClientMessage "_NET_WM_STATE" received
xscreensaver" 10:06:48: -1: for window 0x80002d ((null)) / (null))
xscreensaver" 10:06:48: -1: SIGHUP received: restarting...
xscreensaver" 10:06:48: -1: running as rob/users (1000/100)

waiting for X server to shut down xfwm4: Fatal IO error 104 (connection reset by
peer) on X server :0.0

** (xfce4-panel:3582): CRITICAL **: Could not write config file
ICE default IO error handler doing an exit (), pid = 3590, errno = 0
xfdesktop: Fatal IO error 104 (connection reset by peer) on X server :0.0
** message: xfce4-panel: Exit
XIO : fatal IO error 104 (connection reset by peer) on X server ":0.0"
after 0 request (0 known processed) with 0 events remaining 


Expected Results:  
Should be able to change settings!
Comment 1 Rob 2005-12-18 18:27:03 CET
I can run xfce-setting-show in xterm but nothing appears and I get the following
errors:

[rob@myarch bin]$ xfce-setting-show

(xfce-mcs-manager:5793): libxfce4util-WARNING **: Invalid XDG_CACHE_HOME
directory `/root/.cache', program may behave incorrectly.

(xfce-mcs-manager:5793): libxfce4util-WARNING **: Invalid XDG_DATA_HOME
directory `/root/.local/share', program may behave incorrectly.

(xfce-mcs-manager:5793): libxfce4util-WARNING **: Invalid XDG_CONFIG_HOME
directory `/root/.config', program may behave incorrectly.

(xfce-mcs-manager:5793): libxfce4mcs-CRITICAL **:
mcs_manager_add_channel_from_file: assertion `filename != NULL && strlen
(filename) > 0' failed 
Comment 2 Olivier Fourdan editbugs 2005-12-18 18:32:58 CET
Sorry, but that looks really like an issue with your installation. Doesn't sound
like a bug in xfce.
Comment 3 Brian J. Tarricone (not reading bugmail) 2005-12-18 20:33:08 CET
*** Bug 1280 has been marked as a duplicate of this bug. ***
Comment 4 Rob 2005-12-19 02:08:24 CET
I think I tracked down the cause but I really don't have a good solution at this
time.

If I log into root and then do the following I will NOT be able to bring up the
settings window:

#su rob
#startxfce4
Click on Settings Icon on Panel

However, if I do the following, I do not have any problems with bringing up the
settings screen:

#su - rob
#startxfce4
Click on Settings Icon on Panel

In other words, switching to a login shell for my regular account rob solved the
problem.  This is a REAL mystery since the .bashrc and .bash_profile files are
identical for the root account and my regular account rob.  In my case, the only
real difference between "su rob"and "su - rob" is the latter changes my working
directory to the home directory for rob.

I don't have problems with any other window manager like icewm etc when using
su.  But xfce4 seems to require a su - <name of account>.

Perhaps there is a bug in startxfce4?

Rob 
Comment 5 Brian J. Tarricone (not reading bugmail) 2005-12-19 03:04:08 CET
No, there's no bug here.  The script uses things like $HOME and $USER to
determine the location of your home directory, and thus your configuration
directory.  If you don't do 'su -', these values are apparently being inherited
from root's session, hence why it didn't work.  I would think this shouldn't be
the case, but this is a problem with your setup, not Xfce.
Comment 6 Rob 2005-12-19 22:12:27 CET
Thanks for your comments.  But your comments does not adequately explain what is
happening.

When I log in as root and then just do a "su rob", $HOME and $USER are being
updated.  

#su rob
$echo $HOME
/home/rob
$echo $USER
rob

Something else is going on.  I do not think this has anything to do with my
setup.  If you did this on any other distro, I expect you would get the same
results.  

I suspect that there still is a bug here but there is a work around..  Just use
su -.

Rob


Comment 7 Jasper Huijsmans editbugs 2005-12-20 07:02:57 CET
If Xfce is trying to access /root/.config it means there are still environment
variables pointing to that. This is not a bug in Xfce, but an effect of using
'su' instead of 'su -'. You may want to check if XDG_CONFIG_DIRS or
XDG_CONFIG_HOME is set.
Comment 8 Rob 2005-12-21 00:40:21 CET
Thanks for the post.  I have checked the variables you suggested.

#echo $XDG_CONFIG_DIRS
/etc/xdg:/etc/xdg:/opt/xfce4/etc/xdg
#echo $XDG_CONFIG_HOME
/root/.config
#su rob
#echo $XDG_CONFIG_DIRS
/etc/xdg:/etc/xdg:/opt/xfce4/etc/xdg
#echo $XDG_CONFIG_HOME
/home/rob/.config

Hmm.  It looks like these environment variables are being set somewhere in my
login shell scripts.  I found the following in file being sourced by my
/etc/profile file:

export XDG_CONFIG_HOME=$HOME/.config
etc etc.

I understand that it is pretty normal to set these environment variables in
/etc/profile. 

Since it looks like the xfce startup scripts (such as startxfce4) are using
these environment variables, very little can be done other than making sure one
uses "su -" when switching users. If one uses "su -" then /etc/profile will be
sourced again, resetting XDG_CONFIG_HOME to the right value.

Rob
Comment 9 Brian J. Tarricone (not reading bugmail) 2005-12-21 00:54:13 CET
Right, as it should be.  If you want variables to get reset at the appropriate
shell invocation, you need to put them in the proper startup files.  There is
well-documented (though often confusing) behavior as to what files bash sources
when started in different ways.

On a side note, common practice dictates logging in as a regular user, and using
'su' or 'sudo' to gain root privileges only when absolutely necessary.  I'll
admit that your situation is annoying, but it's far from the common case, and
there's no easy workaround from within Xfce.

(On another side note, I long ago set a bash alias for 'su' as 'su -' so I
wouldn't have to worry about env var resetting issues.  I haven't yet
encountered any problems with this approach.)

Bug #1279

Reported by:
Rob
Reported on: 2005-12-18
Last modified on: 2009-07-15
Duplicates (1):
  • 1280 Regular Users cannot Change Settings in Xfce

People

Assignee:
Xfce Bug Triage
CC List:
0 users

Version

Attachments

Additional information