All I'd like user to see is a "full screen" command line interface running my program. Users can enter certain input when prompted to, but they shouldn't be able under any circumstances to stop the program, and i.e. go and browse the disk. No CTRL+Z, ALT+F4 and such. I must assume users will be tech-savy and will know all key shortcuts and workarounds there are. Also, ideally, there should be a key combination that prompts for password when pressed, and if password is correct program closes. I assume this part won't be hard, I am mentioning it just in a case.

Users will be supervised to some extent so I'm not afraid of them i.e. rebooting PC and doing funny things before autostart kicks in. But short of restarting PC they shouldn't have any ways to stop the program, or to multitask and use anything in the computer aside from my program. Is it realistically possible, what would you suggest?

OS is going to be Ubuntu, and I was thinking using Python, but I am open to any alternative. The app itself is going to be incredibly simple (matching users input against some data in file and printing feedback), the hard part for me is preventing users from closing it, so I can "learn" just about any language if some are better than others for this task.

I am not looking for exact implementation, more like how to get on the right track. Once I know what exactly am I looking for, I can google and figure implementation on my own. I hope this question is not entirely out of place here, and thank you in advance for your help.

| improve this question | | | | |
  • No, why? And how is this relevant? – Sejanus Apr 15 '15 at 12:51
  • 1
    install DOS! (ok, ok, or an OS that doesn't have a GUI layer such as Linux without a GUI installed, only having the monitor window available) – gbjbaanb Apr 15 '15 at 12:54
  • 4 8 15 16 23 42 - cultural reference from the TV series Lost – gbjbaanb Apr 15 '15 at 12:55
  • just FYI you can install windows 8 without GUI... and you can easily do this in linux... windows CE is viable too... – AK_ Apr 15 '15 at 13:39
  • Thanks, I know that, not sure what it has to do with what I am asking for, though. No GUI would surely prevent some casual users from browsing around, but I can't assume tech savy guys will never use it. – Sejanus Apr 15 '15 at 13:51

"Kiosk" applications like this are notoriously difficult to secure. Your best starting point is to ditch the traditional command line and implement your own shell in its entirety, and to make it the user's actual shell (i.e., via chsh), so they can't slip out of it.

| improve this answer | | | | |
  • 4
    "Kiosk" is the keyword you wanna search for. +1 for that alone. – Jörg W Mittag Apr 15 '15 at 13:04
  • 1
    This is also the usual way to do the same thing on Windows. Replace the shell (Windows Shell / Windows Explorer) or even the login screen (GINA / Winlogon / Credential Providers) with your app. – Jörg W Mittag Apr 15 '15 at 13:07

Not the answer you're looking for? Browse other questions tagged or ask your own question.