Time Is up!
Now that the kiddos are idle and asking to use the computer (watch videos rather) the script below, with the right permissions (root), can be used to abruptly terminate the user's session (just a minute I'm almost done!) when the timer expires. And you don't even have to be there.
Usage: ./kickuser.py username time
time is in minutes
>cat kickuser.py
Usage: ./kickuser.py username time
time is in minutes
>cat kickuser.py
#!/usr/bin/python
# Python script to time out a user.
# basically I'm allotting some time for a given user to use the system and after
# the time is up, I zap the user pretty mean eh?
# after time expires destroy all programs used by that user, time is given in seconds
import time
import threading
import sys
import os
username = sys.argv[1] # the username is a string
timeout = sys.argv[2] # the time out is in minutes
class Timer(threading.Thread):
def __init__(self, seconds):
self.runTime = seconds
threading.Thread.__init__(self)
def run(self):
time.sleep(self.runTime)
cmd = 'ps -U' + username + ' | awk \'{print $1}\''
for pid in os.popen(cmd).readlines():
kill_command = "kill -9 " + pid
print kill_command
os.system(kill_command)
#now lock account
lock_cmd = "passwd -l" + username
os.system(lock_cmd)
t = Timer(int(timeout) * 60 )
#start the timer
t.start()
print "setting time out for " , username , " " , timeout , "minutes"
And that's that. Easy to execute and timely executed.


Comments