Efa unter Linux/Ubuntu
Aus Ruderwiki
Achtung: diese Anleitung ist nicht mehr gepflegt. Wer eine neue Installation machen will, nehme bitte Efa unter Linux mit Debian als Grundlage.
Wer mit Ubuntu weiterleben mag, ja, Ubuntu ändert mit jeder Version seine Funktionen. Das kann Probleme geben. Darum ja der Wechsel zu Debian...
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.
Installation eines Fahrtenbuch-PC's
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.
- Automatisches Backup & Herunterfahren: Es ist sinnvoll seine Daten regelmäßig zu sichern und den Rechner jeden Abend auszuschalten. Eine Möglichkeit ist die Nutzung zeitgesteuerter Cron-Jobs
- 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.
- 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.
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 Ubuntu als einfach (auch für Anfänger) installierbares Betriebssystem °
- es wird nur das installiert, was wirklich gebraucht wird (Minimalinstallation)
- OpenBox dient als einfach konfigurierbarer Fenstermanager
- Verwaltung findet mittels eines eigenen 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...
° ja, Ubuntu ist langsam und überladen, OK, aber dafür ist alles direkt nutzbar vorkonfiguriert. Mit Debian ist der Aufwand bedeutend höher, bis alles läuft ;-)
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 Ubuntu-Alternate-CD (siehe http://wiki.ubuntuusers.de/Downloads)
- der Rechner sollte der Einfachheit während der Installation über ein LAN-Kabel Zugriff auf das Internet haben, da Pakete verwendet werden, die nicht auf der Ubuntu-Alternate-CD oder DVD enthalten sind. Ohne Internet müssen die Pakete separat runtergeladen und z.B. auf eine CD gebrannt werden.
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.
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.
Stand der Anleitung
Wechsel 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
Neue Ubuntu-Version
Die Anleitung wurde ursprünglich für die Ubuntu-Version 8.4 geschrieben. Für die dazugekommenen Änderungen der aktuellen Ubuntu-Version 9.10 "Karmic Koala" sind entsprechende Kommentare und Aktualisierungen hinzugefügt.
Neue Pfade und Partitionen
Zusätzlich wurde die Partition für die Daten verändert. Statt wie bisher nur das Programm und die Daten auf eine Extrapartition /efa zu legen, wird nun der komplette /home-Ordner ausgelagert. Das hat den Vorteil, das auch die ganzen Einstellungen (sofern sie nicht Belange von Root betreffen, wie z.B. das Backup) im Falle eines Systemchrash erhalten bleiben. Wer die alte Anleitung benutzt hat, muss bei allen Pfadangaben aufpassen!
Verbesserungsvorschläge
- entweder einfach hier einfliessen lassen
- oder an: /sebastian/./frohn/(at)g/m/x.de (ohne die / natürlich, SPAM sei Dank)
Installation
Systeminstallation
Installation
Die Installation wird mittels einer Ubuntu-Alternate-CD (keine Desktop-CD!) gestartet. Im Beispiel wird die Version 9.10 'Karmic Koala' verwendet. Bei älteren oder neueren Versionen können einzelne Dinge abweichen.
Nach dem wählen der Sprache drückt man F4, um verschiedene Installationsoptionen auswählen zu können, und wählt die Variante „System nur mit Befehlszeile installieren“
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, nur die Tastatur sollte man per Hand auswählen. Ein Anlegen des verschlüsselten Verzeichnisses ist nicht nötig.
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.1 GB für die Beispielinstallation, wer mehr installieren will, braucht mehr... Swap etwa wie Arbeitsspeicher Daten /home der Rest
Die Einstellungen kann man wählen, wenn man "manuelle Partitionierung" wählt.
Benutzer
Im Verlauf der Installation legt man einen Benutzer efaadmin mit einem sicheren Passwort an. Dieser Nutzer dient später der Verwaltung des Rechners, sowie als Notfallzugriff auf das System.
Systemupdate
Nach Ende der Installation empfiehlt es sich, als efaadmin angemeldet ein Update des Systems mittels
sudo apt-get update && sudo apt-get upgrade && reboot
vorzunehmen und den Rechner einmal neu zu starten, um eventuelle neue Kernels zu laden.
Optional: Fernwartung via OpenSSH-Server
Man kann sich ein paar Dinge leichter machen, wenn man einen SSH-Zugriff auf den Rechner einrichtet.
Installation der benötigten Pakete
Folgende Pakete müssen installiert werden
Notwendig: rungetty Autologin-Tool (nur bis Ubuntu 9.4 nötig) xorg Der Grafik-Server hal Hardware-Abstraktion-Layer (damit Xorg die Maus und Tastatur findet, ab 8.10) openjdk-6-jre Java-Laufzeitumgebung (Suns JRE sieht besser aus, seid Ubuntu 10.4 aber nicht mehr vorhanden) 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 Webbrowser links2 einfacher Webbrowser gpm Maustreiber für links2 für (FTP-)Backups zip Dateikomprimierungstool ncftp Zum sichern der Backups Für die Bootsstattusüberwachung ruby scriptsprache fsniper Programm zum überwachen von Dateiänderungen
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.
sudo apt-get -y install xorg hal unzip openbox openbox-themes
Installation der benötigten Pakete ohne Netzwerk
Wenn kein Internetanschluss bei der Installation besteht, muss man wie unter Installation ohne Internetanschluss beschrieben vorgehen.
Systemkonfiguration
Nach der Installation muss man das System Konfigurieren.
Dabei geht es um folgendes:
- Efa läuft unter einem eingeschränkten Benutzer, der keinen Schaden anrichten kann
- Nach dem Einloggen soll keine Eingabeaufforderung 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
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.
Der User efaadmin wird noch der Gruppe efa zugeteilt, um es bei der Administration einfacher zu haben
sudo addgroup efaadmin efa
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.
Die Dateien von efa sind voreingestellt nur für efa schreibbar, was die Administration erschwert. Sie sollten für efaadmin les- und schreibbar sein.
sudo chmod -R g+w /home/efa
Einloggen
Nun loggt man sich als efa ein und legt los.
Beim Arbeiten unter anderem Namen müssen im folgenden alle ~ durch /home/efa ersetzt werden. Es wird im folgenden davon ausgegangen, dass man als efa angemeldet ist.
Wenn man nach dem Einrichten des ersten Autostarts als efa arbeiten will, muss man sich zunächst als efaadmin anmelden, und mittels su efa wieder zu dem Benutzer efa machen, um unerwünschte Autostartvorgänge zu umgehen bzw. später überhaupt als efa noch produktiv arbeiten zu können.
Schreibrechte für Efaadmin automatisch setzen
Damit das Setzen der Schreibrechte für alle neu erstellten Dateien automatisch geschieht, müssen wir die 'file mode creation mask' für efa ändern. Dies geschieht mit dem Befehl
umask 0007
Dies bedeutet Lese- und Schreibrechte für den Benutzer efa sowie die Gruppe efa, aber keinen Zugriff für alle anderen. Damit dies automatisch geschieht, kann man diese Zeile in die Dateien .profile und .bashrc einfügen, wahlweise per Editor
nano .profile nano .bashrc
oder per echo
echo 'umask 0007' >> /home/efa/.profile echo 'umask 0007' >> /home/efa/.bashrc
Ein Aus- und wieder Einloggen aktiviert die Vorgabe.
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 hängen wir in die /etc/profile folgendes an
export EFA_HOME=/home/efe export EFAADMIN_HOME=/home/efaadmin export EFA_LOG=/home/efa/efa.log export EFA_PROG=/home/efa
Das scheint umständlich, aber ist in vielen Fälle sehr gut, wenn man etwas mal an Pfaden ändern will.
Wer z.B. seine Daten an einem anderen Ort lagern will, kann dies hiermit sehr leicht ermöglichen.
Startscript erstellen
Das Startscript efa (welches das Programm efa startet)
#!/bin/bash cd $EFA_HOME echo "[$(date +%d.%m.%Y-%H:%M:$S)] efa: Starte efa" >> $EFA_LOG bash efadirekt.sh 2>> $EFA_LOG echo "[$(date +%d.%m.%Y-%H:%M:$S)] efa: Beende efa" >> $EFA_LOG
wird im Verzeichnis /home/efa/bin angelegt und mit Ausführungsrechten ausgestattet
mkdir /home/efa/log # für die Logdatei (s.o.) mkdir /home/efa/bin # bin ist automatisch in der Path-Variable des Benutzers efa nano /home/efa/bin/efa # nano ist ein einfacher Texteditor, in dem man Dateien eintippen oder verändern kann chmod +x /home/efa/bin/efa
Um das Script (bzw. den Ordner bin in der $PATH-Variable) zu aktivieren, muss man den Recher einmal neu starten oder für diese Sitzung den Befehl
PATH="$HOME/bin:$PATH"
ausführen.
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.
Unterschied von efa und efaadmin
Die folgenden Schritte werden für den Benutzer efa gemacht. Der Nutzer efaadmin hat seine eigenen Konfigurationsdateien (in /home/efaadmin) und gelangt nach dem Einloggen wie gehabt bei einer Konsole. Dort kann man dann arbeiten oder mittels startx die OpenBox-Oberfläche starten. Diese steht ihm danach uneingeschränkt mit allen Funktionen zur Verfügung, was die Administration sehr erleichtert.
In Openbox kann man natürlich mehrere Terminals parallel laufen lassen, mit mc einen zwar rudimentären aber brauchbaren Dateimanager starten und einen graphischen Texteditor (mousepad) nutzen, und das alles inklusiver aus Desktopumgebungen bekannter Funktionen wie Fensterwechsel, Fenster verschieben und Copy&Paste.
Das Openbox-Menü erhält man mit der rechten Maustaste.
Autostart des X-Servers beim Einloggen
Nach Einloggen als efa (WICHTIG) wird die Datei .profile des Users efa bearbeitet, damit nach dem Login automatisch der X- Server startet. Hierfür wird mittel
cp ~/.profile ~/.profile.bak nano ~/.profile
die Datei .profile um folgende Zeilen erweitert:
echo "[$(date +%d.%m.%Y-%H:%M:$S)] .profile: Starte Xorg" >> $EFA_LOG startx 2>> $EFA_LOG echo "[$(date +%d.%m.%Y-%H:%M:$S)] .profile: Beende Xorg" >> $EFA_LOG exit
Die Zeile führt startx dazu, dass beim Einloggen sofort der X-Server startet, die Zeile exit führt dazu, dass man nach dem Beenden von X an der Login-Shell des Systems landet, und nicht als Nutzer efa eingeloggt bleibt (und Schaden anrichten könnte). Ein weiteres Arbeiten ist dann nur noch mittels Passworteingabe möglich. Bei Benutzung der Version 9.10 oder neuer kann man ein automatisches Neustarten des Programmes efa erreichen (siehe Autologin)
Alle Aktionen werden in der Datei /home/efa/efa.log protokolliert, was bei der Fehlerdiagnose hilfreich sein kann.
Autostart von OpenBox und Efa beim Laden von Xorg
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 fügen dort folgendes ein
echo "[$(date +%d.%m.%Y-%H:%M:$S)] .xinitrc: Starte Openbox" >> $EFA_LOG openbox-session & 2>> $EFA_LOG echo "[$(date +%d.%m.%Y-%H:%M:$S)] .xinitrc: Starte efa" >> $EFA_LOG efa 2>> $EFA_LOG echo "[$(date +%d.%m.%Y-%H:%M:$S)] .xinitrc: Beende Openbox" >> $EFA_LOG exit
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.
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 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.
<?xml version="1.0" encoding="UTF-8"?> <openbox_menu xmlns="http://openbox.org/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://openbox.org/ file:///usr/share/openbox/menu.xsd"> <!-- Menudatei für Efa --> <menu id="root-menu" label="Openbox"> <item label=":-)"> </item> </menu> </openbox_menu>
mkdir ~/.config cd ~/.config/ mkdir openbox cd openbox nano menu.xml cd ~
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 kopiert man hier und speichert sie ab:
cd ~/.config/openbox/ nano rc.xml cd ~
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!
Manipulationen an der Konfiguration verhindern
Unfein und gemein, aber wirkungsvoll: Man nimmt efa die Schreibrechte an den bearbeiteten Konfiguationsdateien.
Dazu meldet man sich als efaadmin an und gibt folgendes Kommando ein
sudo chown efaadmin:efaadmin /home/efa/.profile /home/efa/.xinitrc /home/efa/bin/efa /home/efa/.config/openbox/menu.xml /home/efa/.config/openbox/rc.xml
Damit gehören die Dateien nun nicht mehr efa, sondern efaadmin, und kann efa die Dateien zwar lesen (und starten), sie aber nicht verändern!
Für Spielkinder: Bildschirmschoner
siehe Bildschirmschoner verwenden
XServer konfigurieren
Vorarbeiten: Xorg.conf testen
Ab 9.10 kann man diesen Schritt sich sparen, indem man die anderen Konsolen deaktiviert und für den Fall eines Abbruches von X einen Neustart auslöst. Kann aber nicht schaden trotzdem die xorg.conf zu bearbeiten.
Ab Karmic Koala: 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.
Vorherige Versionen: Sicherungskopie von /etc/X11/xorg.conf machen!! Im Falle einer fehlerhaften Konfigurationsdatei ist ein starten des X-Servers nicht mehr möglich (und die Reparatur ist nicht immer einfach)
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 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 "DontZap" "true" 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)
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 /home/efa kopieren (oder alle bisher verwendeten Pfade angepassen).
Sonst führt man folgende Befehle aus:
cd /home/efa wget http://efa.nmichael.de/download/efa183.zip # Bzw. den Link zur aktuellen Versionsdatei !!! unzip efa182.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.
Automatischer Neustart
funktioniert ...
Alle weiteren Sicherheitseinstellungen findet man auf der Homepage von efa erläutert.
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, als efa am Rechner aktiv zu werden, 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 ein cron-job an, der alle 10 Minuten die wichtigen Daten in eine ZIP-Datei packt, und diese in einem Verzeichnis speichert, das efaadmin gehört sowie optional per FTP auf einen externen Server hochlädt.
Wenn man das folgende Beispiel verwendet, werden lokal
- alle 10 Minuten die Ordner daten und cfg sowie alle *.log als /home/efaadmin/backup/t-X.zip gepackt (X = Tag des Monats), sodass man von jedem Tag eine Sicherung hat
- am 1. jeden Monates die Daten (s.o.) im Verzeichnis /home/efaadmin/backup/efa-Y-M.zip (Y=Jahr, M = Monat) zusätzlich dauerhaft gesichert
Und im Netz:
- jede Stunde wird die zip-Datei hochgeladen
- am Monatsende gibt es eine dauerhafte Sicherungskopie
Man erhält also eine tägliche Sicherung aller Daten der letzten 31 Tage sowie eine monatliche Sicherung aller Daten.
Hierfür benötigt man das Paket zip sowie für die ftp-Funktion ncftp
sudo apt-get install zip ncftp
Man sollte bedenken, dass dabei einige Datenmengen zusammen kommen, sowohl was die Zahl der Verbindungen (~6000 pro Jahr), die Übertragung (jedes Mal 30-100KB) sowie Platz auf dem Server (31+X mal 30-100KB) angeht.
Alle Erfolgs- und Fehlermeldungen des Backups werden in der Datei /home/efa/backup.log dokumentiert. Da insbesondere die Logdatei von efa (wo alles drin steht, was passiert ist!!) recht schnell groß wird, wird sie im folgenden Beispiel jeden Monat gesplittet.
Crontab bearbeiten
Man muss sich als efaadmin anmelden, um per sudo als root Befehle ausführen zu können. Mittels
sudo crontab -e
und nach Auswählen eines Editors kommt man in die Crontab von root.
Diese sollte nachher etwa 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 alle 10 Minuten zwischen 7 und 22:50 */10 7-22 * * * efabackup T B 2>> /home/efaadmin/backup.log # Backup auf den Server zur vollen Stunde zwischen 7 und 22 Uhr 1 7-23 * * * efabackup T F 2>> /home/efaadmin/backup.log # einmal im Monat via FTP sichern 0 0 1 * * efabackup M B F L 2>> /home/efaadmin/backup.log # Ende
Wer kein FTP nutzen will, kann einfach alle F aus den efabackup-Kommandos entfernen sowie die Zeile "Backup auf den Server" mittels # auskommentieren
Die Backups alle 10 min werden immer neu überschrieben bzw. die am Ende eines Tages monatlich und die Backups am Monatsende nie überschrieben.
Shellscript erstellen
Die Datei efabackup kommt in das Verzeichnis /bin (wo nur root Zugriff hat, also sudo nicht vergessen):
Die Datei /bin/backup muss noch ausführbar gemacht werden:
sudo chmod +x /bin/efabackup # Shellscript ausführbar machen
Die Syntax ist folgende:
efabackup <optionen>
Dabei bedeutet:
- T: im Folgenden ein "tägliches Backup" anlegen
- M: im Folgenden ein "monatsabschluss Backup" anlegen
- B: lokal speichern
- F: auf den Server hochladen
- L: Logdateien neu anfangen
Beispiel:
- efabackup T B: Tägliches Backup auf die Festplatte
- efabackup T F: Vorhandene t-XX.zip-Datei hochladen (wird nicht extra erstellt)
- efabackup T B F: Tägliches Backup auf die Festplatte und auf den Server hochladen
- efabackup M B F L: Monatliches Backup auf die Festplatte, hochladen und Logdateien anlegen.
Verzeichnisse anlegen
Das Verzeichnis /home/efaadmin/backup muss (als Benutzer efaadmin!!) angelegt werden:
mkdir /home/efaadmin/backup # Verzeichnis anlegen chmod 700 /home/efaadmin/backup # dadurch ist das Verzeichnis nur für efaadmin und root betretbar!
Nutzer zu crontab hinzufügen
Der Nutzer root muss nun der Gruppe crontab hinzugefügt werden
sudo addgroup root crontab
Variante: Hochladen der Sicherungskopie nach jedem Ändern der Dateien
Hierbei wird quasi nach jeder Dateiänderung (also bei jedem Eintragen oder Austragen) eine Sicherungskopie gemacht. Das Verfahren hierbei ist unter aktuelle Fahrtenbuchdatei auf einen Webserver hochladen beschrieben, und muss einfach nur angepasst werden (also der Befehl, den wir hier in der Crontab benutzen bei fsniper als Aktion einfügen).
Man erspart damit unnötige Uploads von gar nicht geänderten Dateien, wenn allerdings viel Gebrauch von EFA gemacht wird, kommt es auch zu viel Netzwerkverkehr.
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>> /home/efaadmin/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.
Optional: Botsstatusänderungen überwachen
Wunsch des Bootswartes, immer informiert zu sein: automatische Benachrichtigung bei Änderung des Bootsstatus
Abschluss der Installation
Darum: Vorher einen Neustart durchführen, sich direkt als efa einloggen, und wieder zur Loginshell zurückkehren. Wenn das klappt, kann's los gehen.
Autologin von efa
Vor dem weiteren Arbeiten sollte sichergestellt werden, dass alle vorhergehenden Schritte zum gewünschten Ergebnis führen, und man nach Beenden von efa (oder zumindest des Startscriptes zum Backups einspielen) zu einer funktionierenden Loginshell zurück kommt. Also ausloggen, als efa einloggen und sehen, was passiert. Nur wenn man nach Schliessen von efa zur Login-Shell zurück kommt, sollte der folgende Schritt gemacht werden.
Versionen vor 9.10 (ohne upstart)
Der Nutzer efa soll beim Rechnerstart automatisch angemeldet werden und efa geladen werden. Hierfür wird in der Datei /etc/event.d/tty1 die Zeile
exec /sbin/getty 38400 tty1
durch
exec /sbin/rungetty --autologin efa tty1
ersetzt.
Wenn man EFA beendet, kommt man an eine normale Loginshell, wo man sich als efaadmin anmelden kann um zu arbeiten, oder durch anmelden als efa einen Neustart von EFA auslösen. Nachteil ist, dass man als Nutzer ohne Passwort nicht weiterkommt, also den Rechner neu starten muss, um zu EFA zu gelangen.
Versionen ab 9.10 (mit upstart)
Upstart ist eine neue Technik ab Ubuntu 9.10, die Schritte des Systemstartes und im laufenden Betrieb zu organisieren. Dabei wird keine strikte Reihenfolge mehr eingehalten, sondern werden aufgrund von Events Aufgaben gestartet oder beendet.
Das kann man nutzen um ein etwas "komfortableres System" zu bauen, in dem sich das Programm EFA - nach dem es warum-auch-immer beendet wurde - automatisch immer wieder neu startet, es sei denn, efaadmin loggt sich ein.
- Beim Start des Rechners wird wie gehabt die Loginshell auf der Konsole tty1 gestartet. Das Erledigt der Job tty1 mittels des Befehles getty.
- gleichzeitig startet der job efa. Er prüft in einer Endlosschleife, ob efaadmin eingeloggt ist. Wenn ja, dann schläft er für 15 Sekuinden, sonst startet er EFA automatisch.
Wenn man also den Rechner startet, ist efaadmin nicht angemeldet, und EFA startet. Wenn man EFA beendet, kommt man zur loginshell. Wenn man nach 15s als efaadmin angemeldet ist, dann merkt dies der Job efa und startet EFA nicht neu. Wenn man sich abgemeldet hat, prüft der Job efa nach 15s ob efaadmin angemeldet ist, und startet dann EFA neu.
Folgende Datei muss als efa.conf in /etc/init abgelegt werden.
start on stopped rc RUNLEVEL=[2345]
stop on runlevel [016]
respawn
task
console output
emits starting-x
script
while [ 1 ]
do
if ! w -h "efaadmin" | grep -q ""
then
su - efa -c startx
fi
sleep 15
done
end script
Wer mehr als einen Nutzer zulasse will (bei uns das Mailprogramm für die Werkstatt), kann folgenden uneleganten Weg gehen, in dem er die Zeile
if ! w -h "efaadmin" | grep -q ""
durch
if ! users | grep -q -e "(user1|user2|user3)"
ersetzt. Nachteil ist, das nun alle User auf dem System Namen besitzen müssen, deren Name nicht Teil eines anderen ist (z.B. efa und efaadmin). Sonst kann es zu Fehlalarm kommen. Sollte in unserem Fall einfach zu realisieren sein.
Lücke schliessen
Wenn alles klappt, kann man die Dateien /etc/init/ttyX.conf mit X gleich 2 bis 5 löschen und damit die anderen Konsolen abschaffen.
Wem das zu kompliziert ist...
... kann auch die selbe Lösung wie vor 9.10 ohne upstart anwenden. Er muss dann nur /etc/init/tty1.conf anstelle /etc/event.d/tty1 editieren.
Problemfälle
Falls man als efa automatisch eingeloggt wird und in einer Sackagsse landet, hat man noch die Chance beim Start GRUB aufzurufen, und im recovery-Modus zu starten. Dann kann man den folgenden Schritt als efaadmin aus wieder rückgängig zu machen und sich auf Fehlersuche begeben. Damit kommen wir auch noch zum letzen Sicherheitsleck:
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""
'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.
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!
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, viel Glück beim Hochfahren...
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)
Problemlösung: Installation ohne Internetanschluss
Installieren der Pakete von CD
Wenn kein Netzwerk vorhanden ist, wird es interessanter. Zur Installation der Pakete Xorg, hal und unzip wird eine Sicherungskopie der Datei /etc/apt/sources.list gemacht und dann sichergestellt, dass in den Zeilen mit deb cdrom... das # entfernt und alle anderen Zeilen die mit deb http... beginnen mittels # ausgeklammert sind.
sudo -i cp /etc/apt/sources.list /etc/apt/sources.list.bak nano /etc/apt/sources.list
Dann wird mittels
apt-get updatedie Liste aktualisiert und die Pakete
apt-get install xorg hal unzip
von der CD installiert.
Download der restlichen Pakete
Die restlichen Pakete müssen alle von http://packages.ubuntu.com heruntergeladen werden. Um eine Liste der herunterzuladenen Pakete zu erhalten, geht man am besten folgendermaßen vor.
Installation des Systemes in einer virtuellen Maschine
In einer Virtuellen Maschine wird das System normal als Minimalinstallation eingerichtet (am einfachsten mit aktiver Netzwerkverbindung!). Wenn das Setup fertig und der Rechner neu gestartet ist, geht man folgenden "Umweg":
Installieren aller auf der CD vorhandenen Pakete
Auf der CD sollten xorg hal unzip enthalten sein. Man kann diese ganz einfach mit allen Abhängigkeiten installieren.
Wenn man ganz korrekt sein will, installiert man die Pakete von der CD (siehe Installieren der Pakete von CD), im Normalfall sollte es aber auch so gehen, im schlimmsten Fall lädt man im folgenden Pakete herunter, die auch auf der CD gewesen wären.
Die Netzwerk-Verbindung kann man bei Virtualbox über den Punkt "Ändern/Netzwerkadapter" deaktivieren.
Erstellen der Liste
Nun wird die ursprüngliche /etc/apt/sources.list wieder hergestellt, so dass alle Quellen wie vorher aktiv sind, und die Netzwerkverbindung aktiviert.
Der Befehl
sudo apt-get -qq --print-uris install GewuentschtePakete | awk '{print $1}' | tr -d "'" > wget.list
schreibt die Download-Adressen der angeforderten Pakete sowie aller durch Abhängigkeiten dazugekommenen Pakete (ca. 50-60 Stück) in eine Liste wget.list. Der Inhalt dieser kann dann mittels wget
wget -i wget.list
heruntergeladen werden. Wget steht auch für die Windows-Plattform zur Verfügung, so dass man die Liste auch auf einem Windows-Rechner herunterladen kann.
CD brennen/USB-Stick
Die Daten müssen dann auf eine CD gebrannt oder auf einem USB-Stick mitgebracht werden.
Installieren der Pakete
Nach einlegen der CD oder Anstecken des USB-Sticks bindet unsere rudimentäre Linux-Installation diese nicht automatisch ein. Man muss das Laufwerk erst mounten und in das entsprechende Verzeichnis wechseln. Bei einer CD geht das via
sudo mount /dev/cdrom /media/cdrom cd /media/cdrom
bzw. bei einem USB-Stick
sudo mkdir /media/USB sudo mount /dev/sdX /media/USB cd /media/USB
wobei sdX der Laufwerksbuchstabe des USB-Sticks sein muss (per sudo fdisk -l ermittelbar)
Dann werden die Pakete „per Hand“ via sudo dpkg -i <paketname> installiert werden. Man kann es sich einfacher machen, indem man in das Verzeichnis mit allen .deb-Dateien wechselt und es per Script macht:
for f in *.deb; do sudo dpkg -i $f; done
Man erhält dabei eine große Anzahl furchterregend klingender Fehlermeldungen, die einem glauben lassen könnten, das der Rechner nie wieder hochfährt. Das kommt daher, da dpkg die Pakete in alphabetischer Reihenfolge installiert und versucht zu konfigurieren. Das durch diese Reihenfolge zeitweise Abhängigkeiten nicht erfüllt sind, ergibt sich zwangsläufig. Die ganzen Fehlermeldungen können aber einfach behoben werden, indem man die Pakete und ihre (durch unser Vorgehen erfüllten) Abhängigkeiten anschließend noch mittels
sudo apt-get -f install
konfiguriert.
Optional
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.
Pakete installieren
sudo apt-get install ruby fsniper
fsniper einrichten
die .profile des Benutzers efa muss erweitert werden:
[...] # automatische Dateiüberwachung starten echo "[$(date +%d.%m.%Y-%H:%M:$S)] .profile: Starte fsniper" >> /home/efa/efa.log # fsniper starten fsniper --daemon 2>> /home/efa/efa.log # efa starten echo "[$(date +%d.%m.%Y-%H:%M:$S)] .profile: Starte Xorg" >> /home/efa/efa.log startx 2>> /home/efa/efa.log echo "[$(date +%d.%m.%Y-%H:%M:$S)] .profile: Beende Xorg" >> /home/efa/efa.log exit
dann muss eine Datei /home/efa/.config/fsniper/config angelegt werden
watch {
/home/efa/daten {
*.efb {
handler = bash /home/efa/bin/upload %%
}
}
}
Der Ordner home/efa/.config/fsniper/ und Inhalt muss efa gehören, notfalls mit
sudo chown -R efa:efa home/efa/.config/fsniper/setzen.
Uploadeskript
Es wird ein Skript namens /home/efa/bin/upload erstellt und ausführbar gemacht.
Nun wird bei jeder Änderung der XX.efb die Datei in efaaktuell.efb kopiert, und diese hochgeladen. Das ist unabhängig von dem realen Namen, entscheident ist, welche Datei modifiziert wurde, das wohl meistens die aktuelle ist :-)
automatische Benachrichtigung bei Bootsstatusänderung
Wer möchte, das der Bootswart jedes Mal eine Nachricht bekommt, wenn jemand den Bootsstatus ändert, kann man dies folgendermaßen machen:
Vorbereitung
Man muss ersteinmal fsniper konfigurieren und laden, wie, das findet man Pakete installieren
fsniper konfigurieren
Die aus dem vorigen kapitel bekannte Datei /home/efa/.config/fsniper/config muss jetzt folgendermaßen aussehen:
watch {
/home/efa/daten {
bootstatus.efdb {
handler = bash /home/efa/bin/emailbenachrichtigung
}
}
}
Wer auch den Upload der aktuellen Datei machen will, fügt einfach den Absatz bootsstatusd......} in die Klammer /home/....} ein.
Skripte erstellen
fsniper überwacht nun jede Änderung der Datei bootstatus.efdb und startet bei Änderung das Skript emailbenachrichtigung
Dieses sieht so aus:
#!/bin/bash echo "[$(date +%d.%m.%Y-%H:%M:$S)] fsniper: Bootsstatus.efdb geändert" >> ~/fsniper.log echo "[$(date +%d.%m.%Y-%H:%M:$S)] fsniper: starte Skript..." >> ~/fsniper.log ruby /home/efa/bin/bootsmeldungen.rb >> ~/fsniper.log echo "[$(date +%d.%m.%Y-%H:%M:$S)] fsniper: ...beendet" >> ~/fsniper.log cp /home/efa/daten/bootstatus.efdb /home/efa/daten/bootstatus.efdb.old >> ~/fsniper.log echo "[$(date +%d.%m.%Y-%H:%M:$S)] fsniper: Datei bootsatus.efdb kopiert" >> ~/fsniper.log echo "[$(date +%d.%m.%Y-%H:%M:$S)] fsniper: Aufgabe beendet" >> ~/fsniper.log
und muss mittels
chmod +x /home/efa/bin/emailbenachrichtigung
ausführbar gemacht werden.
In dem Skript findet sich der Aufruf
ruby /home/efa/bin/bootsmeldungen.rb >> ~/fsniper.log
Hier wird das ruby-skript /home/efa/bin/bootsmeldungen.rb gestartet. Das Skript ließt aus der Datei efadirekt.log den letzten sich angemeldeten Administrator, und vergleicht die Datei bootsatus.efdb mit einer bei jedem Aufruf angelegten Sicherungskopie bootstatus.efdb.old des vorherigen Zustandes. Den Unterschied bereitet sie auf, und macht eine Sicherungskopie des neuen Zustandes.
E-Maildaten angeben
Zuletzt schickt das Skript noch automatisch eine E-Mail an die angegebene Adresse. Dafür muss man seine Daten noch im Skript in den oberen Zeilen eingeben.
Um beim ersten Mal nicht alle Meldungen als Neu zu erhalten, sollte man noch einmal
cp /home/efa/daten/bootstatus.efdb /home/efa/daten/bootstatus.efdb.old
eingeben.
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 (als efaadmin)
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, und siehe da, man kann mit openbox arbeiten.
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 efaadmin 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!
Viel Spass!
FTP-Server statisch einbinden
Man kann mittels des Paketes curlftps ein FTP-Verzeichnis ins Dateisystem einbinden. Hat den Vorteil, dass man auf dieses vom Rechner aus Zugreifen kann (Schreiben, Lesen, Löschen), aber den Nachteil, das man eben genau jenes tun kann.
Folgende Vorgehensweise ist möglich:
sudo apt-get install curlftpfs sudo addgroup efaadmin fuse sudo chmod a+r /etc/fuse.conf sudo mkdir /media/ftp-server
In der Datei fuse.conf dann die beiden Zeilen
mount_max = 999 user_allow_other
auskommentieren oder einfügen.
Manuell einbinden
Nun kann man mittels
curlftpfs -o nonempty <user>:<passwort>@<host> /media/ftp-server/
den Server in das Verzeichnis /media/ftp-server einhägen und darauf zugreifen.
Nun kann man in dem Verzeichnis /media/ftp-server wechseln und dort agieren. Zum Überprüfen der Backupfunktion oder dort aufräumen ganz praktisch.
Es hilft ein Startscript in ~/bin zu erstellen und ausführbar zu machen
user=<user> host=<host> echo -ne "Bitte das ftp-Passwort für $user auf $host eingeben: " read passwd curlftpfs -o nonempty $user:$passwd@$host /media/ftp-server/
Statisch einbinden
Wer das ganze bei jedem Start haben will, muss die Zeile
curlftpfs#<user>:<passwort>@<host> /media/ftp-server fuse auto,user,uid=1000,tlsv1,allow_other,disable_eprt 0 0
in die /etc/fstab eintragen.
Nun kann man das Verschieben der Sicherungskopien auch mittels mv oder cp erledigen. Problem ist, dass wenn der Rechner gehackt wird, der Eindringling auch auf den Server zugreifen kann.
Aushängen
des Verzeichnisses geschieht mit
sudo fusermount -u /media/ftp-server
Nutzen von Modemverbindungen
Wer im Verein kein Internet mit Flatrate hat (wohl die Mehrheit), der kann auch per Einwahlverbindungen arbeiten. Eine Anleitung hierzu gibt es noch nicht, aber pppd ist wohl ein heißer Tipp!
Weitere Links findet man unter wiki.ubuntuusers.de/Internetzugang.

