Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I want to create a C++ application that is to run on some Linux platform on a specific laptop computer. I do however not want the users of this laptop to use any other applications/system features than this program - much like the kiosk modes you would find on computers in a typical internet café.

One issue is that the laptop will be booted by the user, and such has to start my software automatically - leaving as little room as possible for the user to intervene with the process. It does not have to be completely secure, but it should be as close as possible.

What would be the best way to accomplish such a thing? Does there exist (free) Linux distributions specifically made for this (if not, I will probably use Arch Linux)? Are there any steps I could/should take in my program, or can I leave it all to the OS? Would creating my own little Linux distribution specifically for this be worth it?

share|improve this question
up vote 3 down vote accepted

You are probably looking for Sabayon :

Sabayon is a system administration tool to define and deploy desktop profiles for the GNOME desktop environment. It allows you to control such things as panel layouts, menu items, default gconf settings, as well as provide pre-defined defaults for some non-GNOME programs such as Firefox. It also makes use of the lockdown functionality of Pessulus. It does this by providing a "desktop within a window", allowing you to customize your desktop as you see fit, then recording your changes, to be applied to users by the sabayon-apply program at login time.

See also this article: Linux Kiosk : an Ubuntu / Gnome lockdown scenario.

share|improve this answer
This seems to be more oriented towards creating a special desktop for the user, a set GNOME configuration, which is not really what I am looking for. I don't need GNOME at all, really. Still, I'm going to look closer at both the distro and the article, there might be something of use there. – Oystein Nov 4 '10 at 19:28
I think Sabayon will work for what you're trying to accomplish. It should allow you to automatically start your software and ensure that only it can be run. I would add the following to harrymc's articles on this subject. – Wagnarock Nov 4 '10 at 20:21
That's the same link that harrymc gave :) How is Sabayon's performance on older computers? Can you strip it down to a minimum? – Oystein Nov 4 '10 at 20:56
Sabayon looks like only an administrative layer over Linux. Linux in general does pretty well on older computers, and there are many installation options for stripping it down. If Ubuntu isn't efficient enough, you may need to pass to one of the minimalist Linux distributions, but that's another headache. – harrymc Nov 5 '10 at 14:14
You get accepted answer as the link is excellent and really helped – Oystein Nov 5 '10 at 15:24

On any regular linux distro, running in single-user mode & passing your program to X as the only program to run (so without something like KDE/Gnome/xfce/whatever does the trick.

Something like this tutorial (strip out the firefox parts and substitute your own program). But searching for xinit+kiosk or xorg+kiosk provides a wealth of information.

Of course, proper precautions like disabling access to the BIOS & GRUB / bootloader is also needed, as is refusing to boot from usb/lan/cdrom/floppy.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .