Page 1 of 53 1231151 ... LastLast
Results 1 to 10 of 527

Thread: Account Lease time / Content filtering

  1. #1
    Join Date
    Jun 2007
    Location
    Charlotte, NC, USA
    Beans
    3,135
    Distro
    Ubuntu Development Release

    Account Lease time / Content filtering

    Timekeepr - Keep control of computer usage

    timekpr developers are .nedberg, forger

    This program will track and control the computer usage of your kids. You can limit their daily usage and configure periods when they cannot log in.

    Developers Even Nedberg and Savvas Radević (or .nedberg and forger) of the Ubuntu forums have rewritten the package using python as opposed to the bash shell script of it's previous form. timekpr now has a full featured interface with the ability to change and grow as needed. The current version supports Ubuntu, Kubuntu and Xbuntu. Please report any bugs you find. Current status indicated below:

    • Ubuntu -- Lucid, Karmic, Jaunty, Intrepid, Hardy
    • Kubuntu - Lucid, Karmic, Jaunty, Intrepid, Hardy
    • Xubuntu - Lucid, Karmic, Jaunty, Intrepid, Hardy


    INSTRUCTIONS

    Please add the software repository as listed below, and install from synaptic or terminal.

    Quote Originally Posted by .nedberg View Post
    The PPAs have changed. For Stable Versions Use:
    Code:
    deb http://ppa.launchpad.net/timekpr-maintainers/ppa/ubuntu jaunty main
    deb-src http://ppa.launchpad.net/timekpr-maintainers/ppa/ubuntu jaunty main
    For Beta Versions Use:
    Code:
    deb http://ppa.launchpad.net/nedberg/ppa/ubuntu jaunty main
    deb-src http://ppa.launchpad.net/nedberg/ppa/ubuntu jaunty main
    Follow these instructions for installing packages from these PPAs.
    Attached Images Attached Images
    Last edited by crjackson; May 3rd, 2010 at 03:43 AM. Reason: Add Latest FIles - Instructions
    Mac Pro 5,1 6-Core 3.33GHz, 48GB, Sapphire RX580
    Optical -- Apple Super Drive & MCE Internal Blu-ray
    512GB SM 970 Pro NVMe/HighPoint 7101A/10.14.5
    SonnetAllegro Pro USB 3/ 4TB WD/4TB - Barracuda

  2. #2
    Join Date
    Nov 2006
    Location
    Norway
    Beans
    795
    Distro
    Kubuntu 10.04 Lucid Lynx

    Re: Account Lease time / Content filtering

    Never used dansguardian before, but I found this thread: http://ubuntuforums.org/showthread.php?t=207008

    EDIT: Also have a look here: http://ubuntuforums.org/showthread.php?t=769671 for a gui to configure dansguardian.

    My children are not old enough to use computers yet, but I will have a look at this myself just to be prepared!
    Last edited by .nedberg; August 12th, 2008 at 07:12 PM.
    Open mind, open source!
    Keep control of computer usage with timekpr
    Screensaver for Amarok? AmarokScreenSaver
    My (Norwegian) blog about motorcycles and MotoGP

  3. #3
    Join Date
    Jun 2007
    Location
    Charlotte, NC, USA
    Beans
    3,135
    Distro
    Ubuntu Development Release

    Account Lease time - Timekeeper Developement

    Okay, I've found a home brewed script from this page called Waggle Dance it's supposed to do EXACTLY what I want, for EXACTLY the same reasons.

    I had a little permissions issue during setting up the time limits for my test account, but I overcame that with sudo -i

    I have two issues that I'm hoping someone (I posted to the script writer too) will help me with.

    In my test scenario, I gave the user 300 seconds of use. The script then added another 450 in grace time to log off. I watched the clock ticking in the time keeping file but here's the problem(s);

    1) None of the warning pop-ups activated (possibly due to allocated time was lower than grace period. I changed grace period to 0 but it had no effect).

    2) Once it kicked the test user off, it allowed an immediate re-login to the test account, and another 450 seconds were allowed thereby allowing the test user to login every few minutes. It would be annoying but a determined child would do that all night long.

    Could someone have a look at the script and help me modify it so that those problems are fixed please?

    Code:
    #!/bin/bash
    ###
    # timekpr.sh - simple 
    # watches gnome sessions and logs them out once the user has exceeded a set, per day limit
    # /var/lib/timekpr/$username.time hold a count of seconds user has had a gnome session
    # /var/lib/timekpr/$username hold the daily allowed seconds for the user
    #
    # you may need to install notify-send with: $apt-get install libnotify-bin
    #
    # Copyright 2008 Chris Jackson <chris@91courtstreet.net>
    #
    # This program is free software: you can redistribute it and/or modify
    # it under the terms of the GNU General Public License as published by
    # the Free Software Foundation, either version 3 of the License, or
    # (at your option) any later version.
    #
    # This program is distributed in the hope that it will be useful,
    # but WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    # GNU General Public License for more details.
    #
    # See <http://www.gnu.org/licenses/>. 
    #
    
    default_limit=87000 #all day
    grace_period=450
    poll_time=20
    
    #Ubuntu uses alternatives so we look for x-session-manager instead of gnome-session
    SESSION_MANAGER=x-session-manager
    
    # get the usernames and PIDs of sessions
    
    while(true); do
        sleep $poll_time
        pidlists=$( ps --no-heading -fC $SESSION_MANAGER | awk 'BEGIN{ FS=" " } { print $1 "," $2 }' )
        for pidlist in $pidlists; do
            # split username and pid - FIXME - I bet this would be faster with bash arrays and substitution 
            username=$( echo $pidlist | awk 'BEGIN{ FS=","} { print $1}' )
            pid=$( echo $pidlist | awk 'BEGIN{ FS=","} { print $2}' )
            if [[ ! -e "/var/lib/timekpr/$username" ]]
            then 
                echo $default_limit > /var/lib/timekpr/$username
            fi
            
            # if the time file is missing or was last touched yesterday, start over
            if [[ -e "/var/lib/timekpr/$username.time" && `( stat -c '%z' /var/lib/timekpr/$username.time|cut -c9,10 )` == `date +%d` ]]
            then 
                #add $poll_time seconds to it
                timekpr=$(( `cat /var/lib/timekpr/$username.time` + $poll_time ))
                echo $timekpr > /var/lib/timekpr/$username.time
            else
            	timekpr=$poll_time
                echo $timekpr > /var/lib/timekpr/$username.time
            fi
    
            echo $username, $pid, $timekpr
            
            if [[ $timekpr -gt `cat /var/lib/timekpr/$username` ]]
            then
                ## get the display and xauthority used by out session manager
                UDISPLAY=`grep -z DISPLAY \
                    /proc/$pid/environ | sed -e 's/DISPLAY=//'`
                XAUTHORITY=`grep -z XAUTHORITY \
                    /proc/$pid/environ | sed -e 's/XAUTHORITY=//'`
                
                # find DBUS session bus for this session
                DBUS_SESSION_BUS_ADDRESS=`grep -z DBUS_SESSION_BUS_ADDRESS \
                    /proc/$pid/environ | sed -e 's/DBUS_SESSION_BUS_ADDRESS=//'`
                # use it - give a warning, then another one 1/2 way through grace_period
                XAUTHORITY="$XAUTHORITY" DISPLAY="$UDISPLAY" DBUS_SESSION_BUS_ADDRESS="$DBUS_SESSION_BUS_ADDRESS" \
                    notify-send --icon=gtk-dialog-warning --urgency=critical -t 30000 "Daily Time Limit" "Your session time is about to expire! You have $grace_period sec. to save your work and logout."
                sleep $(($grace_period/2))   # FIXME: this gives other sessions a free grace_period added to their accounting
    
                XAUTHORITY="$XAUTHORITY" DISPLAY="$UDISPLAY" DBUS_SESSION_BUS_ADDRESS="$DBUS_SESSION_BUS_ADDRESS" \
                    notify-send --icon=gtk-dialog-warning --urgency=critical -t 30000 "Daily Time Limit" "Your session time is about to expire! You have $(($grace_period/2)) sec. to save your work and logout."
                sleep $(($grace_period/2))   # FIXME: this gives other sessions a free grace_period added to their accounting
    
                XAUTHORITY="$XAUTHORITY" DISPLAY="$UDISPLAY" DBUS_SESSION_BUS_ADDRESS="$DBUS_SESSION_BUS_ADDRESS" \
                    notify-send --icon=gtk-dialog-warning --urgency=critical -t 10000 "Shutting Down" "Shutting down session ($pid) now!" 
                # FIXME - should really check to see if user has logged out yet 
                sleep 10
                kill -HUP $pid    #this is a pretty bad way of killing a gnome-session, but we warned 'em
                
                ## uncomment the following to brutally kill all of the users processes
                sleep 10
                pkill -u $username  
                
                ## killing gnome-session should be more like:
                #DISPLAY=":0" XAUTHORITY="/tmp/.gdmEQ0V5T" SESSION_MANAGER="local/wretched:/tmp/.ICE-unix/$pid" su -c 'gnome-session-save --kill --silent' $username
                ## but this can still leave processes to cleanup - plus it's not easy to get SESSION_MANAGER
            fi
        done
    done
    Attached Files Attached Files
    Last edited by crjackson; October 1st, 2008 at 10:35 PM.
    Mac Pro 5,1 6-Core 3.33GHz, 48GB, Sapphire RX580
    Optical -- Apple Super Drive & MCE Internal Blu-ray
    512GB SM 970 Pro NVMe/HighPoint 7101A/10.14.5
    SonnetAllegro Pro USB 3/ 4TB WD/4TB - Barracuda

  4. #4
    Join Date
    Nov 2006
    Location
    Norway
    Beans
    795
    Distro
    Kubuntu 10.04 Lucid Lynx

    Re: Account Lease time / Content filtering

    To get the notifications:
    Code:
    # you may need to install notify-send with: $apt-get install libnotify-bin
    Looks like it will not prevent a relogin. Short grace_period should "fix" this...
    Open mind, open source!
    Keep control of computer usage with timekpr
    Screensaver for Amarok? AmarokScreenSaver
    My (Norwegian) blog about motorcycles and MotoGP

  5. #5
    Join Date
    Jun 2007
    Location
    Charlotte, NC, USA
    Beans
    3,135
    Distro
    Ubuntu Development Release

    Account Lease time - Timekeeper Developement

    Quote Originally Posted by .nedberg View Post
    To get the notifications:
    Code:
    # you may need to install notify-send with: $apt-get install libnotify-bin
    Looks like it will not prevent a relogin. Short grace_period should "fix" this...
    Okay, I installed the libnotify-bin and the grace period was changed to 0. I'll try it again and see what happens.
    Last edited by crjackson; October 1st, 2008 at 10:36 PM.
    Mac Pro 5,1 6-Core 3.33GHz, 48GB, Sapphire RX580
    Optical -- Apple Super Drive & MCE Internal Blu-ray
    512GB SM 970 Pro NVMe/HighPoint 7101A/10.14.5
    SonnetAllegro Pro USB 3/ 4TB WD/4TB - Barracuda

  6. #6
    Join Date
    Jun 2007
    Location
    Charlotte, NC, USA
    Beans
    3,135
    Distro
    Ubuntu Development Release

    Account Lease time - Timekeeper Developement

    Quote Originally Posted by crjackson View Post
    Okay, I installed the libnotify-bin and the grace period was changed to 0. I'll try it again and see what happens.
    Installing libnotify gave me the missing notifications. Lowering the grace period doesn't seem to do anything at all.


    Anyone who knows how to make this work can feel free to jump in here...
    Last edited by crjackson; October 1st, 2008 at 10:36 PM.
    Mac Pro 5,1 6-Core 3.33GHz, 48GB, Sapphire RX580
    Optical -- Apple Super Drive & MCE Internal Blu-ray
    512GB SM 970 Pro NVMe/HighPoint 7101A/10.14.5
    SonnetAllegro Pro USB 3/ 4TB WD/4TB - Barracuda

  7. #7
    Join Date
    Nov 2006
    Location
    Norway
    Beans
    795
    Distro
    Kubuntu 10.04 Lucid Lynx

    Re: Account Lease time / Content filtering

    OK.

    I tested the script and it worked fine for me. I successfully locked myself out of my own computer! It did however let me log in again an imediatly showed a notifier informing I was about to get logged out again.

    I sat grace_period to 50.
    /var/lib/timekpr/<my username> had 100 in it
    poll_time was unchanged at 20
    I slightly edited the time for the pop-up notifiers from 30000 to 10000, giving a shorter notifier.

    I did not try with grace_period = 0, that might be your problem... Set it low, but not 0. Allow someone to log out and save their work.

    If the daily limit is set to 100 sec, grace_period to 50 and poll_time to 20, it will acctually take 180 seconds before the user is logged out.
    Open mind, open source!
    Keep control of computer usage with timekpr
    Screensaver for Amarok? AmarokScreenSaver
    My (Norwegian) blog about motorcycles and MotoGP

  8. #8
    Join Date
    Jun 2007
    Location
    Charlotte, NC, USA
    Beans
    3,135
    Distro
    Ubuntu Development Release

    Account Lease time - Timekeeper Developement

    Quote Originally Posted by .nedberg View Post
    OK.

    I tested the script and it worked fine for me. I successfully locked myself out of my own computer! It did however let me log in again an imediatly showed a notifier informing I was about to get logged out again.

    I sat grace_period to 50.
    /var/lib/timekpr/<my username> had 100 in it
    poll_time was unchanged at 20
    I slightly edited the time for the pop-up notifiers from 30000 to 10000, giving a shorter notifier.

    I did not try with grace_period = 0, that might be your problem... Set it low, but not 0. Allow someone to log out and save their work.

    If the daily limit is set to 100 sec, grace_period to 50 and poll_time to 20, it will acctually take 180 seconds before the user is logged out.
    Cool, perhaps the 0 is the problem then. I'll give it a shot and see what that does.

    Do you know enough about scripting to answer this one? Would it be possible to include some code that would check the date/time and only allow access between 0700-0000 hours each day?

    I'm really trying to nail this thing down. Thanks a bunch.
    Last edited by crjackson; October 1st, 2008 at 10:37 PM.
    Mac Pro 5,1 6-Core 3.33GHz, 48GB, Sapphire RX580
    Optical -- Apple Super Drive & MCE Internal Blu-ray
    512GB SM 970 Pro NVMe/HighPoint 7101A/10.14.5
    SonnetAllegro Pro USB 3/ 4TB WD/4TB - Barracuda

  9. #9
    Join Date
    Nov 2006
    Location
    Norway
    Beans
    795
    Distro
    Kubuntu 10.04 Lucid Lynx

    Re: Account Lease time / Content filtering

    Pretty sure I can help with that! But I might not get back to you before after the weekend.
    Open mind, open source!
    Keep control of computer usage with timekpr
    Screensaver for Amarok? AmarokScreenSaver
    My (Norwegian) blog about motorcycles and MotoGP

  10. #10
    Join Date
    Jun 2007
    Location
    Charlotte, NC, USA
    Beans
    3,135
    Distro
    Ubuntu Development Release

    Account Lease time - Timekeeper Developement

    I slightly edited the time for the pop-up notifiers from 30000 to 10000, giving a shorter notifier.
    Searching through the script, I found two(2) instances referencing the number 30000. If I wanted to change that to 10000 as you have, would I simply change BOTH of those values?
    Last edited by crjackson; October 1st, 2008 at 10:37 PM.
    Mac Pro 5,1 6-Core 3.33GHz, 48GB, Sapphire RX580
    Optical -- Apple Super Drive & MCE Internal Blu-ray
    512GB SM 970 Pro NVMe/HighPoint 7101A/10.14.5
    SonnetAllegro Pro USB 3/ 4TB WD/4TB - Barracuda

Page 1 of 53 1231151 ... LastLast

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •