Rob Beard wrote: > We'd also like a script to run at logoff to reset the users password (so > they can't just log back on for another hour without asking first). For > this I was thinking of a script to reset the password using passwd. ... > I see in /etc/gdm there are two directories call PostLogin and > PostSession, has anyone actually used these?
Yes, me. /etc/gdm/PostLogin/default is called directly after graphical LOGIN before the graphical session starts (ie. it is a login script) /etc/gdm/PostSession/Default is called directly after graphical LOGOUT. I use /etc/gdm/PostLogin/Default to erase and re-create (from tar.gz) my guest account on my laptop, so that well-meaning but annoying geek friends who insist on "improving" the guest desktop setup, have their efforts wiped at the next subsequent login. You sound like you want /etc/gdm/PostSession/Default instead. In case you also want to wipe and re-create the entire account, I have supplied my /etc/gdm/PostLogin/default , /usr/local/bin/loadguest and /usr/local/sbin/saveguest scripts too. They are public domain. > as root after login, so I wonder if I could run my autologoff script > from there and at the end of the autologoff script have a line that > resets the password? (I presume any scripts executed from the Default > script will run as root too?) Yes and yes. Consider chown root.root and chmod 750 to prevent the users cat'ing the script to discover the password. -- Andrew Oakley ===== /etc/gdm/PostLogin/Default ===== #!/bin/bash if [[ "$LOGNAME" == "guest" ]] then /usr/local/bin/loadguest fi ===== /usr/local/bin/loadguest ===== Note that you can supply a parameter, the username. If absent it assumes "guest". Remember to chmod 755 this script. #!/bin/bash # Goes in /etc/gdm/PostLogin/Default # This script erases & re-creates a user home directory that has # previously been saved with saveguest username=$1 if [[ "$username" == "" ]] then username=guest fi if [[ -f /home/$username.tar.gz ]] then cd /home rm -rf $username/* tar xvfz /home/$username.tar.gz else echo "/home/$username.tar.gz does not exist or is not a regular file" fi ===== /usr/local/sbin/saveguest ===== Note the s in sbin! Must be RUN AS ROOT once you have set up the account the way you like it AND LOGGED OUT OF THAT ACCOUNT (if you don't log out, nasty things are left lying around like xauthority). Remember to chmod 755 this script. Note that you can supply a parameter, the username. If absent it assumes "guest". #!/bin/bash username=$1 if [[ "$username" == "" ]] then username=guest fi if [[ -d /home/$username ]] then cd /home mv -f $username.tar.gz $username-old.tar.gz tar cvfz $username.tar.gz $username else echo "/home/$username does not exist or is not a directory" fi -- [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-uk https://wiki.ubuntu.org/UKTeam/
