StudentControlPanelCompletion
|
Size: 4096
Comment:
|
Size: 4653
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 6: | Line 6: |
| * '''Packages affected''': | * '''Packages affected''': student-control-panel, x11vnc |
| Line 14: | Line 14: |
| 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) | To control LTSP connections in a school environment, an application that interacts with the ltsp server and the clients is needed. An initial implementation of this application tailored for the Ubuntu LTSP implementation 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) |
| Line 28: | Line 28: |
| Easy handling of student ltsp connections. | Easy handling of student LTSP connections. |
| Line 32: | Line 32: |
| === Killing processes === |
|
| Line 33: | Line 35: |
| * 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. | |
| Line 36: | Line 36: |
| * 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. | === Remote desktop access === |
| Line 38: | Line 38: |
| * 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. |
* The x11vnc package 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. |
| Line 43: | Line 40: |
| * 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. |
* Since the debian policy does not allow to run apt-get install from a postinst script, a "first start popup window" will be added having a checkbox "Dont show this window again" and a button "Install remote desktop access" executing a script (in /usr/share/doc/student-control-panel) which will install x11vnc in the client chroot with the above described option preseeded. |
| Line 51: | Line 42: |
| === Code === | === Execution of programs in the users session(s) === |
| Line 53: | Line 44: |
| === Data preservation and migration === | * A student-control-panel listener service will be installed in /usr/share/dbus-1/services/ which will listen for messages from student-control-panel and execute the requested applications in the users session. 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. === Lockdown on the fly === * A context menu will be added to the student list to start pessulus for a user to modify settings on the fly. (Screenshots: http://www.gnome.org/~vuntz/pessulus/screenshots/), that will allow things like disabling commandline access or locking down browser functionallity if epiphany is used by the student. === Plugins === * The UI will get a plugins menu. The directory /usr/share/student-control-panel/plugins will be read on every program start. Python scripts added to that dir will show up in that menu. student-control-panel will export the userlist of the selected users from the GUI in the variable $SCPUSERS for these scripts, this will make it very easy for people to enhance the program and to contribute the plugins back into a student-control-panel-plugins package. |
| Line 57: | Line 56: |
| == BoF agenda and discussion == | * Determine the best default options (compression, scaling of the windowsize etc) for x11vnc to be added to the initscript |
Launchpad Entry: https://launchpad.net/distros/ubuntu/+spec/student-control-panel-completion
Created: Date(2006-06-09T00:49:46Z) by OliverGrawert
Contributors: OliverGrawert
Packages affected: student-control-panel, x11vnc
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 implementation of this application tailored for the Ubuntu LTSP implementation 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
Killing processes
- 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)
Remote desktop access
- The x11vnc package 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 having a checkbox "Dont show this window again" and a button "Install remote desktop access" executing a script (in /usr/share/doc/student-control-panel) which will install x11vnc in the client chroot with the above described option preseeded.
Execution of programs in the users session(s)
A student-control-panel listener service will be installed in /usr/share/dbus-1/services/ which will listen for messages from student-control-panel and execute the requested applications in the users session. 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.
Lockdown on the fly
A context menu will be added to the student list to start pessulus for a user to modify settings on the fly. (Screenshots: http://www.gnome.org/~vuntz/pessulus/screenshots/), that will allow things like disabling commandline access or locking down browser functionallity if epiphany is used by the student.
Plugins
- The UI will get a plugins menu. The directory /usr/share/student-control-panel/plugins will be read on every program start. Python scripts added to that dir will show up in that menu. student-control-panel will export the userlist of the selected users from the GUI in the variable $SCPUSERS for these scripts, this will make it very easy for people to enhance the program and to contribute the plugins back into a student-control-panel-plugins package.
Outstanding issues
- Determine the best default options (compression, scaling of the windowsize etc) for x11vnc to be added to the initscript
StudentControlPanelCompletion (last edited 2008-08-06 16:27:07 by localhost)