StudentControlPanelCompletion

Revision 5 as of 2006-06-20 08:30:48

Clear message

Summary

Roadmap for finishing the basic implementation of student-control-panel

Rationale

To control LTSP connections in a school environment, an application that interacts with the ltsp server and the clients is needed. An initial application called student-control-panel was uploaded to dapper, it currently implements basic connection control (it shows users and the ip of the client they are logged in to, enables to cut the connection for one, more or all users and shows the currently running processes of a single user)

More features are needed to provide a full student control application for school environments.

Use cases

Dr. Miller teaches biology in a ltsp equipped class, he has several students he suspects to secretly browse the web while he is not looking, with student-control-panel he is able to monitor the students desktops via vnc to see if his suspicion is true.

Miriam teaches about free software in a class that uses a ltsp setup, she wants do demonstrate several free software apps she wants to start up on all students desktops. She hits ctrl-a to select all students in student-control-panel and clicks on the execute button which brings up a dialog to execute a command on all selected desktop simultaneously.

Anselmo has one student he doesnt want to be able to access the commandline from his desktop, since this specific student is known to write harmful scripts, Anselmo right clicks on the students name in student-control-panel and selects the lock down option there. Pessulus pops up and he checks the "Disable Commandline" checkbox.

Scope

Easy handling of student ltsp connections.

Design and Implementation

  • Add kill option for commands in processlist (basic implementation done (button currently hidden in the UI), needs some trivial code to interconnect the kill button with processlist selection)
  • The x11vnc will have to be installed in the client chroot. The package will get a preseedable option that installs an initscript which starts it connected to localhost:0 and makes it read a custom password from a file thats located in the client chroot. student-control-panel will generate this password dynamically on every program startup (an md5sum of a unix timestamp should suffice here) and rewrite the password in the file.
  • Since the debian policy does not allow to run apt-get install from a postinst script, a "first start popup window" will be added, pointing the admin/user to a script (in /usr/share/doc/student-control-panel) which will install the x11vnc in the client chroot with the above described option preseeded.
  • find strategy for remote execution of programs for
    • selected students
    • DBUS solution. Student runs a dbus listener in their session, which listens for messages from Student Control Panel, asking them to run a command.
    • DBUS has the security built in to not accept any messages except from SCP (see http://dbus.freedesktop.org/doc/dbus-specification.html#auth-protocol for tech details). This is a simple and elegant solution.

  • fix display of commands in processlist (with icons, see gnome-system-monitor as an example)
  • add context menu to the student list to start pessulus for a selected user to modify settings on the fly. (Screenshots: http://www.gnome.org/~vuntz/pessulus/screenshots/ )

  • prepare plugin system so future enhancements can be easily added
    • What about something like nautilus-scripts? Simply provide a
      • standard area to drop scripts into, and they'll simply appear on the context menu. Environment variables can be set for userid, etc.

Code

Data preservation and migration

Outstanding issues

BoF agenda and discussion


CategorySpec