Wednesday, June 25, 2008

Locking Down Xubuntu LTSP

One of the most annoying things I've had to deal with this year in the lab is students constantly changing settings on the Windows 2000 computers. It has varied from the mostly harmless (pictures of a student's cat on the desktop) to the mildly annoying (students changing the theme to have tiny fonts and garish colors) to the embarassing and offensive (Family Guy characters floating on a raft of blow-up women tiled across the desktop).

Sadly, an even more annoying experience has been trying to find an easy way to lock these settings down with Ubuntu. There are lots of options out there (gconf editor, KDE kiosk) but many of the ones I tried had flaws of some kind. The most difficult thing to fix seemed to be locking down the backdrop picture. Unfortunately this was also one of the most important.

I do think I've finally solved my problem though, and while the following steps are specific to Xubuntu and XFCE, they may be transferrable to GNOME or KDE at least in part.

The solution began with this page on the kiosk mode in XFCE:
http://wiki.xfce.org/howto/kiosk_mode

Here is what my kioskrc file looks like:

[xfdesktop]
UserMenu=aeinstein
CustomizeBackdrop=aeinstein
CustomizeDesktopMenu=aeinstein
CustomizeWindowlist=aeinstein
CustomizeDesktopIcons=aeinstein

[xfce4-panel]
CustomizePanel=aeinstein

[xfce4-session]
CustomizeSplash=aeinstein
CustomizeChooser=aeinstein
CustomizeLogout=aeinstein
CustomizeCompatibility=aeinstein
Shutdown=aeinstein
CustomizeSecurity=aeinstein

Once the kioskrc file is placed in etc/xdg/xfce4/kiosk it locks down everything for all users except user "aeinstein"

Since I also wanted a custom backdrop on all the student computers I made one in GIMP, named it "xubuntu-jmak.png" and saved it in usr/share/xfce4/backdrops

This basically just replaces the default backdrop that xubuntu looks for when a user logs in.

I also wanted a custom homepage for all the student computers so I created a file called "user.js" in usr/lib/firefox-3.0/defaults/profile

Here is what my user.js file looks like:

user_pref("browser.startup.homepage", "http://www.aeacs.org");
user_pref("browser.startup.homepage_reset", "http://www.aeacs.org");

The custom homepage only works for users who have never logged on before though.

The real test will come next year when the students are using it all the time, but for now I think I'm pretty well set. Cheers! -joe