Efa unter Linux/Ubuntu

Aus Ruderwiki

Wechseln zu: Navigation, Suche


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.

Inhaltsverzeichnis

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.

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.

In der Anleitung wurde bis 11/2009 eine Partition /efa für die Daten eingerichtet. Da diese in dieser Anleitung nun als /home/efa verwendet wird, sind die Pfade in den Skripten angepasst. Wer die alte Version nutzt, muss also mit den Pfaden aufpassen!

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

Achtung: Die folgenden Schritte dienen dazu, den Rechner beim Hochfahren zu zwingen, immer Efa zu laden und in Efa zu bleiben, egal was man als User anderes unternimmt. Das gilt auch für den Administrator :-).
Darum: Vorher einen Neustart durchführen, sich direkt als efa einloggen, und wieder zur Loginshell zurückkehren. Wenn das klappt, kann's los gehen.
Wenn es irgendwie möglich ist, den Rechner über einen Router von einem anderen Rechner zu erreichen, ist es sinnvoll einen Openssh-Server zu installieren. Damit kann man im Notfall - sofern die Netzwerkverbindung noch zustande kommt - von außen auf den Rechner zugreifen

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

Achtung: Ab 9.10 /Karmic Koala wird das Paket grub2 installiert. Grub 2 verfügt bisher über keinen Mechanismus für einen Passwortschutz. Daher ist es sinnvoll, auf die alte Version zurück zu wechseln. Siehe auch Downgrade zu 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

Achtung: Wenn die Installation von grub fehlschlägt hat man keinen Bootmanager und kann nicht mehr starten. Im Notfall hilft folgende Anleitung

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:

Achtung: nicht diese Beispiel-Modeline übernehmen, man kann mit falschen Angaben den Monitor schrotten!
  # 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

Achtung: Unbedingt eine Sicherungskopie der /etc/X11/xorg.conf machen!!!

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 update
die 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.

Persönliche Werkzeuge