Parental controls with different settings for different users

Solution 1:

Gnome Nanny looks like it would meet the needs of your friends perfectly. To quote the website:

Gnome Nanny is an easy way to control what your kids are doing in the computer. You can limit how much time a day each one of them is browsing the web, chatting or doing email. You can also decide at which times of the day the can do this things. Gnome Nanny filters what web pages are seen by each user, so you can block all undesirable webs and have your kids enjoy the internet with ease of mind, no more worries!

Nanny Admin Console

Nanny Web Filter

As you can see, Nanny can set different restrictions for each account. nanny 2.29.4-0ubuntu4 is available in the maverick and natty universe repositories. It is also part of Edubuntu. Screenshots of Nanny running on Edubuntu are available on the Edubuntu website.

Solution 2:

DansGuardian ;-), but with a twist -- the trick is to set up transparent proxying (filtered by DansGuardian) and use iptables to redirect children's accounts only to the proxy. Parents would have normal direct connection to the network.

Here's a sketch of how to do it:

  1. Set up DansGuardian and Squid for transparent proxying. Ignore all the iptables/redir setup, because we're doing it in later steps.

  2. Set up a netfilter chain for transparent proxying:

     iptables -t nat -N transparent-proxy 
     iptables -t nat -A transparent-proxy -p tcp --dport 80 -j DNAT --to-destination :8080
    

    (Assuming you have configured DansGuardian to listen on port 8080.)

  3. Now you should set up an iptables chain so that only packets originating from selected local accounts are sent to the transparent proxy; all the others flow undisturbed. Netfilter has a owner match for this:

    iptables -t nat -A OUTPUT -m owner --uid-owner child_uid -j transparent-proxy
    

Solution 3:

There are several firefox addons that offer content filtering. I believe this is a good solution for what you want because browser extensions are installed on a per-user basis.

You can find such addons on the firefox addons site. An example of a content filtering extension is ProCon Latte.

Besides web safety, children should have a seperate non-administrator login, to prevent them doing system changing activities such as installing new software (such as a different browser to bypass the parental controls).