Profile Configuration

Profile Considerations:

The basic L4A classroom installation uses 25 users (tsuser1 to tsuser 25) and one teacher account (teacher). Those users come preconfigured and don't need any configuration. However experience shows that after a short time the user profiles need some cleaning activities.

We therefore craeted a script called initx2go which does the following tasks:

  • Erasing all tsuser accounts in LDAP

  • Erasing all tsusers homedirectories

  • Recreate all tsusers with default passwords and profiles

  • Recreate their homedirectories (clean now)

  • Preconfigure Firefox (Iceweasel) to locahost index website

  • Assign edubuntu desktop background

  • Preconfigure Thunderbird's mail accounts.

This is our script (from dozu):

#!/bin/bash

PASSWORD="xxxxxxxx" # when you change pw don't forget to change the thunderbird keyfile
MAXTSUSER=25 # when you change this value don't forget to change group ownership in group users and fuse
LDAPADMINPW="yyyyyyyy"

for ((I=1;$I<=$MAXTSUSER;I++)); do

#delete old user
ldapdelete -h localhost -D "cn=ldapadmin,o=linux4afrika,c=tz" -x -w $LDAPADMINPW "uid=tsuser$I,ou=people,o=linux4afrika,c=tz"

#delete existing home directrories
rm -fr /home/tsuser$I

#add new user
PASSWORDHASH=`slappasswd -s $PASSWORD`
let USERID=1100+$I
echo "dn: uid=tsuser$I,ou=people,o=linux4afrika,c=tz" > /tmp/newUser.ldiff
echo "cn: tsuser$I Linux4Afrika" >> /tmp/newUser.ldiff
echo "description: tsuser$I Linux4Afrika" >> /tmp/newUser.ldiff
echo "displayName: tsuser$I Linux4Afrika" >> /tmp/newUser.ldiff
echo "gecos: tsuser$I Linux4Afrika" >> /tmp/newUser.ldiff
echo "gidNumber: 100" >> /tmp/newUser.ldiff
echo "givenName: tsuser$I" >> /tmp/newUser.ldiff
echo "homeDirectory: /home/tsuser$I" >> /tmp/newUser.ldiff
echo "jpegPhoto:: iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAYh0lEQVR4nO2cf5Qc"
echo " VAeQJMVmmtvwL8bb7AOetn8gpgWEq5s5H9n4g0FMDS6wZuzlXn9KbK8188VEoh/M98Anycyrrnr"
...
...
...
echo " l+IIBhGAmgGzguTPFj5X/eoxmPIrAY+I7W+v9U6k83rsXjXuDnwhQDCvW+MMXPMRkufly/r69NW"
echo " f4p796SRX5yeNdtXVNOEv8Xz8B/qfL/AF8ohReEcZHwAAAAAElFTkSuQmCC" >> /tmp/newUser.ldiff
echo "loginShell: /bin/bash" >> /tmp/newUser.ldiff
echo "objectClass: top" >> /tmp/newUser.ldiff
echo "objectClass: person" >> /tmp/newUser.ldiff
echo "objectClass: organizationalPerson" >> /tmp/newUser.ldiff
echo "objectClass: inetOrgPerson" >> /tmp/newUser.ldiff
echo "objectClass: posixAccount" >> /tmp/newUser.ldiff
echo "objectClass: shadowAccount" >> /tmp/newUser.ldiff
echo "sn: Linux4Afrika" >> /tmp/newUser.ldiff
echo "uid: tsuser$I" >> /tmp/newUser.ldiff
echo "uidNumber: $USERID" >> /tmp/newUser.ldiff
echo "userPassword: $PASSWORDHASH" >> /tmp/newUser.ldiff
ldapadd -h localhost -D "cn=ldapadmin,o=linux4afrika,c=tz" -x -w $LDAPADMINPW -f /tmp/newUser.ldiff
#rm -f /tmp/newUser.ldiff

#break for slow ldap ;)
sleep 1

#create user directory
cp -r /etc/skel /home/tsuser$I
chmod 700 /home/tsuser$I
chown -R tsuser$I.users /home/tsuser$I

#fix thunderbird profile
SEDSCRIPTSTRING="s/SKELUSERNAME/tsuser$I/g"
sed -e $SEDSCRIPTSTRING -i /home/tsuser$I/.mozilla-thunderbird/*default/prefs.js
sed -e $SEDSCRIPTSTRING -i /home/tsuser$I/.mozilla-thunderbird/*default/panacea.dat
sed -e $SEDSCRIPTSTRING -i /home/tsuser$I/.mozilla-thunderbird/*default/signons.txt
sed -e $SEDSCRIPTSTRING -i /home/tsuser$I/.mozilla-thunderbird/*default/secmod.db

#fix firefox profile
SEDSCRIPTSTRING="s/SKELUSERNAME/tsuser$I/g"
sed -e $SEDSCRIPTSTRING -i /home/tsuser$I/.mozilla/firefox/*.default/secmod.db


done