diff options
author | Dirk von Suchodoletz | 2008-12-22 23:20:58 +0100 |
---|---|---|
committer | Dirk von Suchodoletz | 2008-12-22 23:20:58 +0100 |
commit | 9adadc35cfa7ad26995eb5c7016f0421c5f34769 (patch) | |
tree | a44440136202ad992abefeae61e17ad0def343b1 /os-plugins | |
parent | Small fixes for paths to create ... (diff) | |
download | core-9adadc35cfa7ad26995eb5c7016f0421c5f34769.tar.gz core-9adadc35cfa7ad26995eb5c7016f0421c5f34769.tar.xz core-9adadc35cfa7ad26995eb5c7016f0421c5f34769.zip |
Adding cleanup after X logoff (via Xreset). This removes all user files
from the /tmp directory (avoiding overflows of this directory and hope-
fully enhancing system security). Not implemented for all distros yet.
(there is a message written to /tmp in "files removed" so the user can
check that all temporary data was removed when logging off.)
git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@2448 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'os-plugins')
-rw-r--r-- | os-plugins/plugins/desktop/OpenSLX/Distro/Suse.pm | 33 | ||||
-rw-r--r-- | os-plugins/plugins/desktop/OpenSLX/Distro/Suse_10_2.pm | 10 | ||||
-rw-r--r-- | os-plugins/plugins/desktop/OpenSLX/Distro/Ubuntu.pm | 42 |
3 files changed, 66 insertions, 19 deletions
diff --git a/os-plugins/plugins/desktop/OpenSLX/Distro/Suse.pm b/os-plugins/plugins/desktop/OpenSLX/Distro/Suse.pm index 45c8548a..24d22c6d 100644 --- a/os-plugins/plugins/desktop/OpenSLX/Distro/Suse.pm +++ b/os-plugins/plugins/desktop/OpenSLX/Distro/Suse.pm @@ -48,9 +48,11 @@ sub setupGDMScript my $script = $self->SUPER::setupGDMScript($repoPath); my $configFile = $self->GDMPathInfo->{config}; - + + # include common stuff (independent of display manager used) + $script = _setupCommonDmScript($script); + $script .= unshiftHereDoc(<<' End-of-Here'); - rllinker xdm 1 10 sed -i 's/DISPLAYMANAGER=.*/DISPLAYMANAGER="gdm"/' \ /mnt/etc/sysconfig/displaymanager [ $(grep -q DISPLAYMANAGER /mnt/etc/sysconfig/displaymanager) ] && \ @@ -94,9 +96,11 @@ sub setupKDMScript symlink("/etc/opt/kdm/kdmrc", "/var/adm/kdm/kdmrc.sysconfig"); my $script = $self->SUPER::setupKDMScript($repoPath); - + + # include common stuff (independent of display manager used) + $script = _setupCommonDmScript($script); + $script .= unshiftHereDoc(<<' End-of-Here'); - rllinker xdm 1 10 sed -i 's/DISPLAYMANAGER=.*/DISPLAYMANAGER="kdm"/' \ /mnt/etc/sysconfig/displaymanager [ $(grep -q DISPLAYMANAGER /mnt/etc/sysconfig/displaymanager) ] && \ @@ -113,4 +117,25 @@ sub setupKDEHOME return; } +sub _setupCommonDmScript +{ + my $script = shift; + + $script .= unshiftHereDoc(<<' End-of-Here'); + rllinker xdm 1 10 + # cleanup after users Xorg session + sed 's,^#!.*,,' /mnt/etc/X11/xdm/Xreset \ + > /mnt/etc/X11/xdm/Xreset.system + echo -e '#!/bin/sh\n#\n# modified by desktop plugin in Stage3\n#\n + # remove safely any remaining files of the leaving user in /tmp + ( su -c "rm -rf /tmp/*" - $USER + echo "$USER files removed by $0" >/tmp/files.removed 2>/dev/null ) & + . /etc/X11/xdm/Xreset.system' >/mnt/etc/X11/xdm/Xreset + chmod a+x /mnt/etc/X11/xdm/Xreset* + + End-of-Here + + return $script; +} + 1; diff --git a/os-plugins/plugins/desktop/OpenSLX/Distro/Suse_10_2.pm b/os-plugins/plugins/desktop/OpenSLX/Distro/Suse_10_2.pm index aef62fb1..689485fe 100644 --- a/os-plugins/plugins/desktop/OpenSLX/Distro/Suse_10_2.pm +++ b/os-plugins/plugins/desktop/OpenSLX/Distro/Suse_10_2.pm @@ -29,9 +29,9 @@ use OpenSLX::Utils; sub GDMPathInfo { my $self = shift; - + my $pathInfo = $self->SUPER::GDMPathInfo(); - + # link gdm.conf-custom instead of gdm.conf $pathInfo->{config} = '/etc/opt/gnome/gdm/custom.conf'; @@ -41,12 +41,12 @@ sub GDMPathInfo sub GDMConfigHashForWorkstation { my $self = shift; - + my $configHash = $self->SUPER::GDMConfigHashForWorkstation(); $configHash->{'daemon'}->{SessionDesktopDir} = '/etc/X11/sessions/:/usr/share/xsessions/'; - + return $configHash; -} +} 1; diff --git a/os-plugins/plugins/desktop/OpenSLX/Distro/Ubuntu.pm b/os-plugins/plugins/desktop/OpenSLX/Distro/Ubuntu.pm index 4442b353..cfe1d264 100644 --- a/os-plugins/plugins/desktop/OpenSLX/Distro/Ubuntu.pm +++ b/os-plugins/plugins/desktop/OpenSLX/Distro/Ubuntu.pm @@ -29,9 +29,9 @@ use OpenSLX::Utils; sub GDMPathInfo { my $self = shift; - + my $pathInfo = $self->SUPER::GDMPathInfo(); - + # link gdm.conf-custom instead of gdm.conf $pathInfo->{config} = '/etc/gdm/gdm.conf-custom'; @@ -46,15 +46,26 @@ sub setupGDMScript my $script = $self->SUPER::setupGDMScript($repoPath); my $configFile = $self->GDMPathInfo->{config}; - - $script .= unshiftHereDoc(<<" End-of-Here"); + + $script .= unshiftHereDoc(<<' End-of-Here'); + + # cleanup after users Xorg session + sed 's,^#!.*,,' /mnt/etc/gdm/PostSession/Default \ + >/mnt/etc/gdm/PostSession/Default.system + echo -e '#! /bin/sh\n#\n# modified by desktop plugin in Stage3\n#\n + # remove safely any remaining files of the leaving user in /tmp + ( su -c "rm -rf /tmp/*" + echo "$USER files removed by $0" >/tmp/files.removed 2>/dev/null ) & + . /etc/gdm/PostSession/Default.system' >/mnt/etc/gdm/PostSession/Default + chmod a+x /mnt/etc/gdm/PostSession/Default* + rllinker gdm 1 10 echo '/usr/sbin/gdm' >/mnt/etc/X11/default-display-manager chroot /mnt update-alternatives --set x-window-manager /usr/bin/metacity - chroot /mnt update-alternatives --set x-session-manager \\ + chroot /mnt update-alternatives --set x-session-manager \ /usr/bin/gnome-session testmkd /mnt/var/lib/gdm root:gdm 1770 - sed '/^\\[daemon\\]/ a\\BaseXsession=/etc/gdm/Xsession' \\ + sed '/^\\[daemon\\]/ a\\BaseXsession=/etc/gdm/Xsession' \ -i /mnt$configFile End-of-Here @@ -64,9 +75,9 @@ sub setupGDMScript sub KDMPathInfo { my $self = shift; - + my $pathInfo = $self->SUPER::KDMPathInfo(); - + $pathInfo = { config => '/etc/kde3/kdm/kdmrc', paths => [ @@ -111,10 +122,21 @@ sub setupKDMScript my $repoPath = shift; my $script = $self->SUPER::setupKDMScript($repoPath); - + $script .= unshiftHereDoc(<<' End-of-Here'); + + # cleanup after users Xorg session + sed 's,^#!.*,,' /mnt/etc/kde3/kdm/Xreset \ + >/mnt/etc/kde3/kdm/Xreset.system + echo -e '#! /bin/sh\n#\n# modified by desktop plugin in Stage3\n#\n + # remove safely any remaining files of the leaving user in /tmp + ( su -c "rm -rf /tmp/*" - $USER + echo "$USER files removed by $0" >/tmp/files.removed 2>/dev/null ) & + . /etc/kde3/kdm/Xreset.system' >/mnt/etc/kde3/kdm/Xreset + chmod a+x /mnt/etc/kde3/kdm/Xreset* + rllinker kdm 1 10 - echo '/usr/bin/kdm' >/mnt/etc/X11/default-display-manager + echo '/usr/bin/kdm' > /mnt/etc/X11/default-display-manager chroot /mnt update-alternatives --set x-window-manager /usr/bin/kwin chroot /mnt update-alternatives --set x-session-manager \ /usr/bin/startkde |