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