Jailing utilisateur pour programme graphique en linux

J’ai un projet pour créer un programme qui empêche l’utilisateur d’échapper à un programme GUI. Le programme est conçu pour permettre aux étudiants de passer des examens. Le programme contient une page de navigateur Web.

J’ai regardé autour de moi et demandé à différents endroits comment je devais le faire et on m’a recommandé Qt . J’ai maintenant des doutes à ce sujet …

J’utilise Ubuntu 9.04 64 bits.

Selon vous, quelle est la meilleure solution pour emprisonner les utilisateurs dans les programmes GUI?

Tout d’abord, voyez cette réponse .

La meilleure façon d’empêcher les utilisateurs d’utiliser autre chose est d’utiliser le mode plein écran et de ne pas démarrer du tout un gestionnaire de fenêtres. Il suffit donc de démarrer X, puis votre application et rien d’autre.

[EDIT] Certaines choses dont vous devez vous occuper:

  • Désactiver le basculement vers la console texte (généralement CtrlAltF1 .. F10 )
  • Tuer le serveur X ( CtrlAltRetour arrière )
  • Touches Magiques ( AltSysRq -…)

Comme vous le voyez, cela peut devenir arbitrairement complexe. Par conséquent, je suggère de fermer certains des trous et de laisser les pirates informatiques perdre leur temps sur les autres. S’ils veulent passer leur temps à pirater l’ordinateur plutôt que sur le test, c’est OK.

Qu’est-ce que vous essayez d’empêcher?

Je pense que l’essentiel est une ressortingction pour s’assurer qu’ils ne recherchent pas les réponses à Google.

En tant qu’approche complètement différente: Criple la stack de réseau au point où elle peut (à peu près) atteindre uniquement le ou les serveurs requirejs.

Cela peut être fait avec quelques parameters (relativement efficaces) et simples:

  • Aucune passerelle par défaut, uniquement une passerelle pour le sous-réseau où se trouve le serveur d’examen.
  • Aucun serveur DNS, uniquement un fichier hôte fixe (OU un serveur DNS d’examen contenant uniquement les serveurs d’examen).

Ces parameters peuvent même être atteints en réglant le serveur DHCP. Cela facilite le «criple / uncriple» d’une salle d’entraînement complète avec un réglage et un redémarrage de tous les systèmes.

La première chose à faire est de désactiver la combinaison de touches Ctrl-Alt-Backspace afin d’empêcher les utilisateurs agaçants d’éteindre votre serveur X.

Quand il s’agit de savoir quoi écrire, je pense que l’idée de Qt de vos amis est bonne, vous pouvez probablement écrire le programme dans son intégralité sur quelque 50 lignes. Si tout ce qui vous intéresse, ce sont les boutons “Home”, “Back” et “Forward”, vous pouvez créer une simple barre d’outils et utiliser le widget QWebView pour effectuer votre visualisation sur le Web. Cela empêcherait l’utilisateur d’aller où que ce soit, car ils n’auraient pas de barre d’adresse, et ils pourraient toujours faire leur test.

Si vous souhaitez utiliser un moteur autre que WebKit, vous allez probablement devoir travailler beaucoup plus et WebKit devrait fonctionner sur la plupart des sites Web.

Je pense que la meilleure solution est les surveillants et l’enregistrement vidéo ou la journalisation du système pour une utilisation inacceptable (par exemple, des instantanés de liste de processus).

Quel est votre plan pour empêcher les gens d’apporter des matériaux? Ou consultez leur iPhone lors de l’examen? Ou demander à leurs voisins? Vous n’avez pas besoin de technologie pour résoudre un problème de politique.