Efa unter Linux
Aus Ruderwiki
Das "Elektronische Fahrtenbuch 'efa'" ist ein vom deutschen Ruderverband unterstützes Programm, welches ein Fahrtenbuch für die Bootshalle bietet. Dafür benötigt man einen öffentlich zugänglichen Rechner, der jeder Art von Manipulation und Beschädigung widerstehen kann.
Um efa im Bootshaus laufen zu lassen, bietet sich Linux an, da es für den Zweck gut konfigurierbar und stabil ist. So lassen sich manche "Workarounds" unter Windows (z.B. die nichtverschiebbarkeit des Fensters oder Verwendung von Tastaturen ohne ESC-Taste...:-) ) unter Linux wirklich abschalten. Damit kann man ohne weitere Trickserein ein wirklich sicheres System aufbauen.
Eine Alternative zu EFA wird ADAM. ADAM ist in der Entwiklung. Details findest du hier!
Die Anleitung ist in verschiedene Teile gegliedert:
- Vorausetzungen: Worüber man sich Gedanken machen sollte, wenn man einen Fahrtenbuchrechner einrichtet.
- Installation: Als erstes muss man einen Rechner mit Linux aufsetzen. Wie man eine Minmalinstallation durchführt und an unsere Bedürfnisse anpasst, findest du in diesem Abschnitt beschrieben.
- Konfiguration: Wenn man alles installiert hat, muss man den Rechner noch so einrichten, dass alle Anforderungen erfüllt sind. Das ist anfangs etwas verwirrend, aber wenn man es einmal verstanden hat, sehr einfach.
- Efa einrichten: Da auf dem Rechner Efa laufen soll, muss man dieses Installieren. Damit man keinen Unfug machen kann, muss man an Efa ein paar Einstellungen verändern.
- Abschluss der Installation: Nun ist man fast fertig, und muss alles nur noch für den Einsatz im Bootshaus fertig machen. Nun also die letzten Schritte, wie man (wenn alles andere läuft) die letzen Sicherheitslöcher stopft.
- Backuplösungen: Wenn das Bootshaus abbrennt, sollte man ein Backup das Daten haben. Lösungen sind hier beschreiben.
- Problemlösungen: Theorie ist toll, Praxis ist anders: Für einige Probleme, die auftreten können, haben wir ein paar Problemlösungen aufgeschrieben, mit denen wir zu kämpfen hatten.
- Optionale Varianten: Natürlich gibt es viele Möglichkeiten sein System einzurichten.
Wechsel von Ubuntu zu Debian
Die Anleitung behandelte bisher die Linuxdistribution Ubuntu. Da sich gezeigt hat, das man mit Debian ein schnelleres und stabileres System hin bekommt, das auch ein Distributionsupdate und die damit oft bei Ubuntnu notwendigen Basteleien überflüssig macht, ist dieser Wechsel geschehen.
Die alte Anleitung mit Ubuntu findest du unter Efa_unter_Linux/Ubuntu
Hier wird die Installation mit Debian Squeeze gemacht, das offiziell (7/2010) als testing geführt ist (Anmerkung: Ubuntu besteht meist aus unstable, teils sogar aus experimental). Es wird ab 2011 (?) in die stabile Version übergehen, und dann für ein paar Jahre diesen Status halten. Das schöne ist, dass es abwärtskompatibel bleibt.
Verbesserungsvorschläge
- entweder einfach hier einfliessen lassen
- oder an: /sebastian/./frohn/(at)g/m/x.de (ohne die / natürlich, SPAM sei Dank)
Vorraussetzungen
Ein Fahrtenbuch-PC ist ein öffentlich zugänglicher Rechner. Neben den Problemen mit physikalischem Vandalismus besteht auch die Gefahr, das jemand in den Rechner einbricht, und wenn es nur ein Vereinsmitglied ist, das meint sich beweisen zu müssen.
Um die Daten des Fahrtenbuches sicher zu lagern, reicht also ein nicht modifiziertes Betriebssystem nicht aus.
Was der Rechner bzw. sein Betriebssystem können sollte
- Der Rechner muss mit Efa im Vollbildmodus starten
- Die Nutzer dürfen Efa nicht beenden oder andere Aktionen am System durchführen können
- Der Rechner soll immun gegenüber allen Manipulationsmöglichkeiten sein
Lösungen, um die Ziele zu erreichen
- auf dem Rechner läuft die Linux-Distribution Debian als stabiles Betriebssystem
- es wird nur das installiert, was wirklich gebraucht wird (Minimalinstallation)
- OpenBox dient als einfach konfigurierbarer Fenstermanager
- Verwaltung findet mittels eines vom Programm streng getrennten Useraccounts statt
- Da Linux keine wirklich problematischen Viren kennt und es keine offenen Ports gibt, ist die Gefahr eines Angriffes von außen ausgesprochen gering
- Wer sich nicht in Linux einarbeiten will, die Anleitung ist sehr ausführlich und alle nötigen Scripte gibt es hier zum download. Wobei es natürlich immer besser ist, sie auch wirklich zu verstehen...
Vorraussetzungen für den Installierenden
Um wie beschrieben installieren zu können, sollten folgende Voraussetzungen gegeben sein
- Keine Angst etwas Ahnung von Linux zu bekommen
- eine aktuelle Debian-CD (siehe http://www.de.debian.org/devel/debian-installer/). Hierbei benötigen wir die netzinstallations-CD für die Architektur des Rechners. Dies ist wahrscheinlich die i368-Version.
- der Rechner muss während der Installation über ein LAN-Kabel Zugriff auf das Internet haben, da Pakete verwendet werden, die nicht auf der CD enthalten sind.
Wer sich erst in Linux einarbeiten will, unter http://wiki.ubuntuusers.de findet man eine Anleitung zu wirklich allen Fragen, die im Laufe der Installation auftreten können. Dies ist zwar eine Anleitung zu Ubuntu, aber die meisten Dinge sind identisch (Ubuntu ist ein Ableger von Debian).
Im Laufe der Installation kommen ziemlich viele bash-Scripte zum Einsatz. Wer gar keine Ahnung davon hat, wird erst einmal nur Bahnhof verstehen (was aber nur begrenzt schlimm ist). Ein paar (von vielen) Anleitungen zu bash sind z.B. [1] und [2]. Es reicht aber immer aus halbwegs zu verstehen was das Skript macht, niemand muss für diesen Zweck in der Lage sein selber welche zu schreiben.
Virtuelle Maschinen
Da das Ziel der ganzen Sache ist, den Rechner bis auf wenige Funktionen einzuschränken und keine Hintertüren zu lassen, ist die Gefahr auf dem Weg dahin sich selber auszuschließen - und dann ganz von vorne beginnen zu müssen - nicht gerade gering.
Wer noch nie einen Rechner manipuliert hat oder erstmals Linux installieren will, dem sei eine Virtualisierungslösung zum "Spielen" ans Herz gelegt, bevor er sich an den realen zukünftigen Fahrtenbuchrechner wagt.
Fast alle hier beschriebenen Schritte wurden mittels VirtualBox bzw. QEMU/KVM (sehr gute Anleitung unter www.qemu-buch.de) getestet, und wie genau die Funktion "Sicherungspunkt setzen" bzw. Overlay's funktioniert, sollte man sich direkt als erstes ansehen.
Wer nicht weiß worum es geht, es sind Programme, die es einem erlauben, auf seinem Rechner einen oder sogar mehrere "virtuellen" Rechner zu simulieren, in diesem ein Betriebssystem zu installieren und damit zu arbeiten. Damit kann man in einem Fenster auf seinem Desktop alles ausprobieren, im Fehlerfall den Schritt rückgängig machen, und nebenbei noch die Dokumentation auf seinem richtigen Rechner lesen.
Das Programm VirtualBox gibt es für Linux und Windows, kostet nichts und reicht für diesen Zweck vollkommen aus. Qemu ist ebenso frei und verfügbar, ist aber insbesondere bei Linux-Rechnern, deren Prozessor KVM unterstützt, deutlich schneller und bietet mehr Möglichkeiten. Es wird allerdings über die Kommandozeile gestartet und bedarf darum etwas mehr Einarbeitung.
Weiterhin wird beschrieben, wie man das System auf einem USB-Stick installiert. Das hat den Vorteil, dass man Änderungen auf diesem mit einem anderen Rechner wieder rückgängig machen kann. Damit erhält man den selben Effekt, und kann das fertige System nachher direkt auf den realen Rechner kopieren.
Installation
Netzwerkzugang und Alternativen
LAN
Die Installation wird mittels einer Debian-Netzwerkinstallations-CD gestartet. Im Beispiel wird die Version 6 'Squeeze' verwendet. Hierbei brauchen wir einen Internetzugang. Darum entweder
- LAN im Bootshaus
- den Rechner mit nach Haus nehmen und ans LAN hängen
- Der Rechner hat eine WLAN-Karte, die vom Kernel out-of-the-box erkannt wird, und man kann das WLAN kurzzeitig auf WEP umstellen (WPA kann der Installationsassistent nicht).
- die Installation daheim auf einem Zweitrechner und einem USB-Stick machen, und ihn später auf den Rechner kopieren. Siehe System komplett auf einem USB-Stick vorbereiten
Die Installation findet im Textmodus statt, also ohne Bildchen und Maus. Sie ist aber sehr gut verständlich. Die Standartvorgaben sind eigentlich schon sehr gut, und man kann bei den nicht hier erwähnten Punkten die Standartvorgaben nehmen.
Auf USB installieren
Wer das System daheim fertig machen will, im Bootshaus unverbindlich testen, und dann erst installieren mag, kann das System auf einem USB-Stick installieren. Etwas anspruchsvoller, aber sehr praktisch:
- Man benötigt einen beliebigen Rechner mit LAN. Das kann der Laptop vom Vater/Sohn/Ehemann sein, eigentlich egal, denn der Rechner bleibt unverändert!. Sofern man keinen Fehler macht.
- Man muss nur einen USB-Stick (min 3GB) anstecken, und von der CD starten. Dann der Anleitung folgen... bis auf folgende Punkte:
- Bei der Partitionierung manuell wählen und aufpassen, dass man NUR auf den USB-Stick installiert, und die Festplatte des eigentlichen Rechners unverändert lässt. Sonst macht man den Rechner platt :-(.
- Wenn Grub installiert wird, die Frage ob es in in den MBR der ersten Festplatte geschrieben werden soll mit nein beantworten, im folgenden Menu kann man dann den USB-Stick (Falls keine anderen Laufwerke dran hängen, ist es hd1) angeben.
- Im folgenden von dem USB-Stick booten (im BIOS des Rechners angeben, F2 oder F12 beim Start drücken)
- Stick im Bootshaus anstecken, vom Stick booten, alles ausprobieren, wenn zufrieden:
- den kompletten USB-Stick auf die Festplatte im Bootshaus kopieren (Hierfür den Rechner mit einer live-CD-starten, denn die Festplatte/der USB-Stick darf während des kopieren nicht verändert werden, darf also nicht eingehängt sein): dd if=/dev/(USB-Stick) of=/dev/sda Vorsicht, dd überschreibt die GESAMTE Festplatte mit Partitionstabellen und kompletten Inhalt!!
- Wenn alles fertig ist, noch in der /etc/fstab alle Einträge entfernen, die sich nicht auf den USB-Stick beziehen und beim ersten Startmal grub updaten
Systeminstallation
Partitionierung
Der Sicherheit wegen legt man eine eigene Partition für die efa-Daten und die Heimverzeichnisse an. Dann kann man auch nach einem unwahrscheinlichen Systemabsturz und Neuinstallation alle Programmeinstellungen und Daten wieder nutzen. Man benötigt dafür:
Name Einhängepunkt Größe -------------------------------------------------------- System / 1.4 GB für die Beispielinstallation, wer mehr installieren will, braucht mehr... Swap etwa wie Arbeitsspeicher, aber 265 MB reichen Daten /home 265 MB Backup /backup der Rest...
Wer mehr Platz auf seiner Platte hat, nehme ruhig mehr. Das sind die Minimalanforderungen, die man nicht unterschreiten sollte.
Die Einstellungen kann man wählen, wenn man "manuelle Partitionierung" wählt.
Benutzer
Unter Debian gibt es den Bnutzer root. Dieser ist das Adminsitrator und darf alles. Mit diesem werden wir das System installieren. Das Passwort für root sollte absolut wasserdicht sein. Am besten ein richtig komplexes Passwort nehmen, auf das NIE jemand kommt. Siehe auch Passwortgeneratoren
Das Passwort für den Benutzer root wird während der Installation abgefragt.
Des weiteren wird direkt danach ein Benutzer angelegt. Da kommen wir nicht drumherum. Man denke sich einen lustigen Namen und ein beliebiges Passwort aus. Das Beispiel hier ist efaadmin. Wir löschen ihn später wieder, da er zu viele Rechte hat.
Wir erstellen später der User efa, unter dem das Programm EFA laufen wird. efa hat gar keine Rechte, und wird sein Passwort nie brauchen, und darum werden wir efa später zu einem passwortlosen Nutzer machen.
Zu installierende Optionen
Nach der Abfrage der Benutzer kann man das System zsuammenstellen. Wir benötigen hier nur
- openssh-Server
Alles andere wird abgeschaltet.
OpenSSH-Server
Man kann sich ein paar Dinge leichter machen, wenn man einen SSH-Server installiert und über diesen auf den Rechner einrichtet. Dann kann man viele Dinge von dieser Anleitung per copy&paste übertragen. Wenn man diesen bei der Installation nicht direkt mit installiert hat, kann man ihn mittels
apt-get install openssh-server
nachträglich installieren
Nun kann man im Menu seines Routers oder einfach mittels ifconfig die IP des FaBu-Rechners heraussuchen, und von einem anderen Rechner im Netzwerk (auf dem ein SSH-Client installiert ist) mittels
ssh root@XXX.XXX.XXX.XXX
auf den Rechner zugreifen.
Installation der benötigten Pakete
Folgende Pakete müssen installiert werden
Notwendig: xorg Der Grafik-Server openjdk-6-jre Java-Laufzeitumgebung unzip zum entpacken von efa openbox Der Fenstermanager openbox-themes Themen für Openbox Optional für Zusatzfunktionen: mehr Komfort mousepad graphischer Texteditor obconf Tool zum WYSIWYG-Konfigurieren von Openbox mc halbgraphischer Dateimanager MidnightCommander für (FTP-)Backups zip Dateikomprimierungstool ncftp Zum sichern der Backups
Da bei der Installation sehr viele Abhängigkeiten für die graphische Benutzeroberfläche sowie Java installiert werden müssen, werden ca. 60MB heruntergeladen und etwa 250MB an Festplattenspeicherplatz belegt. Also alles in eine Zeile schreiben, starten und dann schnell eine Tasse Kaffee oder Tee machen gehen.
apt-get -y install xorg hal unzip openbox openbox-themes openjdk-6-jre
Systemkonfiguration
Nach der Installation muss man das System Konfigurieren. Dafür loggen wir uns als root ein.
Dabei geht es um folgendes:
- Efa läuft unter einem eingeschränkten Benutzer, der keinen Schaden anrichten kann
- Nach dem Rechnerstart soll keine Loginaufforderung kommen, sondern sofort die graphische Oberfläche (Xorg) geladen werden
- Nach dem Laden von Xorg soll sofort der Fenstermanager geladen und Efa gestartet werden
- Der Fenstermanager soll keine Möglichkeiten bieten, anderes als Efa zu nutzen
- Dem X-Server muss man seine (ursprünglich sinnvollen) Möglichkeiten für mehrere Konsolen nehmen
- Nach dem Laden von Efa kann man Efa nur mit Passwort beenden. Danach folgt automatisch das Beenden des X-Servers, und das automatische Abmelden des Benutzers efa. Danach kann man sich innerhalb von 15s als root anmelden, oder es startet sich EFA neu.
Einrichten des Benutzerkontos efa
Es wird ein Benutzer mit dem Namen efa angelegt, der keine für das System bedrohlichen Rechte erhält
#neuen Nuter efa einrichten adduser efa
Unter diesem Nutzernamen wird später das Programm efa laufen.
Mittels des Befehls id efa kann man erkennen, das der Benutzer efa keiner Gruppe angehört, und damit wenig Schaden anrichten kann.
efa das Passwort klauen
efa hat am Rechner nichts zu suchen, außer EFA zu betreiben. Also machen wir ihm den Login unmöglich, indem wir ihm den Login verbieten
Dazu geben wir
passwd -l efa
ein.
Wenn man nun als efa etwas tun will, muss man sich als root einloggen, und mittels
su efa
zu efa werden.
efaadmin löschen
Nun löschen wir noch den vorher angelegten Nutzer.
deluser efaadmin rm -dr /home/efaadmin
Der Benutzer efa bekommt nun automatisch das Heimverzeichnis /home/efa zugewiesen, welches sich auf der 2. Partition befindet. Damit sind alle Daten und efa-spezifischen Einstellungen unabhängig von der Systempartition und bleiben im Falle eine Systemcrashes erhalten.
Startskripte erstellen
Nun loggt man sich als root ein und legt los.
Globale Variablen setzen
Um im Falle einer Pfadänderung weniger Mühe zu haben, und um keine Zeilen in den Skripts zu übersehen, setzen wir ein paar globale Variablen.
Dazu erstellen wir eine Datei /etc/exportvar
export EFA_HOME=/home/efa export EFA_LOG=/home/efa/efa.log export EFA_PROG=/home/efa export EFA_BACKUP=/backup
und hängen an die /etc/profile folgendes an
source /etc/exportvar
Entweder macht man das mit einem Texteditor
nano /etc/profile
Oder man gibt folgenden Befehl ein:
cd /etc wget http://ruderwiki.de/Download/efa/exportvar echo -ne "\n\nsource /etc/exportvar\n" >> /etc/profile
Das mit den Pfaden scheint umständlich, aber ist in vielen Fälle sehr gut, wenn man etwas mal an Pfaden ändern will. Das auslagern in eine Datei hat den Grund, da wir nachher mit einer Crontab arbeiten, und diese die Pfade nochmals laden muss. Damit man nur eine zentrale Datei hat, dieser Umweg.
Wer z.B. seine Daten an einem anderen Ort umziehen will, kann dies durch einfaches ändern der Pfade tun. Und es erspart Tippfehler...
Des weiteren wollen wir einen Ordner anlegen, in dem das System standartmäßig nach Skripten sucht. Die erreichen wir, indem wir den Ordner bin anlegen
su efa -c "mkdir /home/efa/bin"
(das su efa -c führt dazu, dass der Befehl als Nutzer efa ausgeführt wird, und die Rechte automatisch stimmen).
Nun muss man diese Änderungen noch bekannt machen, also entweder einen Windows-like-en Neustart oder einmalig folgendes eingeben:
source /etc/profile PATH=$PATH:/home/efa/bin export PATH
Startscript zum Start von EFA erstellen
Nun arbeiten wir eine Zeit als Benutzer efa weiter
su efa
Das Startscript efa (welches das Programm efa startet) wird im Verzeichnis /home/efa/bin angelegt und mit Ausführungsrechten ausgestattet
cd $EFA_HOME/bin # in das bin-verzeichnis wechseln wget http://www.ruderwiki.de/wiki_neu/Download/efa/efa # Datei herunterladen chmod +x $EFA_HOME/bin/efa # Ausführungsrechte setzen
Alle (Fehler-)meldungen von efa landen in der Datei /home/efa/efa.log. Das echo ... schreibt mittels ">>" eine Meldung in die Datei efa.log, "2>>" leitet die Fehlerausgabe in die selbe Datei um. Bei Problemen kann man dort nachsehen, was passiert ist.
Autostart von OpenBox und Efa beim Laden von Xorg erzwingen
Zwar wird Openbox schon standartmäßig beim starten von Xorg geladen, aber efa nicht.
Um das zu erreichen erstellen wir für den User efa eine Datei ~/.xinitrc und
cd $EFA_HOME/ wget http://ruderwiki.de/Download/efa/.xinitrc
Damit wird beim starten von X eine openbox-session gestartet und in den Hintergrund geladen (das &) und danach das Script efa gestartet.
Wenn efa beendet wird (z.B. durch den Administrator) wird X durch den Befehl exit beendet und wieder an .profile übergeben, welches dann per exit zur Loginshell zurückkehrt.
Falls Openbox eine Session startet und sofort wieder schließt, wurde efa nicht gestartet. Dann sollte man die Pfadangabe noch einmal neu setzten bzw den Rechner einmal neu starten.
Openbox konfigurieren
Openbox ist ein Fenstermanager. Er organisiert das Aussehen und vor allem das Verhalten von Fenstern. Genau das wollen wir einschränken.
Anmerkung: Wenn Obenbox in QEMU nicht funktioniert (Fenster haben keinen Rahmen), dann liegt das an falscher Farbbittiefe. Einfach ignorieren, wird später funktionieren.
Anpassen des Startmenüs von Openbox
Damit niemand (falls es ihm gelingen sollte efa ohne Passwort zu beenden) mit der Oberfläche von Openbox Unsinn machen kann, wird dessen Menu-Datei ~/.config/openbox/menu.xml (Das Openboxmenu erreicht man normalerweise über einen Rechtsklick auf den Desktop) so umgebaut, dass nur noch eine Option :-) besteht (Eine Option muss sein, sonst streikt OpenBox), die keine Aktion durchführt. Prinzipiell ist dieser Schritt zwar nicht notwendig, da im nächsten Schritt der Menüaufruf ausgeschaltet wird, aber besser ist das.
mkdir $EFA_HOME/.config cd $EFA_HOME/.config/ mkdir openbox cd openbox wget http://www.ruderwiki.de/Download/efa/menu.xml cd $EFA_HOME
Anpassen des Aktions- und Fensterverhaltens von Openbox
Um keine Änderungen am Fenster von efa möglich zu machen, muss die Datei ~/.config/openbox/rc.xml bearbeitet werden. Dabei werden alle Maus- und Tastatur-Optionen ausgeschaltet, die ein verändern der Fenster oder verlassen von efa ermöglichen.
Die ursprüngliche Datei ist umfangreich und daher hier nicht abgebildet. Die fertige und von den Beschränkungen ausreichende Datei läd man wie alle anderen einfach runter:
cd $EFA_HOME/.config/openbox/ wget http://www.ruderwiki.de/Download/efa/rc.xml cd $EFA_HOME
Möglich ist noch:
- Fenster aktivieren durch klicken auf Titelleiste oder Fensterfläche
- Fenster Schliessen per Alt-F4
- Fenster Schliessen per Knopf in Titelleiste
Beim Schliessen des Hauptfensters wird per Einstellung in efa (siehe unten) das Passwort abgefragt
Verbesserungen sind natürlich immer gerne gesehen! Wer eine Möglichkeit findet, aus efa „auszubrechen“, und/oder wie man es vermeiden kann, bitte melden. E-Mail siehe oben!
XServer konfigurieren
Vorarbeiten: Xorg.conf testen
Die Datei xorg.conf existiert nicht mehr und wird auch nicht mehr erstellt, da die Aufgaben durch die Hardwareabstraktionsschicht übernommen werden. Das bedeutet nicht, das diese Datei nicht gelesen wird. Einfach eine Datei erstellen und den Inhalt wie unten beschrieben einfügen.
VirtualBox: In virtuellen Maschinen wird das strg-alt-FX-Kommando vom Host abgefangen. Zusätzlich scheint es bei erstellen einer xorg.conf zu Problemen mit der virtuellen Grafikkarte zu kommen. Daher es besser dort nicht ausprobieren.
QEMU: In Qemu kann man über die Qemu-Konsole jeden beliebigen befehl absetzen, also auch z.B. Crtl+Alt+F1, womit man die Funktion testen kann
Blockieren der virtuellen Konsolen
Um zu verhindern, dass der Nutzer mittels Strg-alt-FX auf eine der virtuellen Konsolen (es werden meist auf einem Rechner 6 parallel zueinander simuliert) zugreift, kann man die Datei /etc/X11/xorg.conf editieren. Dabei fügt man eine Section "ServerFlags" hinzu.
Dabei handelt es sich um folgenden Absatz (Idee von Thilo Coblenzer :-) Danke!) :
Section "ServerFlags" Option "DontVTSwitch" "true" Option "DontZoom" "true" Option "StandbyTime" "10" Option "OffTime" "240" EndSection
Die Option "StandbyTime" "10" schaltet den Monitor nach 10 min in den Standby-Betrieb, die Option "OffTime" nach 4 Stunden aus (sofern der Monitor das unterstützt, siehe auch http://www.x.org/archive/X11R6.8.0/doc/xorg.conf.5.html)
(einfach den folgenden Absatz kopieren und ausführen)
echo -ne "Section \"ServerFlags\"\nOption \"DontVTSwitch\" \"true\"\nOption \"DontZoom\" \"true\"\nOption \"StandbyTime\" \"10\"\nOption \"OffTime\" \"240\"\n EndSection" >> /etc/X11/xorg.conf
Röhrenmonitore konfigurieren
Wer einen alten Röhrenmonitor hat, der vom XServer nicht automatisch konfiguriert wird, der sollte jetzt direkt den Abschnitt Auflösung bei alten Röhrenschirmen lesen, um eine vernünftige Bildschirmauflösung zu erhalten.
Efa installieren
Installation
Nun wird endlich Efa installiert.
Für den Fall, dass jemand einen Ordner mit vorinstalliertem efa mitbringt, sollte er ihn (bzw. dessen kompletten Inhalt) in den Ordner $EFA_HOME kopieren (oder alle bisher verwendeten Pfade angepassen).
Das ganze sollte man natürlich als Benutzer efa machen, sonst lässt sich das alles nicht ausführen und einstellen Falls man da vergessen hat, ein "chown -R efa:efa /home/efa/*" hilft.
Sonst führt man folgende Befehle aus:
cd $EFA_HOME wget http://efa.nmichael.de/download/efa183.zip # Bzw. den Link zur aktuellen Versionsdatei !!! unzip efa183.zip
Falls der Entpackvorgang die Dateien in einem Unterordner ablegt (z.B. efa18X) muss man die Dateien noch in das Heimverzeichnis verschieben (oder die Pfade anpassen)
mv -r efa18X/* ./
efa kann nun gestartet werden, indem man sich als efa am Rechner einloggt.
Konfiguration von efa
Fensterverhalten
Um der Sicherheit vollkommen gerecht zu werden, sollte man nach Einrichten des Programmes den admin-Modus betreten und die Funktion efa konfigurieren anwählen. Unter efa im Bootshaus im Unterbereich Erscheinungsbild die Punkte
- "efa maximiert starten"
- "efa immer im Vordergrund"
aktivieren
Der Punkt Hautfenster nicht verschiebbar kann man (wenn man will) auch aktivieren, allerdings erhält man dann einen unschönen blauen Rahmen um das Hauptfenster. Die Funktion ist außerdem durch die modifizierte rc.xml vom Fenstermanager sowieso schon endgültig deaktiviert.
Beenden
Unter allgemein Einstellungen sollte man die Option
- "Mitglieder dürfen efa beenden"
deaktivieren. Damit verhindert man, dass Mitglieder efa schliessen und hilflos vor der Loginshell sitzen.
Abschluss der Installation
Nun müssen wir wieder als root arbeiten. efa verlässt man mit dem Kommando exit
Autostart von EFA
Beim Hochfahren des Systems soll sich EFA immer von selber starten, genau wie nach einem Absturz. Dies erreicht man folgendermaßen über im folgenden beschriebenden Weg.
Man legt eine Datei /bin/starte_efa an.
cd /bin wget http://ruderwiki.de/Download/efa/start_efa chmod +x start_efa
Das Skript macht folgendes:
- es startet als User efa den X-Server, nutzt also alles, was wir in der .xinitrc stehen haben, startet also EFA, das ganze auf tty7 (macht X immer so). In diesem Zustand verharrt das System nun solange, bis jemand EFA beendet.
- Wenn EFA beendet wird, dann startet das Skript einen Loginpromt auf tty1 und kehrt dorthin zurück.
- Der Loginpromt wartet 15 Sekunden.
- In diesen 15s hat man die Chance, sich als root einzuloggen. Darum muss dieses Passwort absolut wasserdicht sein.
- Danach prüft das Skript, ob root von irgendwoher eingelogt ist. Wenn ja, wartet es wieder 5s und prüft wieder und wieder, bis root sich ausgeloggt hat.
- Das Skript beendet sich selber, und wird automatisch neu gestartet.
- Wenn root von einer SSH-Verbindung aus eingeloggt ist (erkennbar am pts), gibt das Skript einen Hinweis aus und geht in die vorher erwähnte Warteschleife.
- Wenn root nicht eingeloggt ist (oder sich wieder abgemeldet hat), wird wieder EFA gestartet und das ganze geht von vorne los.
Anmerkung: Das der Neustart von EFA blockiert wird, wenn sich jemand per SSH eingeloggt hat (und dabei den Parameter -X verwendet hat), ermöglicht einem von der Ferne, EFA mittels eines skill efa zu beenden (Unfein, besser wäre einloggen und beenden via VNC, um laufende Vorgänge der Mitglieder im Bootshaus nicht zu killen), und daheim dann mittels efa das Fahrtenbuchprogramm auf seinen Bildschirm zu holen. Da EFA nur eine Instanz erlaubt, muss also EFA während dieser Zeit im Bootshaus blockiert werden.
Dann editieren wir die Datei /etc/inittab. Wir ersetzen die Zeile
1:2345:respawn:/sbin/getty 38400 tty1
durch
1:2345:respawn:/bin/start_efa
Damit wird auf die Anwendung starte_efa gestartet. Sie startet X und efa. Wenn sie beendet wird, wird sie neu gestartet. Das erledigt das Wort respawn.
Die Zeilen
X:23:respawn:/sbin/getty 38400 ttyX
mit X zwischen 2 und 6 klammern wir mit einem # aus
#X:23:respawn:/sbin/getty 38400 ttyX
Damit gibt es nur noch einen Loginpromt. Und der Startet immer wieder EFA.
letztes Sicherheitsleck abdichten: Recovery-Modus
Es ist möglich, über den Recovery-Modus sich Zugang vom Rechner zu verschaffen. Im Menü des Recovery-Modus findet sich nämlich die Option "zur Rootshell wechseln""
finale Lösung: Grub 2
hier setzt man in der /etc/defaults/grub folgende Option:
GRUB_DISABLE_LINUX_RECOVERY=true
Nach einem
sudo update-grub
soltlen die Recoverymodus-Einträge deaktiviert sein. Das bedeutet, das auch der Administrator diese Funktion nicht nutzen kann!
'elegante' Lösung in Grub 1.5
Um eine Passwortabfrage beim Starten aller Optionen außer dem normalen Booten zu bekommen, muss man sich ein Passwort für Grub einrichten. Den Hash-Wert seines Passwortes (Passwort erzeugt Hash-Wert, aber aus Hashwert kann man das Passwort realistisch nicht ermitteln) bekommt man mittels des Kommandos
grub-md5-crypt
in der Konsole, 2 mal sein gewünschtes Passwort eingeben, und die resultierende Zeichenkette kopieren oder aufschreiben.
Dann in der /boot/grub/menu.lst unter dem Absatz
## password ['--md5'] passwd # If used in the first section of a menu file, disable all interactive editing # control (menu entry editor and command-line) and entries protected by the # command 'lock' # e.g. password topsecret # password --md5 XXXXXXXXXXXXXXXXXXXXXXXXXXXX # password topsecret
in der Zeile mit den vielen X den Hashwert einfügen
password --md5 #Passwort#
wobei das #Passwort# das die Ausgabe vom Hash-Generator grub-md5-crypt ist.
Die Zeile
# lockalternative=false
wird in
# lockalternative=true
geändert und abschließend Grub mittels
sudo update-grub
aktualisiert.
Nun fragt der Rechner beim Auswählen des Recovery-Modus nach dem Passwort, bevor er bootet.
Downgrade zu Grub 1.5
Wer auch in 9.10 lieber Grub 1.5 statt Grub 2 verwenden will (Stichwort Recovery-Passwort), kann ein downgrade machen:
sudo apt-get -y install grub sudo grub-install /dev/sdX #X der Buchstabe der Bootspartition, zu finden mittels sudo fdisk -l sudo update-grub
Wenn das nicht ohne Fehlermeldungen abläuft, sollte man nicht neu starten, bis man das ohne Fehlermeldungen wieder hinbekommen hat.
Manipulationen an der Konfiguration verhindern
Unfein und gemein, aber wirkungsvoll: Man nimmt efa die Schreibrechte an den bearbeiteten Konfiguationsdateien.
Dazu meldet man sich als root an und gibt folgendes Kommando ein
chown root:root $EFA_HOME/.profile $EFA_HOME/.xinitrc $EFA_HOME/bin/efa $EFA_HOME/.config/openbox/menu.xml $EFA_HOME/.config/openbox/rc.xml chmod +r $EFA_HOME/.profile $EFA_HOME/.xinitrc $EFA_HOME/bin/efa $EFA_HOME/.config/openbox/menu.xml $EFA_HOME/.config/openbox/rc.xml
Damit gehören die Dateien nun nicht mehr efa, sondern root, und kann efa die Dateien zwar lesen (und starten), sie aber nicht verändern!
Backuplösungen
Es ist sinnvoll, die Daten von Efa immer wieder einmal zu sichern. Dies sollte man mindestens auf der lokalen Festplatte machen, besser auf einer 2. Platte, oder noch besser - so weit weg wie möglich: per ftp.
Hier wird des weiteren eine Möglichkeit gezeigt, die Daten auf einem Server hoch zu laden. Dies ist durchaus praktisch, wenn man (Wie im Mainer RV) eine dauerhafte Internetverbindung hat. Ansonsten ist es eher aufwendig und nicht zwingen nötig.
Das folgende Beispiel nutzt beide Varianten, durch Ausklammern weniger Zeilen kann man die FTP-Variante aus dem Code entfernen.
Automatisches Backup der Dateien von Efa anlegen
Falls es jemandem gelingen sollte, am Rechner aktiv zu werden (Jugendabteilungen sind gefährlich), sollte man ein backup haben, das von efa nicht gelöscht oder verändert werden kann bzw. selbst ein Abbrennen des Bootshaus überlebet (damit man der Versicherung mitteilen kann, welche Boote noch heil sind, weil sie auf dem Wasser waren).
Dazu bietet sich einmal ein cron-job an, der einmal am Tag alle wichtigen Daten in eine ZIP-Datei packt, und diese in einem Verzeichnis speichert, in das efa nicht hineinkommt, sowie optional per FTP auf einen externen Server hochlädt.
Um jede eingetragene Ausfahrt zu sichern, verwenden wir einen Hintergrunddienst namens fsniper, der Dateiänderungen überwacht und dann eine Aktion ausführt. Dies ist in unserem Fall eine Sicherungskopie.
Upload der aktuellen Fahrtenbuchdatei auf einen Webserver
Wer eine Fahrtenbuchauswertung auf der Vereinshomepage betreibt, möchte vielleicht immer die aktuellen Daten haben. Ideal ist es, wenn nach jeder Änderung die XX.efb hochgeladen wird. Das kann man mit fsniper sehr leicht realisieren.
fsniper installieren und einrichten
Das Paket fsniper gibt es unter Debian leider nicht. Darum muss man es selber bauen oder versuchen das hier bereitgestellte Paket zu verwenden (für i368) (für amd64)
Paket verwenden
Das Paket ist für ein bestimmtes System (meines) kompiliert und natürlich Verwendung auf eigene Gefahr.
wget http://ruderwiki.de/Download/efa/fsniper_1.3.1-1_i386.deb
bzw.
wget http://ruderwiki.de/Download/efa/fsniper_1.3.1-1_amd64.deb
dpkg -i fsniper_1.3.1*.deb apt-get -f install
Selber bauen
wget http://projects.l3ib.org/fsniper/files/fsniper-1.3.1.tar.gz tar -xzf fsniper-1.3.1.tar.gz cd fsniper-1.3.1 apt-get install build-essential dh-make fakeroot libmagic-dev libpcre3-dev cd fsniper-1.3.1 ./configure dh_make --createorig # einmal s eintippen fakeroot debian/rules binary cd .. dpkg -i fsniper_1.3.1*.deb apt-get -f install
fsniper einrichten
die /etc/rc.local muss erweitert werden:
[...] su - root -c "fsniper --daemon&" 2>> $EFA_LOG exit 0
wobei die Zeile vor das schon existierende exit 0 muss. Das su - roo -c ist dafür da, dass der Befehl als root ausgeführt wird. Sonst wird der Prozess ohne einen Besitzer gestartet, und filesniper sucht vergeblich nach der ~/.config/fsniper/config.
Dann muss eine Datei /root/.config/fsniper/config angelegt werden
watch {
$EFA_PROG/daten {
*.efb {
handler = bash /bin/upload_fsniper %%
}
}
}
Uploadeskript
Es wird ein Skript namens /bin/efabackup_fsniper erstellt und ausführbar gemacht.
cd /bin wget http://ruderwiki.de/Download/efa/efabackup_fsniper chmod +x efabackup_fsniper cd /etc wget http://ruderwiki.de/Download/efa/ftpdaten chmod +x ftpdaten
Nun wird bei jeder Änderung der XX.efb die Datei in $EFA_BACKUP/efaaktuell.efb kopiert, und diese hochgeladen. Das ist unabhängig von dem realen Namen der Datei, also macht das System auch eine Jahreswechsel oder Dateinamenswechsel mit, entscheidend ist, welche Datei modifiziert wurde, das wohl meistens die aktuelle Fahrtenbuchdatei ist :-)
Um es nutzen zu können, brauchen wir noch zip
apt-get install zip
FTP-Zugangsdaten
Es müssen noch die FTP-Zugangsdaten in die /etc/ftpdaten eingefügt werden.
CRON-Jobs erstellen
Wir wollen aber nicht nur immer eine aktuelle Fahrtenbuchdatei sichern, sondern auch ein chronologisches Backup haben. Dafür bieten sich Cron-Jobs an.
Diese packen alle interessanten Dateien in eine zip-Datei, und speichern sie:
- alle Stunde auf dem Rechner (täglich überschreiben)
- jeden Tag auf Rechner und Server (monatlich überschreiben)
- am Monatsende auf Rechner und Server (nie überschreiben)
Folgende Dateien sichern wir:
- den Ordner daten und
- den Ordner cfg
- alle *.log von EFA und von uns selbst.
Zusätzlich werden die log-Dateien am Monatsende einmal gesichert und dann neue (leere) Dateien angelegt. Damit verhindert man, dass immer der selbe Müll hochgeladen wird.
Für die FTP-Funktion benötigt man das Paket ncftp
apt-get install ncftp
Alle Erfolgs- und Fehlermeldungen des Backups werden in der Datei $EFA_BACKUP/backup.log dokumentiert.
Crontab bearbeiten
Mittels
crontab -e
und nach Auswählen eines Editors (am einfachsten ist nano) kommt man in die Crontab von root.
Diese sollte nachher so aussehen:
SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow command # # Backup auf die Festplatte zur vollen Stunde zwischen 7 und 22 Uhr 1 7-23 * * * efabackup_h 2>> $EFA_BACKUP/backup.log # Backup auf Festplatte und Server jeden Abend 2 23 * * * efabackup_d 2>> $EFA_BACKUP/backup.log # Backup auf Festplatte und Server am Montatsende (~anfang) 0 0 1 * * efabackup_m 2>> $EFA_BACKUP/backup.log # Ende
Wer kein FTP nutzen will, kann die Datei efabackup_upload einfach leer lassen
Shellscript erstellen
Es müssen 5 Dateien erstellt / Heruntergeladen werden:
cd /bin wget http://ruderwiki.de/Download/efa/efabackup wget http://ruderwiki.de/Download/efa/efabackup_h wget http://ruderwiki.de/Download/efa/efabackup_d wget http://ruderwiki.de/Download/efa/efabackup_m wget http://ruderwiki.de/Download/efa/efabackup_upload chmod +x /bin/efabackup* # Shellscript ausführbar machen
Nutzer zu crontab hinzufügen
Der Nutzer root muss nun der Gruppe crontab hinzugefügt werden
sudo addgroup root crontab
Weitere Möglichkeit der Crontab: Automatisches herunterfahren
Wenn der Rechner sich jeden Abend automatisch abschalten soll, hilft die folgende Zeile in der Crontab
XX YY * * * halt 2>> /root/systemerror.log
Damit fährt der Rechner automatisch um XX:YY Uhr herunter. Der erste Nutzer am folgenden Tag muss ihn dann einfach wieder anschalten.
Probleme und ihre Lösungen
Problemlösung: Einstellen der Bildschirmgröße
Bei bestimmten Bildschirmauflösungen bleibt, da efa im „Maximierten Modus“ nicht wirklich maximiert ist, sondern nur die Fenstergröße fest, ein 1px großer Rand der Openbox-Oberfläche sichtbar.
Dieser kommt scheinbar daher, das die Kommunikation zwischen efa und Openbox, was die Größe des Bildschirmes angeht, nicht ganz stimmt. Man kann aber einfach in der Datei /efa/cfg/efa.cfg die Zeilen
SCREEN_WIDTH=<Bildschirmbreite in Pixeln> SCREEN_HEIGHT=<Bildschirmhöhe in Pixeln>
einbauen. efa meckert dann beim nächsten Start, dass jemand in seinen Dateien gepfuscht hat, das schaltet man einmalig wieder frei, und das Programm läuft wieder. Der Rand sollte dann verschwunden sein.
Problemlösung: Auflösung bei alten Röhrenschirmen
Bei alten Röhrenschirmen kann es sein, dass die Auflösung nicht stimmt oder der Bildschirmausschnitt gescrollt wird etc. Dazu kann man die Datei /etc/X11/xorg.conf editieren.
Modeline erstellen
mit dem Tool gtf kann man sich eine Modeline erstellen lassen
gtf <Bildscirmbreite in px> <Bildschirmhöhe in px> <Wiederholrate in Hz>
Heraus kommt z.B. so etwas:
# 1024x768 @ 100.00 Hz (GTF) hsync: 81.40 kHz; pclk: 113.31 MHz Modeline "1024x768_100.00" 113.31 1024 1096 1208 1392 768 769 772 814 -HSync +Vsync
Modeline einfügen
Diese Modeline kopiert man dann in die Section Monitor der xorg.conf:
Section "Monitor"
...
ModeLine "1280x960@96" 165.88 1280 1336 1616 1728 960 962 974 1000
...
EndSection
"1280x960@96" ist dabei der Identifier der Modeline
Man fügt folgendes in die Section "Screen" ein:
Section "Screen"
...
SubSection "Display"
Depth 24
Modes "1280x960@96"
EndSubSection
...
EndSection
Der Parameter Depth stellt die Farbtiefe dar (ausprobieren)
Optional
Für Fortgeschrittene: reverse-ssh (und reverse-vnc)
Das Problem
Oft sitzt der Fahrtenbucherechner FB hinter einem Router, der kein Port-Forwarding zulässt. Oder man will keinen Port offen stehen lassen. Das bedeutet, man kann nicht von zu Hause - seinem Heimrechner HOME - aus auf FB zugreifen und muss für jede Wartungsanfrage zum Verein.
Man kann das Problem umgehen, indem man reverse-ssh und/oder reverse-vnc verwendet. Das bedeutet, FB wird selber verbindungstechnisch aktiv. Daheim muss man also nur die eingehende Verbindung annehmen.
Einloggen ohne SSH-Passwort
SSH ist so sicher (gut so, siehe oben), dass man beim Kommandozeilenaufruf kein Passwort mitgeben kann. Das ist doof, wenn keiner am Rechner sitzt, um es einzugeben. Ein in diesem Fall nicht ganz riskoloser Umweg geht über sogenannte public-keys. Hierbei wird ein Schlüsselpaar erzeugt, mit dem die beiden Rechner ihre Identität/Berechtigung prüfen können, und daraufhin einen Zugriff ohne Übertragung eines Passwortes erlauben.
Eigentlich zur Erhöhung der Sicherheit gedacht, weil kein Passwort im Klartext übertragen wird, sondern das Passwort nur zum aktivieren des Schlüssels dient, kann man mit leerem Schlüsselpasswort die Verbindung ohne Passwortabfrage herstellen. Bitte zum Verständnis den Artikel über public keys lesen.
Dafür gibt man am FB folgendes ein:
ssh-keygen -t rsa
Man bestätigt alles mit Enter, und lässt die Passphrase leer (Sonst müsste man das Passwort für die Passwortphrase eingeben). Dann gibt man den öffentlichen Schlüssel an HOME weiter:
ssh-copy-id -i ~/.ssh/id_rsa.pub benutzer@rechner
benutzername ist dabei der Benutzername auf dem Heimrechner und rechner die Adresse (IP oder feste Adresse via dyndns o.ä.). Nach Eingabe des Passwortes loggt sich das Programm auf HOME ein und kopiert den public-Key in das .ssh-Verzeichnis.
'Beim übertragen des Passwortes muss der andere Rechner auf Port 22 erreichbar sein. Leider...'
Nun sollte man sich von FB aus mittels
ssh benutzer@rechner
an HOME anmelden können, ohne ein Passwort eingeben zu müssen!
Sinnvolle Optionen
Es ist sinnvoll, in die /etc/ssh/ssh_config folgendes am Ende einzufügen:
ServerAliveInterval 60 ServerAliveCountMax 3
Damit erreicht man, dass wenn die Verbindung zum Rechner daheim abreißt, der Rechner nach 3 Minuten wieder neu verbindet. Sonst wartet man 1-2 Stunden vergeblich.
Skript
Um zu erreichen, dass der Rechner sich mit einem verbindet, lassen wir ein Skript laufen, dass jede Minute versucht, mit einer bestimmten Adresse eine Verbindung aufzunehmen. Dies ist eine feste IP, oder wenn man keine solche hat, ein dynamische Adresse z.B. via Dyndns. Wenn man nun Zugriff haben will, leitet man den Dyndns-Account auf seinen Router um, und den angegebenen Port auf seinen Rechner. Um sicher zu gehen, dass unser Skript auch im Fehlerfall am laufen bleibt, machen wir noch einen Cronjob, der einmal am Tag das Skript neu startet, falls es beendet wurde.
cd /bin wget http://ruderwiki.de/Download/efa/reversessh.rescue wget http://ruderwiki.de/Download/efa/reversessh chmod +x reversessh*
Die Datei reversessh muss noch angepasst werden! Siehe Erläuterungen darin. In die /etc/rc.local fügen wir die Zeile
su root -c "reversessh&"
vor dem exit 0 ein. In die Crontab kommt ein
0 0 *** reversessh.rescue
Fertig. Wenn der Fahrtenbuchrechner sich bei einem angemeldet hat, kann man über den Tunnel zurück auf den FaBu-Rechner zugreifen:
ssh root@localhost -p 'angegebener Port'
Dann ist man mit dem FB verbunden.
Reverse-VNC
Um dem Rechner auf den Bildschirm zu schauen, installiert man x11vnc.
apt-get install x11vnc
Dann loggt man sich per ssh am FaBu ein. Daheim installiert man
apt-get install xvnc4viewer
Diesen startet man mit
xvnc4viewer -listen 5500
Dafür muss man an seinem Router Port 5500 auf seinen Rechner umleiten.
Am FaBu gibt man dann ein
su efa # Das Programm läuft unter efa x11vnc --connect IPoderDnyamischeDomainDesHomerechners exit
ein. Der Bildschirminhalt taucht bei einem daheim auf. Im Bootshaus kann man dann einem beim Arbeiten zuschauen.
Sicherheitshinweis
Aus sich vom Fahrtenbuch ist die Methode sicher. Absolut. Man müsste die Ports kennen, den DNYDNS-Account knacken, und das Passwort von root haben. Unwahrscheinlich.
Aus Sicht des Heimrechners ist sie riskant, weil jemand, der sich am Fahrtenbuch eingeloggt hat, ohne Passwort auf den Rechner daheim einloggen kann. Darum:
- immer in der ~/.ssh/authorized_keys den Schlüssel vom Fahrtenbuch auskommentieren, wenn man nicht grade aktuell den Zugriff auf FB haben will. Dann ist ein einloggen ohne Passwort nicht mehr möglich. Wenn das Passwort daheim gut ist, oder man das einloggen per Passwort ganz verbietet (siehe Verwendung von public keys), ist man auf der sicheren Seite.
Sonst hilfreich kann sein:
- einen rechtelosen Benutzer daheim anlegen, auf den das FB zugreift.
- die Dyndns-Adresse nur dann auf den Router daheim umleiten, wenn für den Zugriff nötig
- den Port nur dann auf seinen Rechner umleiten, wenn für den Zugriff nötig
Bildschirmschoner verwenden
Wer eine lustige Diashow vom Vorstand beim Biertrinken installieren mag, geht folgendermaßen vor:
sudo apt-get install xsreeensaver xscreensaver-gl
Dann verschiebt man die x.initrc und den openbox-Ordner von efa
mv /home/efa/.xinitrc /home/efa/.xinitrc.bak mv /home/efa/.config/openbox /home/efa/.config/openbox.bak
Nun meldet man sich als efa an
su efa
und startet X
startx
und siehe da, man kann mit openbox arbeiten und per rechter Maustaste -> Terminal eine Konsole starten.
Mittels
xscreensaver
Kann man nun einen Bildschirmschoner einrichten.
Die Auswahl GLSlideshow zeigt alle Bilder in /usr/share/backgrounds als Slideshow an. Die Konfigurationsmöglichkeiten reichen an die eines gewohnten Bildschirmschoners a la Windows oder Gnome/KDE locker heran ;-)
Ach ja, und nach dem ausloggen als root einloggen und
mv /home/efa/.xinitrc.bak /home/efa/.xinitrc mv /home/efa/.config/openbox.bak /home/efa/.config/openbox
eingeben. Sonst startet kein efa!
Bibliothek aktualisieren
Wer eine wechselnde Zufallsbildbibiliothek haben will, kann dies mit folgendem Skript machen:
http://ruderwiki.de/Download/efa/update_img_db
Voraussetzung ist ein php-Script auf dem Server des Vereins, wo die Bildersammlung liegt, das bei Aufruf einfach einen Link auf eines der Bilder zurück gibt. Wie man das macht, ist Sache des Homepagepflegers...
Die Geschwindigkeit des Downloades ist hier auf 10kb/s begrenzt, stört also den sonstigen Verkehr nicht wirklich. Das jeden Tag mit einem Cron-Job aufrufen, und jeden Tag gibt es etwas neues zu schauen. Der Aufruf sollte folgendermaßen lauten (muss als efa gestartet werden)
su efa -c update_img_db
Die Bilder müssen unbedingt größer sein als die Bildschirmauflösung (sonst gibts kein Bild) und müssen für efa lesbar sein!
Viel Spass!

