Launchpad Entry: https://launchpad.net/distros/ubuntu/+spec/gdm-guest-login
Created: 2006-06-23 by JonathanCarter
Packages affected: gdm
GDM will be patched or extended to include guest login capability.
Rationale & Use Case
Many schools and Internet cafe's often have casual users. Many people enable passwordless login, and then create passwordless guest accounts. The ideal would be to have a guest login button on GDM, where a random user will be auto-created, and deleted after the sessions. This session could then be deleted after the user has logged out.
Ideally, the user should be able to use their USB device or a network share as a persistent home, in a similar way they would do with a live cd.
Scope and Design
In order to implement this feature, modifications may have to be made to GDM. A restricted profile should be created for this kind of user, and the session should check for a persistent home and prompt the user about this on login.
BoF Agenda and discussion
JonathanCarter - Quick introduction to specification
Spec Subscribers - discuss roadblocks, suggestions and improvements.
- The user should not be allowed to modify/install software, including plugins, that will remain after their session. The guest account would then prevent security issues such as installing keyloggers in a webbrowser.
As long as the guest accounts doesn't have sudo rights (which they won't) you are fine -- DagSverreSeljebotn2
The ideas of DagSverreSeljebotn2
I'll try to schetch some thoughts - I'm new to the Ubuntu community so I'm trying not to step on anyones toes though I believe this could be placed above, someone incorporate it if they want. (PS. I'll be interested in helping to code this approach, send me an email.)
- Clearly seperate what goes into GDM and what goes into a seperate "guest system package"
In GDM: Add hooks in gdm.conf, like PresetAccountSetup0=/usr/lib/guest-system/setup-new-guest. The hook will return a username to log in as (on stdout, perhaps). Probably the theme engine must be extended to allow such a login as an action (ie, make a PresetAccount-button with a guest caption and link it to the script above). Note: This is a more generic approach - it is then possible to make a script always returning "bob" if you want people to be able to log in as a shared account which keeps data.
In guest system package: The setup and teardown guest account scripts. 15 lines of Bash will suffice I think. Either allocate an account, or perhaps better some places (because how to add an account is not entirely standard, consider complex LDAP setups etc that will be in use for many schools where this will be wanted) simply have a pool of guest users and lock them as they are used (recreate the home dirs though).
If "special behaviour" is wanted in Kiosk mode or similar, I propose to simply put scripts in /etc/X11/Xsession.d - they will be able to determine if the current user is a guest user and act accordingly. What I'm not certain about is whether more info than the username should be passed from the PresetAccountSetup gdm-initiated script to the xsession - perhaps PresetAccountSetup should be able to set environment variables, for instance.