This file is indexed.

/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()