Robert Ancell
2016-Feb-04 21:29 UTC
[LightDM] Setting environment variables the correct way for lightdm/XFCE4
What OS are you using? The pam_env module should bring all the variables from /etc/environment into a user session. See /etc/pam.d/lightdm to check if it is configured like that. On Fri, 5 Feb 2016 at 09:44 OmegaPhil <OmegaPhil at startmail.com> wrote:> I currently need to set LD_PRELOAD systemwide in order to work around an > aufs kernel memory allocation problem - '/etc/environment' LD_PRELOAD is > obeyed by shells launched outside a GUI, however anything launched > through lightdm doesn't get this. I can add the export to '~/.bashrc', > however I need it also present for any GUI program launched from the X > session. > > Fiddling with '/etc/profile.d/' scripts and adding it to lightdm's > init.d script didn't work, looking through lightdm's source (e.g. > seat.c) suggests it gets stripped unless LIGHTDM_TEST_ROOT is set, > however setting this in '/etc/environment' or in the init.d script still > doesn't cause LD_PRELOAD to be honoured. > > The only thing that 'works' is adding the exports to > '/etc/xdg/xfce4/xinitrc', just above the '# run xfce4-session if > installed' block. > > Is there a recommended way (other than this) for a sysadmin to set > LD_PRELOAD that is respected by lightdm/XFCE4/etc? > > Thanks for any help > > _______________________________________________ > LightDM mailing list > LightDM at lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/lightdm >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.freedesktop.org/archives/lightdm/attachments/20160204/4ddfd4b9/attachment.html>
OmegaPhil
2016-Feb-05 09:21 UTC
[LightDM] Setting environment variables the correct way for lightdm/XFCE4
Ah sorry for not saying - Debian Testing (up to date). Yes, '/etc/environment' is enough for propagating LIBAU, but one or possibly more things are messing with LD_PRELOAD, between that early PAM stage and the XFCE4 session manager starting. Yeah the PAM file looks fine, for reference: ================================================================= #%PAM-1.0 # Block login if they are globally disabled auth requisite pam_nologin.so # Load environment from /etc/environment and ~/.pam_environment session required pam_env.so readenv=1 session required pam_env.so readenv=1 envfile=/etc/default/locale @include common-auth -auth optional pam_gnome_keyring.so @include common-account # SELinux needs to be the first session rule. This ensures that any # lingering context has been cleared. Without out this it is possible # that a module could execute code in the wrong domain. # When the module is present, "required" would be sufficient (When SELinux # is disabled, this returns success.) session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close session required pam_limits.so session required pam_loginuid.so @include common-session # SELinux needs to intervene at login time to ensure that the process # starts in the proper default security context. Only sessions which are # intended to run in the user's context should be run after this. session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open # When the module is present, "required" would be sufficient (When SELinux # is disabled, this returns success.) -session optional pam_gnome_keyring.so auto_start @include common-password ================================================================= On 04/02/16 21:29, Robert Ancell wrote:> What OS are you using? The pam_env module should bring all the variables > from /etc/environment into a user session. > > See /etc/pam.d/lightdm to check if it is configured like that. > > On Fri, 5 Feb 2016 at 09:44 OmegaPhil <OmegaPhil at startmail.com> wrote: > >> I currently need to set LD_PRELOAD systemwide in order to work around an >> aufs kernel memory allocation problem - '/etc/environment' LD_PRELOAD is >> obeyed by shells launched outside a GUI, however anything launched >> through lightdm doesn't get this. I can add the export to '~/.bashrc', >> however I need it also present for any GUI program launched from the X >> session. >> >> Fiddling with '/etc/profile.d/' scripts and adding it to lightdm's >> init.d script didn't work, looking through lightdm's source (e.g. >> seat.c) suggests it gets stripped unless LIGHTDM_TEST_ROOT is set, >> however setting this in '/etc/environment' or in the init.d script still >> doesn't cause LD_PRELOAD to be honoured. >> >> The only thing that 'works' is adding the exports to >> '/etc/xdg/xfce4/xinitrc', just above the '# run xfce4-session if >> installed' block. >> >> Is there a recommended way (other than this) for a sysadmin to set >> LD_PRELOAD that is respected by lightdm/XFCE4/etc? >> >> Thanks for any help >> >> _______________________________________________ >> LightDM mailing list >> LightDM at lists.freedesktop.org >> http://lists.freedesktop.org/mailman/listinfo/lightdm >> >-------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: OpenPGP digital signature URL: <http://lists.freedesktop.org/archives/lightdm/attachments/20160205/6bed94f7/attachment.sig>