summaryrefslogtreecommitdiffstats
path: root/os-plugins
diff options
context:
space:
mode:
authorDirk von Suchodoletz2008-12-22 23:20:58 +0100
committerDirk von Suchodoletz2008-12-22 23:20:58 +0100
commit9adadc35cfa7ad26995eb5c7016f0421c5f34769 (patch)
treea44440136202ad992abefeae61e17ad0def343b1 /os-plugins
parentSmall fixes for paths to create ... (diff)
downloadcore-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.pm33
-rw-r--r--os-plugins/plugins/desktop/OpenSLX/Distro/Suse_10_2.pm10
-rw-r--r--os-plugins/plugins/desktop/OpenSLX/Distro/Ubuntu.pm42
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