Changeset 538


Ignore:
Timestamp:
10/08/09 22:12:22 (2 years ago)
Author:
tschmitt
Message:
  • einige Verbesserungen bzgl. der Synchronisation des Userhomes zu Beginn und am Ende der Benutzersitzung (betr. config, profile, mount.sh, umount.sh, Default).
  • iocharset=utf8 bei den pammount-Optionen ergänzt.
  • wsize und rsize aus pammount-Optionen entfernt.
  • verbesserte Paket-Konfiguration: Werte für LDAP-Server und BaseDN werden vom Paket ldap-auth-config ausgelesen.
  • Client-Konfigurationsdatei von /etc/linuxmuster-client.conf nach /etc/linuxmuster-client/config verschoben.
  • neue Konfigurationsdatei /etc/linuxmuster-client/profile.exclude zur Definition von Dateien und Verzeichnissen, die von der Synchronisation mit dem Template-User ausgenommen werden sollen.
  • experimenteller Support für Ubuntu 9.10.
Location:
client/linuxmuster-client/trunk
Files:
7 added
1 deleted
13 edited

Legend:

Unmodified
Added
Removed
  • client/linuxmuster-client/trunk/debian/changelog

    r537 r538  
     1linuxmuster-client (0.9.13-1) testing; urgency=low 
     2 
     3  * some improvements according to user dir syncing at begin and end of session. 
     4    (-> config, profile, mount.sh, umount.sh, Default). 
     5  * added iocharset=utf8 to and removed wsize,rsize mount options from pam_mount.conf.xml template. 
     6  * improved package configuration: values for ldap server and base dn were read from package ldap-auth-config. 
     7  * moved client config file to /etc/linuxmuster-client/config 
     8  * added config file /etc/linuxmuster-client/profile.exclude 
     9  * added experimental support for Karmic Koala. 
     10 
     11 -- Thomas Schmitt <schmitt@lmz-bw.de>  Thu, 8 Oct 2009 21:42:49 +0200 
     12 
    113linuxmuster-client (0.9.12-1) testing; urgency=low 
    214 
  • client/linuxmuster-client/trunk/debian/config

    r537 r538  
    77 
    88# source config 
    9 [ -e /etc/linuxmuster-client.conf ] && . /etc/linuxmuster-client.conf 
     9[ -e /etc/linuxmuster-client/config ] && . /etc/linuxmuster-client/config 
    1010 
    1111db_version 2.0 
     
    1717 
    1818# ldap server uri 
     19db_get ldap-auth-config/ldapns/ldap-server || true 
     20db_set shared/ldapns/ldap-server ${RET#*\/\/} || true 
    1921while [ -z "$INPUT" ]; do 
    2022  db_input $PRIORITY shared/ldapns/ldap-server || true 
     
    2325  INPUT=$RET 
    2426done 
     27db_set ldap-auth-config/ldapns/ldap-server $INPUT || true 
    2528 
    2629# ldap basedn 
    2730unset INPUT 
     31db_get ldap-auth-config/ldapns/base-dn || true 
     32db_set shared/ldapns/base-dn $RET || true 
    2833while [ -z "$INPUT" ]; do 
    2934  db_input $PRIORITY shared/ldapns/base-dn || true 
     
    3237  INPUT=$RET 
    3338done 
     39db_set ldap-auth-config/ldapns/base-dn $INPUT || true 
    3440 
    3541# template user 
     
    3945 
    4046# firefox 
     47[ -n "$FIREFOX" ] && FIREFOX=`echo $FIREFOX | tr A-Z a-z` 
    4148if [ "$FIREFOX" = "yes" ]; then 
    42         db_set linuxmuster-client/firefox true || true 
     49 db_set linuxmuster-client/firefox true || true 
    4350else 
    44         db_set linuxmuster-client/firefox false || true 
     51 db_set linuxmuster-client/firefox false || true 
    4552fi 
    4653db_input $PRIORITY linuxmuster-client/firefox || true 
  • client/linuxmuster-client/trunk/debian/install

    r535 r538  
    1 etc/Default                     etc/gdm/PostLogin/ 
    2 etc/linuxmuster-client.conf     etc/ 
    3 common/*                        var/lib/linuxmuster-client/common/ 
    4 hardy/*                         var/lib/linuxmuster-client/hardy/ 
    5 jaunty/*                        var/lib/linuxmuster-client/jaunty/ 
    6 etch/*                          var/lib/linuxmuster-client/etch/ 
    7 share/*                         usr/share/linuxmuster-client/ 
     1etc/Default     etc/gdm/PostLogin/ 
     2etc/config      etc/linuxmuster-client/ 
     3etc/profile.exclude     etc/linuxmuster-client/ 
     4common/*        var/lib/linuxmuster-client/common/ 
     5hardy/* var/lib/linuxmuster-client/hardy/ 
     6jaunty/*        var/lib/linuxmuster-client/jaunty/ 
     7etch/*  var/lib/linuxmuster-client/etch/ 
     8share/* usr/share/linuxmuster-client/ 
    89debian/linuxmuster-hostname     etc/init.d/ 
    910 
  • client/linuxmuster-client/trunk/debian/links

    r535 r538  
    11var/lib/linuxmuster-client/hardy        var/lib/linuxmuster-client/intrepid 
     2var/lib/linuxmuster-client/jaunty       var/lib/linuxmuster-client/karmic 
    23 
  • client/linuxmuster-client/trunk/debian/postinst

    r537 r538  
    3232                binpath=bin 
    3333                cups=cupsys 
    34                 if grep -q "$jaunty" /etc/issue; then 
     34                if grep -q "$karmic" /etc/issue; then 
     35                        echo "This is $karmic!" 
     36                        distro=karmic 
     37                        cups=cups 
     38                elif grep -q "$jaunty" /etc/issue; then 
    3539                        echo "This is $jaunty!" 
    3640                        distro=jaunty 
     
    145149 
    146150  # patch package configfile 
    147          [ -e /etc/linuxmuster-client.conf ] && cp /etc/linuxmuster-client.conf /etc/linuxmuster-client.conf.dpkg-old 
    148          if grep -q ^TEMPLATE_USER /etc/linuxmuster-client.conf; then 
    149                  sed -e "s|^TEMPLATE_USER=.*|TEMPLATE_USER=$template_user|" -i /etc/linuxmuster-client.conf 
     151         [ -e /etc/linuxmuster-client/config ] && cp /etc/linuxmuster-client/config /etc/linuxmuster-client/config.dpkg-old 
     152         if grep -q ^TEMPLATE_USER /etc/linuxmuster-client/config; then 
     153                 sed -e "s|^TEMPLATE_USER=.*|TEMPLATE_USER=$template_user|" -i /etc/linuxmuster-client/config 
    150154         else 
    151                  echo "TEMPLATE_USER=$template_user" > /etc/linuxmuster-client.conf 
     155                 echo "TEMPLATE_USER=$template_user" > /etc/linuxmuster-client/config 
    152156         fi 
    153         if grep -q ^FIREFOX /etc/linuxmuster-client.conf; then 
    154                  sed -e "s|^FIREFOX=.*|FIREFOX=$firefox|" -i /etc/linuxmuster-client.conf 
     157        if grep -q ^FIREFOX /etc/linuxmuster-client/config; then 
     158                 sed -e "s|^FIREFOX=.*|FIREFOX=$firefox|" -i /etc/linuxmuster-client/config 
    155159         else 
    156                  echo "FIREFOX=$firefox" >> /etc/linuxmuster-client.conf 
     160                 echo "FIREFOX=$firefox" >> /etc/linuxmuster-client/config 
    157161        fi 
    158162 
  • client/linuxmuster-client/trunk/etc/Default

    r535 r538  
    88 
    99# source settings 
    10 . /etc/linuxmuster-client.conf || exit 1 
     10. /etc/linuxmuster-client/config || exit 1 
    1111. /usr/share/linuxmuster-client/config || exit 1 
    1212. /usr/share/linuxmuster-client/helperfunctions.sh || exit 1 
     
    5454# iterate over profile directories and copy them to users home 
    5555for i in $PROFILE_DIRS; do 
    56         [ -e "$HOME/$i" ] && rm -rf $HOME/$i 
    57         [ -e "$PROFILE_HOME/$i" ] && cp -a $PROFILE_HOME/$i $HOME 
     56 [ -e "$HOME/$i" ] || mkdir -p $HOME/$i 
     57        [ -e "$HOME/$i" -a -e "$PROFILE_HOME/$i" ] && rsync -a --delete --exclude-from /etc/linuxmuster-client/profile.exclude $PROFILE_HOME/$i/ $HOME/$i/ 
    5858        [ -e "$HOME/$i" ] && chown -R $USER $HOME/$i 
    5959done 
  • client/linuxmuster-client/trunk/jaunty/templates/etc/security/pam_mount.conf.xml

    r535 r538  
    1414<umount>/usr/share/linuxmuster-client/umount.sh %(USER) %(MNTPT)</umount> 
    1515 
    16  
    17  
    1816<mntcheck>/bin/mount</mntcheck> 
    1917 
    2018<pmvarrun>/usr/sbin/pmvarrun -u %(USER) -d -o %(OPERATION)</pmvarrun> 
    2119 
    22 <volume options="rw,nosuid,nodev,wsize=8192,rsize=8192,nobrl" user="*" mountpoint="~" path="%(USER)" server="@@serverip@@" fstype="cifs" /> 
     20<volume options="rw,nosuid,nodev,iocharset=utf8,nobrl" user="*" mountpoint="~" path="%(USER)" server="@@serverip@@" fstype="cifs" /> 
    2321 
    24 <volume options="rw,nosuid,nodev,wsize=8192,rsize=8192" user="*" mountpoint="@@studentshome@@" path="students" server="@@serverip@@" fstype="cifs" /> 
     22<volume options="rw,nosuid,nodev,iocharset=utf8" user="*" mountpoint="@@studentshome@@" path="students" server="@@serverip@@" fstype="cifs" /> 
    2523 
    26 <volume options="rw,nosuid,nodev,wsize=8192,rsize=8192" user="*" mountpoint="@@sharehome@@" path="shares" server="@@serverip@@" fstype="cifs" /> 
     24<volume options="rw,nosuid,nodev,iocharset=utf8" user="*" mountpoint="@@sharehome@@" path="shares" server="@@serverip@@" fstype="cifs" /> 
    2725 
    28 <volume options="rw,nosuid,nodev,wsize=8192,rsize=8192" user="*" mountpoint="@@progsdir@@" path="pgm" server="@@serverip@@" fstype="cifs" /> 
     26<volume options="rw,nosuid,nodev,iocharset=utf8" user="*" mountpoint="@@progsdir@@" path="pgm" server="@@serverip@@" fstype="cifs" /> 
    2927 
    30 <volume options="rw,nosuid,nodev,wsize=8192,rsize=8192" user="*" mountpoint="@@cdsdir@@" path="cdrom" server="@@serverip@@" fstype="cifs" /> 
     28<volume options="rw,nosuid,nodev,iocharset=utf8" user="*" mountpoint="@@cdsdir@@" path="cdrom" server="@@serverip@@" fstype="cifs" /> 
    3129 
    32 <volume options="rw,nosuid,nodev,wsize=8192,rsize=8192" user="*" mountpoint="@@taskscache@@" path="tasks" server="@@serverip@@" fstype="cifs" /> 
     30<volume options="rw,nosuid,nodev,iocharset=utf8" user="*" mountpoint="@@taskscache@@" path="tasks" server="@@serverip@@" fstype="cifs" /> 
    3331 
    34 <volume options="rw,nosuid,nodev,wsize=8192,rsize=8192" user="*" mountpoint="@@backupmntpoint@@" path="backup" server="@@serverip@@" fstype="cifs" /> 
     32<volume options="rw,nosuid,nodev,iocharset=utf8" user="*" mountpoint="@@backupmntpoint@@" path="backup" server="@@serverip@@" fstype="cifs" /> 
    3533 
    3634</pam_mount> 
  • client/linuxmuster-client/trunk/share/config

    r535 r538  
    2424PROGSDIR="$SAMBAHOME/progs" 
    2525CDSDIR="$SAMBAHOME/cds" 
     26USERDIRS="Desktop .kde .local" 
    2627MANDATORY_GROUPS="plugdev powerdev pulse-rt" 
    2728 
  • client/linuxmuster-client/trunk/share/helperfunctions.sh

    r400 r538  
    1414# get user homedir 
    1515get_userhome() { 
    16         userhomecache=/tmp/.cache-$USER 
     16        userhomecache=/tmp/.home-$USER 
    1717        if [ ! -s "$userhomecache" ]; then 
    1818                getent passwd $USER | cut -f6 -d: > $userhomecache 
  • client/linuxmuster-client/trunk/share/mount.sh

    r535 r538  
    1414OPTIONS="$5" 
    1515 
     16# no pammount for local users 
     17grep -q ^${USER}: /etc/passwd && exit 0 
     18 
    1619# check if params are all set 
    1720[ -z "$SERVER" ] && exit 1 
     
    2124[ -z "$OPTIONS" ] && exit 1 
    2225 
    23 # no pam_mount stuff for local users 
    24 if grep -q ^${USER}: /etc/passwd; then 
    25 #       date >> /tmp/pammount.log 
    26 #       echo "$SERVER" >> /tmp/pammount.log 
    27 #       echo "$VOLUME" >> /tmp/pammount.log 
    28 #       echo "$MNTPT" >> /tmp/pammount.log 
    29 #       echo "$USER" >> /tmp/pammount.log 
    30 #       echo >> /tmp/pammount.log 
    31         exit 0 
    32 fi 
     26# source profile 
     27. /usr/share/linuxmuster-client/profile || exit 1 
    3328 
    34 # source helperfunctions 
    35 . /usr/share/linuxmuster-client/helperfunctions.sh || exit 1 
     29# check if important variables are set 
     30[ -z "$KDEHOME" ] && exit 1 
     31[ -z "$DESKTOP" ] && exit 1 
     32[ -z "$USERDIRS" ] && exit 1 
    3633 
    3734# fetch user's homedir 
     
    4643 
    4744# if userhome not mounted do exit 
    48 mount | grep -q $HOME || exit 1 
    49  
    50 # source profile and check if important variables are set 
    51 . /usr/share/linuxmuster-client/profile || exit 1 
    52 [ -z "$KDEHOME" ] && exit 1 
    53 [ -z "$DESKTOP" ] && exit 1 
    54 [ -z "$DOTLOCAL" ] && exit 1 
    55  
    56 # creating user's temporary dirs 
    57 for i in $KDEHOME $KDEHOME/Autostart $KDEHOME/share $DESKTOP $DOTLOCAL; do 
    58         [[ -L "$i" || -e "$i" ]] && rm -rf $i 
    59         [ -d "$i" ] || mkdir -p $i 
    60         chown $USER $i 
    61         chmod 700 $i 
    62 done 
    63  
    64 # syncing user's kde settings 
    65 if [ -d "$HOME/.kde/share" ]; then 
    66         rsync -a --delete $HOME/.kde/share/ $KDEHOME/share/ 
    67 elif [ -d "$HOME/.kde.old/share" ]; then 
    68         rsync -a --delete $HOME/.kde.old/share/ $KDEHOME/share/ 
    69 fi 
    70  
    71 # syncing user's kde autostart folder 
    72 if [ -d "$HOME/.kde/Autostart" ]; then 
    73         rsync -a --delete $HOME/.kde/Autostart/ $KDEHOME/Autostart/ 
    74 elif [ -d "$HOME/.kde.old/Autostart" ]; then 
    75         rsync -a --delete $HOME/.kde.old/Autostart/ $KDEHOME/Autostart/ 
    76 fi 
    77  
    78 # syncing user's desktop 
    79 if [ -d "$HOME/Desktop" ]; then 
    80         rsync -a --delete $HOME/Desktop/ $DESKTOP/ 
    81 elif [ -d "$HOME/.Desktop.old" ]; then 
    82         rsync -a --delete $HOME/.Desktop.old/ $DESKTOP/ 
    83 fi 
    84  
    85 # syncing user's .local 
    86 if [ -d "$HOME/.local" ]; then 
    87         rsync -a --delete $HOME/.local/ $DOTLOCAL/ 
    88 elif [ -d "$HOME/.local.old" ]; then 
    89         rsync -a --delete $HOME/.local.old/ $DOTLOCAL/ 
    90 fi 
    91  
    92 # move .kde folder in user's home and link it to $KDEHOME 
    93 if [ -d "$HOME/.kde" ]; then 
    94         [ -e "$HOME/.kde.old" ] && rm -rf $HOME/.kde.old 
    95         mv $HOME/.kde $HOME/.kde.old 
    96 fi 
    97 [ -e "$HOME/.kde" ] && rm -rf $HOME/.kde 
    98 ln -s $KDEHOME $HOME/.kde 
    99 chown $USER $HOME/.kde 
    100  
    101 # move desktop folder in user's home and link it to $DESKTOP 
    102 if [ -d "$HOME/Desktop" ]; then 
    103         [ -e "$HOME/.Desktop.old" ] && rm -rf $HOME/.Desktop.old 
    104         mv $HOME/Desktop $HOME/.Desktop.old 
    105 fi 
    106 [ -e "$HOME/Desktop" ] && rm -rf $HOME/Desktop 
    107 ln -s $DESKTOP $HOME/Desktop 
    108 chown $USER $HOME/Desktop 
    109  
    110 # move .local folder in user's home and link it to $DOTLOCAL 
    111 if [ -d "$HOME/.local" ]; then 
    112         [ -e "$HOME/.local.old" ] && rm -rf $HOME/.local.old 
    113         mv $HOME/.local $HOME/.local.old 
    114 fi 
    115 [ -e "$HOME/.local" ] && rm -rf $HOME/.local 
    116 ln -s $DOTLOCAL $HOME/.local 
    117 chown $USER $HOME/.local 
    118  
     45cat /proc/mounts | grep -qw $HOME || exit 1 
    11946 
    12047# add user to mandatory groups 
     
    12552done 
    12653 
     54# move user's dirs temporarily to /tmp 
     55for i in $USERDIRS; do 
     56 [ -e "/tmp/${i}-${USER}" -a ! -d "/tmp/${i}-${USER}" ] && rm -rf /tmp/${i}-${USER} 
     57 [ -d "/tmp/${i}-${USER}" ] || mkdir -p /tmp/${i}-${USER} 
     58 [ -d "$HOME/$i" ] && rsync -a --delete $HOME/$i/ /tmp/${i}-${USER}/ 
     59 rm -rf $HOME/$i 
     60 ln -s /tmp/${i}-${USER} $HOME/$i 
     61 chown $USER /tmp/${i}-${USER} -R 
     62 chmod 700 /tmp/${i}-${USER} 
     63done 
     64 
     65# handle .cache and .gvfs 
     66for i in .cache .gvfs; do 
     67 [ -e "/tmp/${i}-${USER}" ] && rm -rf /tmp/${i}-${USER} 
     68 [ -e "$HOME/$i" ] && rm -rf $HOME/$i 
     69 mkdir -p /tmp/${i}-${USER} 
     70 chown $USER /tmp/${i}-${USER} 
     71 chmod 700 /tmp/${i}-${USER} 
     72 ln -s /tmp/${i}-${USER} $HOME/${i} 
     73done 
     74 
     75# remove .pulse dir 
     76rm -rf $HOME/.pulse 
     77 
  • client/linuxmuster-client/trunk/share/profile

    r535 r538  
    1010 
    1111        # Redirects KDE Home to /tmp 
    12         export KDEHOME=/tmp/.kde_${USER} 
     12        export KDEHOME=/tmp/.kde-${USER} 
    1313 
    1414        # user's desktop has also to be in /tmp 
    15         export DESKTOP=/tmp/Desktop_${USER} 
    16  
    17         # user's .local has also to be in /tmp 
    18         export DOTLOCAL=/tmp/.local_${USER} 
     15        export DESKTOP=/tmp/Desktop-${USER} 
    1916 
    2017        # Redirects access token file for dcopserver to /tmp 
  • client/linuxmuster-client/trunk/share/supported_distros

    r488 r538  
     1karmic="Ubuntu karmic" 
    12jaunty="Ubuntu 9.04" 
    23intrepid="Ubuntu 8.10" 
  • client/linuxmuster-client/trunk/share/umount.sh

    r535 r538  
    66# 11.07.2009 
    77# 
     8 
     9# check if mountpoint is mounted 
     10mounted(){ 
     11 if cat /proc/mounts | grep -qw $MNTPT; then 
     12  return 0 
     13 else 
     14  return 1 
     15 fi 
     16} 
    817 
    918# parameters given by pammount 
     
    3645        [ -z "$KDEHOME" ] && exit 1 
    3746        [ -z "$DESKTOP" ] && exit 1 
    38         [ -z "$DOTLOCAL" ] && exit 1 
     47        [ -z "$USERDIRS" ] && exit 1 
    3948 
    40         # creating necessary dirs in user's home 
    41         for i in $HOME/.kde $HOME/.kde/Autostart $HOME/.kde/share $HOME/Desktop $HOME/.local; do 
    42                 [[ -L "$i" || -f "$i" ]] && rm -rf $i 
    43                 [ -d "$i" ] || mkdir -p $i 
    44                 chown $USER $i 
    45                 chmod 700 $i 
    46         done 
     49 # move user's dir back from /tmp 
     50 for i in $USERDIRS; do 
     51  rm -rf $HOME/$i 
     52  mkdir -p $HOME/$i 
     53  for d in cache socket tmp; do 
     54   rm -rf /tmp/${i}-${USER}/${d}-* 
     55  done 
     56  [ -d "/tmp/${i}-${USER}" -a -d "$HOME/$i" ] && rsync -a --delete /tmp/${i}-${USER}/ $HOME/$i/ 
     57  chmod 700 $HOME/$i 
     58 done 
    4759 
    48         # syncing user's kde settings 
    49         [ -d "$KDEHOME/share" ] && rsync -a --delete $KDEHOME/share/ $HOME/.kde/share/ 
    50  
    51         # syncing user's kde Autostart 
    52         [ -d "$KDEHOME/Autostart" ] && rsync -a --delete $KDEHOME/Autostart/ $HOME/.kde/Autostart/ 
    53  
    54         # syncing user's desktop 
    55         [ -d "$DESKTOP" ] && rsync -a --delete $DESKTOP/ $HOME/Desktop/ 
    56  
    57         # syncing user's .local 
    58         [ -d "$DOTLOCAL" ] && rsync -a --delete $DOTLOCAL/ $HOME/.local/ 
    59  
    60         # removing kdehome and desktop dirs 
    61         rm -rf $KDEHOME 
    62         rm -rf $DESKTOP 
    63         rm -rf $DOTLOCAL 
     60 # handle .cache and .gvfs 
     61 for i in .cache .gvfs; do 
     62  [ -e "/tmp/${i}-${USER}" ] && rm -rf /tmp/${i}-${USER} 
     63  [ -e "$HOME/$i" ] && rm -rf $HOME/$i 
     64 done 
    6465 
    6566fi 
     
    6768# umount given share 
    6869umount $MNTPT 
    69 status=$? 
     70mounted || exit 0 
     71sleep 5 
     72umount $MNTPT 
     73mounted || exit 0 
     74kill -9 `lsof -t $MNTPT` 
     75umount $MNTPT || umount -l $MNTPT 
     76RC="$?" 
    7077 
    71 # if unmounting fails kill processes which prevent $MNTPT from unmounting 
    72 # and do a second try 
    73 if [ "$status" -ne 0 ]; then 
     78exit $RC 
    7479 
    75         sleep 5 
    76         for i in `lsof | grep $MNTPT | awk '{ print $2 }'`; do 
    77                 kill -9 $i 
    78         done 
    79         umount $MNTPT 
    80         status=$? 
    81          
    82         # once again 
    83         if [ "$status" -ne 0 ]; then 
    84  
    85                 sleep 5 
    86                 for i in `lsof | grep $MNTPT | awk '{ print $2 }'`; do 
    87                         kill -9 $i 
    88                 done 
    89                 umount $MNTPT 
    90                 status=$? 
    91  
    92         fi 
    93  
    94 fi 
    95  
    96 # exit with umount status 
    97 exit $status 
    98  
Note: See TracChangeset for help on using the changeset viewer.