/usr/bin/scp-client is in thin-client-manager-backend 0.5.1-0ubuntu9.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | #!/usr/bin/env python
import dbus
import dbus.service
import dbus.glib
import gobject
import os
import signal
import subprocess
import pwd
import gobject
import sys
if not os.getenv('LTSP_CLIENT'):
sys.exit(0)
username = pwd.getpwuid(os.getuid())[0]
ppid = os.getppid()
bus = dbus.SystemBus()
#remote_object = bus.get_object("com.ubuntu.StudentControlPanel", "/SCPObject")
#iface = dbus.Interface(remote_object, "com.ubuntu.StudentControlPanel.Comm")
def new_message(message):
print "reser"
for user in message[0]:
if user == username:
if message[1][0] == "kill":
subprocess.Popen(['killall', '-9', '-u', user, message[2][0]])
print message
#os.kill(int(message[2][0]), signal.SIGTERM)
if message[1][0] == "exec":
subprocess.Popen(message[2][0], shell=True)
print "execing"
if message[1][0] == "mess":
print "messaging"
subprocess.Popen(['zenity', '--info', '--text="' + message[2][0] + '"', '--title="Message from admin"'])
if message[1][0] == "lock":
subprocess.Popen(['gnome-screensaver-command', '--lock'])
if message[1][0] == "unlock":
subprocess.Popen(['gnome-screensaver-command', '--deactivate'])
def parent_poller(ppid):
listutmp = subprocess.Popen(['ps ax| grep "^[ ]*' + str(ppid) + '"'], shell=True, stdout=subprocess.PIPE)
listu = listutmp.stdout.read()
if not listu:
sys.exit(0)
return True
bus.add_signal_receiver(new_message,
signal_name='GotSignal',
dbus_interface='com.ubuntu.StudentControlPanel.Comm',
path='/SCPObject')
parent_timer=gobject.timeout_add (10000, parent_poller, ppid)
mainloop = gobject.MainLoop()
mainloop.run()
|