Start GNU/Linux Virtuelle Wächterkarte für Linux mit Ofris

Virtuelle Wächterkarte für Linux mit Ofris

2827
11

Anfang August ging das Programm Ofris durch die Blogosphäre. Mit diesem Programm kann man ein Linux-System für den Einsatz in einem Internet-Cafe oder einer öffentlichen Surfstation vorbereiten. Der Clou, nach einem Neustart wird der Inhalt des Home-Verzeichnisses oder aller Home-Verzeichnisse aus einer Kopie zurückgespielt. Das Programm ähnelt also der Funktion von Wächterkarten oder Programmen wie Deep Freeze für Windows. Ich hatte bislang keine Zeit mir das mal genauer anzusehen, doch an solchen Programmen besteht ja immer wieder Interesse.

Das Programm (oder besser Skript, denn viel Know-How steckt nicht dahinter) stammt von Muhammad Faruq Nuruddinsyah und wurde auf der indonesischen Webseite TahuTEK.net (Übersetzung von Google) vorgestellt. Die Installation unter Ubuntu ist simple, da es das Programm mittlerweile in einem PPA gibt. Über…

$ sudo add-apt-repository ppa:tldm217/tahutek.net
$ sudo apt-get update && sudo apt-get install ofris-en

…kann man die englische Version des Skriptes installieren. Um nun einen Account einzufrieren muss man das Programm ausführen…

$ ofris-en

…und dann im nachvollgenden Dialog eine der Optionen wählen. Man kann das System für den aktuellen Benutzer, für einen anzugebenden Benutzer oder für alle User des Systems sperren.

Ofris in Aktion

Die weitere Funktionalität ist recht selbsterklärend. Friert man bspw. den Account des Users „test“ ein, loggt sich bei diesem ein, ändert ein paar Dinge (die im Homeverzeichnis abgespeichert werden!) und startet dann das System neu, dann ist wieder alles auf dem alten Stand.

Wie arbeitet Ofris?

Schaut man sich das Skript /usr/bin/ofris-en etwas genauer an, dann findet man ein bisschen was zur Funktionsweise heraus. Das Skript legt den Ordner /etc/.ofris/ an, und kopiert beim „Einfrieren“ eines Users die Daten via rsync aus dessen Homeverzeichnis nach /etc/.ofris/benutzername

[...]
sudo rsync -a --delete /home/$ofris_user /etc/.ofris/
[...]

Danach wird ein Eintrag in der /etc/rc.local gemacht, der bei einem Neustart die Daten wieder zurückkopiert und neu dazugekommene Dateien/Ordner löscht.

$ cat /etc/rc.local
[...]
sudo rsync -a --delete /etc/.ofris/test/ /home/test/
exit 0

Somit ist das Homeverzeichnis des Users wieder auf dem ursprünglichen Stand. Das Skript ist handwerklich etwas „unkonventionell“ aufgebaut, erfüllt aber seinen Zweck.

Reset nicht nur bei einem Neustart!

Eleganter wäre es natürlich das Ganze beim Start des X-Servers bzw. vor dem Einloggen eines Benutzers auszuführen. Daher dachte ich an einen Upstart-Eintrag wie bspw. /etc/init/ofris.conf

# Reset data before gdm starts
start on starting gdm
exec rsync -a --delete /etc/.ofris/test/ /home/test/

…das ersetzt zwar den Eintrag in die rc.local. Allerdings wird wohl GDM nach dem Ausloggen nicht mehr neu gestartet, somit wird auch ofris nicht mehr ausgeführt und nach dem Einloggen ist nach wie vor alles beim Alten. Von daher bleibt in meinen Augen nur noch das Bearbeiten der /etc/gdm/PreSession/Default übrig. Fügt man dort den rsync-Befehl ein…

#!/bin/sh
[...]
/sbin/initctl -q emit desktop-session-start DISPLAY_MANAGER=gdm
rsync -a --delete /etc/.ofris/test/ /home/test/

…dann werden vor dem Start einer Session automatisch alle Daten des Users „test“ zurückgesetzt. Ist Ofris jetzt ein Ersatz für eine Wächterkarte? Definitv nein, dazu könnte man immer noch genug am System verbasteln. Doch generell taugt das Ding schon für einfache „Surfstationen“. Allerdings sollten die Benutzer deutlich vor Datenverlusten gewarnt werden. Nicht dass die Überraschung nach dem nächsten Log-In groß ist.

11 Kommentare

    • Yep, das weiß ich. Aber schreib mit mal über das Kontakt-Formular was a uTorrent so besonders ist? Ich kenne das

      > Web-based remote control daemon
      > Multiple simultaneous downloads
      > Configurable bandwidth scheduler
      > Quick-resumes interrupted transfers

      Das können andere auch

      > Global and per-torrent speed limiting

      Ist ja auch keine Magie

      > Trackerless support (Mainline DHT)

      Da hört jetzt mein Wissen auf. Kann das nur uTorrent? Was bringts? Warum machen P2P-Fans so ein Tohuwabohu drüber? Ich freue mich ja, wenn bekannte Programme Linux-Versionen veröffentlichen, aber irgendwie weiß ich nicht warum sich das sooooo viele gewünscht haben. Schreib mir das am besten per Mail. Dann zerstückeln wir diesen Kommentar-Thread nicht 🙂

  1. Also in unserer UniBib stehen Linux rechner mit KDE… Weiß nich mehr wies genau ging, aber ich hab auf irgendeinen Knopf gedrückt und die „Session wurde zurückgesetzt“.
    Bringt KDE des mit oder haben sich da ein paar Informatik-Studenten ausgetobt? 😀

  2. Das ist aber eine nicht so tolle Lösung. Besser wäre es, wenn man die Schreibzugriffe auf das Dateisystem mit z.B. „aufs“ in den RAM oder eine gesonderte Partition/Loopback–Device umleitet. Damit könnte man auch gleich das gesamte Root-Dateisystem schützen.

    • Klar, allerdings kommt es eben auf den zu treibenden Aufwand an. Wenn die „Studi-Kneipe“ einen Surf-PC einrichten möchte, ist das beschriebene Prozedere gar nicht sooooo schlecht. Immerhin ist das in weniger als fünf Minuten ohne großes Know-How eingerichtet.

    • Ich habe lange nach so einer Lösung gesucht und nichts gefunden, deshalb hatte ich mir selber etwas gebaut. Aber mit einem anderen Ansatz ich lege per AuFS eine ramdisk über das entsprechende Userverzeichnis. So werden auch keine Daten gespeichert, wenn der PC nicht „ordnungsgemäß“ heruntergefahren wird. Hat aber auch den Nachteil, dass der RAM volllaufen kann, wenn der User große Dateien speichert…

      Das ganze hatte ich mit einer Zenity GUI hier veröffentlicht:

      http://forum.ubuntuusers.de/topic/kiosk-mode-erweitert/

      Gruß

      atx

  3. Ist es nicht viel einfacher für diesen Zweck eine Live-CD oder einen Live USB Stick zu bauen (z.B. mit Remastersys). Nach einem Reboot wäre dann alles wieder zurückgesetzt. Eine Surfstation bräuchte nicht mal eine Harddisk.

  4. sorry dass ichs so flapsig mach, aber bei mir setzt ofris-en nichts zurück, nach neustart bleibt alles beim alten???

    ubuntu 10.04
    einen root-account
    und einem user-account (der soll eingefroren werden)

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein