Shell PowerShell Cygwin ssh download installation howto configure make install ZIP GZIP bzip2 tar 7-Zip RAR chmod chown sudo runas dd dcfldd fdisk mount ifconfig ipconfig putty SCP WinSCP SSHFS FTP TFTP wget Telnet netcat TightVNC RDP Synergy dnsmasq
(Link zu dieser Seite als [[QEMU-KVM-Buch/ Anhang/ Nützliche Tools]])
[bearbeiten] Nützliche Tools
In diesem Abschnitt werden einige nützliche Tools für die Arbeit mit QEMU und KVM erläutert. Dieser kurze Überblick dient auch dazu, sich bei weniger bekannten Gast-Systemen zurechtzufinden. Die meisten der hier beschriebenen Tools sind als Kommandozeilen-Befehle zu bedienen und kommen aus dem Unix-Umfeld. Sie sind oft auch für anderen Plattformen, wie Microsoft Windows-Versionen, verfügbar (siehe auch https://ninite.com).
[bearbeiten] Kommandozeileninterpreter
[bearbeiten] Unix-Shells
Unix-Server werden meist über die Kommandozeile bedient. Dies liegt daran, dass die Shells (Kommandozeileninterpreter) unter Unix sehr leistungsfähiger sind. Außerdem ist eine Shell bei manchen Aufgaben einer grafischen Benutzeroberfläche überlegen, da zum Beispiel Ablaufsteuerung und Programmrückmeldungen einbezogen werden können. Neben der interaktiven Nutzung haben die Shells auch die Aufgabe Shell-Skripte auszuführen. Es stehen unter Unix/Linux unterschiedliche Shells zur Verfügung, zum Beispiel sh, csh, ksh, bash, tcsh und zsh. Unter Linux wird häufig bash angewendet.
[bearbeiten] DOS-Eingabeaufforderung
Unter den inzwischen veralteten DOS-basierten Microsoft Windows-Versionen wurde command.com verwendet, um eine DOS-Eingabeaufforderung bereitzustellen. Microsoft Windows NT und Nachfolger setzen einen neuen, weitgehend abwärtskompatiblen Kommandozeileninterpreter namens cmd.exe ein. Gestartet wird die DOS-Eingabeaufforderung bei neueren Microsoft Windows-Versionen über den Punkt Ausführen im Start-Menü. In der erscheinenden Eingabe-Zeile gibt man den Befehl cmd ein. Beendet wird die DOS-Eingabeaufforderung mit exit.
C:\> exit
[bearbeiten] Cygwin – Unix-Tools für Microsoft Windows
Download: http://www.cygwin.com/setup.exe
Cygwin ist eine Emulation der Linux-API unter verschiedenen Versionen von Microsoft Windows. Dadurch lassen sich Programme, die üblicherweise unter POSIX-Systemen wie GNU/Linux, BSD und Unix laufen, auf Microsoft Windows portieren. POSIX (Portable Operating System Interface) ist ein für Unix entwickeltes standardisiertes Application Programming Interface. Zur Installation lädt man das Setup-Programm herunter und startet es. Dieses kleine Programm holt sich alle benötigten Dateien direkt von verschiedenen FTP-Servern. Bei der Installation werden drei verschiedene Optionen angeboten.
| Install From Internet | Die benötigten Dateien werden direkt aus dem Internet während der Installation heruntergeladen. |
| Download without installing | Alle benötigten Dateien werden für eine spätere Installation heruntergeladen aber nicht installiert. |
| Install from Local Directory | Die zur Installation benötigten Dateien wurden bereits vorher über die Option Download without installing heruntergeladen. |
Für eine einmalige Installation ist die Option Install From Internet zu anzuwenden. Im nächsten Dialog wird das Verzeichnis gewählt, in das Cygwin installiert werden soll. Die Vorgabe dazu ist C:\cygwin. Weiterhin wird abgefragt ob der angemeldete oder alle Benutzer Cygwin starten dürfen. Zu empfehlen ist, allen Benutzern (All Users) die Verwendung von Cygwin zu erlauben. Es wird auch gefragt, in welchem Format Text-Dateien interpretiert werden sollen. Hier empfiehlt sich das Format Unix. Danach ist das Verzeichnis für die heruntergeladenen Dateien vorzugeben. Im nächsten Schritt wird nach einem Proxy-Server gefragt. Ist kein Proxy verfügbar, ist die Option Direct Connection die richtige Wahl. Bei der Wahl des Mirror-Servers empfiehlt es sich, einen Server in der Nähe auszuwählen. Das Setup-Programm lädt eine Liste der verfügbaren Pakete und bietet diese zur Auswahl an. In der Default-Einstellung werden die bash-Shell und einige Zusatz-Tools installiert. Es sollten mindestens die Paketgruppen Archive, Doc, Net, System, Text und Web zur Installation ausgewählt werden. Dazu klickt man in der Liste rechts neben dem Namen der Paketgruppen auf den Text Default. Statt Default muss jeweils Install stehen. Pakete können auch nachträglich durch erneutes Aufrufen von setup.exe installiert werden. Nach dem Klicken auf den Button Weiter beginnt Cygwin mit dem Download und der Installation der ausgewählten Pakete. Am Ende der Installation erfolgt die Abfrage, ob Einträge im Start-Menü und ein Icon auf dem Desktop eingerichtet werden sollen. Cygwin wird durch Anklicken des Icons gestartet. Cygwin stellt eine Unix-Umgebung bereit. Unter Unix ist der Pfad-Trenner ein Slash (/) und kein Backslash (\). Die Windows-Registry kann unter Cygwin unter /proc/registry durchsucht werden. Laufwerksbuchstaben (C:, D:, ...), wie unter Microsoft Windows, sind nicht vorhanden. Zum Beispiel wird aus dem Windows-Pfad C:\Temp\test.txt in Cygwin der Pfad /cygdrive/C/Temp/test.txt. Das Wurzelverzeichnis (/) unter Cygwin entspricht dem Cygwin-Installations-Pfad. Falls Cygwin in C:\cygwin installiert ist, sind die beiden Pfade /cygdrive/C/usr/bin/gzip.exe und /usr/bin/gzip.exe äquivalent. Ein Wechsel des Laufwerks erfolgt mit cd, gefolgt von dem Laufwerksbuchstaben. Zum Beispiel wechselt der folgende Befehl zum Laufwerk C.
~$ cd c:
[bearbeiten] Windows PowerShell
Download: http://www.microsoft.com/germany/technet/scriptcenter/hubs/msh.mspx
Einer komfortable Shell unter Microsoft Windows ist die Windows PowerShell. Die PowerShell ist eine moderne Alternative zum Windows-Kommandozeilenprogramm cmd.exe und zum Windows Script Host.
[bearbeiten] Hilfestellungen
Unter Unix/Linux beziehungsweise Cygwin erhält man Hilfestellungen über die Manual-Pages. Der Aufruf erfolgt durch den Befehl man gefolgt von dem Befehl, den man erläutert haben will. Beispiel:
~$ man qemu
Ist der Befehl unbekannt, listen man mit apropos alle Manual-Pages zu einem bestimmten Stichwort auf.
~$ apropos qemu qemu (1) - QEMU Emulator User Documentation qemu-doc (1) [qemu] - QEMU Emulator User Documentation qemu-img (1) - QEMU disk image utility qemu (1) - QEMU Emulator User Documentation qemu-doc (1) [qemu] - QEMU Emulator User Documentation qemu-img (1) - QEMU disk image utility
Unter Microsoft Windows wird im DOS-Eingabefenster mit dem Befehl help gefolgt durch den Befehl, den man erläutert haben will, eine Hilfestellung gezeigt. Das folgende Beispiel zeigt eine Hilfestellung zu dem Befehl dir.
C:\> help dir
Unter Microsoft Windows gibt es weiterhin eine Hilfestellung im Start-Menü unter Hilfe und Support.
[bearbeiten] Datei- und Verzeichnis-Befehle
Um das Verzeichnis zu wechseln, dient unter Unix und Microsoft Windows der Befehl cd gefolgt von dem Namen des Ziel-Verzeichnisses.
~$ cd Verzeichnis
Ein Verzeichnis höher gelangt man mit cd gefolgt von zwei Punkten. Unter Unix muss hinter cd immer ein Leerzeichen stehen.
~$ cd ..
Zur Ermittlung des aktuellen Verzeichnispfades dient unter Unix der Befehl pwd. Unter Microsoft Windows kann dazu der Befehl dir angewendet werden. Dieser listet auch den Inhalt des aktuellen Verzeichnisses auf.
C:\> dir
Unter Unix dient zum Auflisten des Inhaltsverzeichnisses der Befehl ls. Mit der Option -l erfolgt eine detaillierte Anzeige. Dabei werden folgende Informationen zu der Datei ausgegeben:
- Datei-Rechte
- Eigentümer
- Gruppenzugehörigkeit
- Größe
- Datum der letzten Änderung
- Datei-Name.
Beispiel:
~$ ls -l -rw-r--r-- 1 robert robert 24264704 2007-07-10 20:04 ReactOS.img -rw-r--r-- 1 robert robert 25579520 2007-03-09 14:30 ReactOS.iso
Mit der Option -h zeigt der Befehl ls die Größe der Dateien in KByte, MByte, GByte oder TByte an.
~$ ls -lh -rw-r--r-- 1 robert robert 24M 2007-07-10 20:04 ReactOS.img -rw-r--r-- 1 robert robert 25M 2007-03-09 14:30 ReactOS.iso
Sowohl unter Microsoft Windows als auch unter Unix lassen sich Wildcards zum Filtern der Dateinamen anwenden. Wildcards sind die Sonderzeichen Stern (*) und Fragezeichen (?). Der Stern steht für eine beliebige Anzahl von beliebigen Zeichen im Dateinamen. Ein Fragezeichen steht dagegen für genau ein beliebiges Zeichen. Das folgende Beispiel listet unter Microsoft Windows alle Dateien mit einer Datei-Endung .img auf.
C:\> dir *.img
Das folgende Beispiel listet unter Unix alle Dateien auf, die drei Zeichen im Datei-Namen haben, wobei das erste Zeichen ein a ist.
~$ ls a??
Verzeichnisse erstellt man unter Unix und Microsoft Windows mit dem Befehl mkdir gefolgt von dem Namen des neuen Verzeichnisses. Unter Microsoft Windows gibt es auch die Kurzform md. Beispiel unter Unix:
~$ mkdir Verzeichnis
Beispiel unter Microsoft Windows:
C:\> mkdir Verzeichnis
Zum Löschen von leeren Verzeichnissen dient unter Unix und Microsoft Windows der Befehl rmdir.
C:\> rmdir Verzeichnis
Unter Unix können ganze Verzeichnisbäume gelöscht werden. Dazu dient der Befehl rm -rf gefolgt von dem Verzeichnis-Namen. Die Option -r bewirkt das Löschen aller Unterverzeichnisse und darin enthaltener Dateien. Die Option -f löscht ohne Nachfrage. Dieser Befehl sollte nach gründlicher Überlegung angewendet werden. Er löscht wirklich alles, auch in Unterverzeichnisse eingebundene Festplatten. Unter Microsoft Windows löscht man Verzeichnisse, die nicht leer sind, mit rmdir /s.
C:\> rmdir /s Verzeichnis
Das Löschen von Dateien erfolgt unter Unix mit dem Befehl rm, gefolgt von dem Datei-Namen.
~$ rm Datei
Unter Microsoft Windows werden Dateien mit dem Befehl del gelöscht.
C:\> del Datei
Das Umbenennen von Verzeichnissen und Dateien erfolgt unter Unix mit mv und unter Microsoft Windows mit move. Danach wird jeweils der alte und danach der neue Name angegeben. Beispiel unter Microsoft Windows:
C:\> move alterName neuerName
Beispiel unter Unix:
~$ mv alterName neuerName
Weiterhin dienen die Befehle move und mv auch zum Verschieben von Dateien oder von Verzeichnissen in andere Verzeichnisse. Beispiel unter Microsoft Windows:
C:\> move alterName Verzeichnis
Beispiel unter Unix:
~$ mv alterName Verzeichnis
Kopiert werden Dateien unter Unix mit cp. Sollen Verzeichnisse mit Inhalt kopiert werden, ist die Option -r mit anzugeben.
~$ cp -r Verzeichnis VerzeichnisKopie
Unter Microsoft Windows werden Dateien mit dem Befehl copy kopiert.
C:\> copy Datei DateiKopie
Komplette Verzeichnisse werden unter Microsoft Windows mit dem Befehl xcopy /e kopiert.
C:\> xcopy /e Verzeichnis VerzeichnisKopie
[bearbeiten] Links
Unter Unix und Linux ist es möglich, Dateien und Verzeichnisse durch Links mehrfach im Dateisystem zu referenzieren. Man unterscheidet zwischen harten und symbolischen Links. Harte Links können nur auf Dateien angewendet werden und nutzen jeweils den gleichen Inode der Ziel-Datei. Ein Inode kennzeichnet durch eine einmalige Nummer eindeutig eine Datei. Das bedeutet, dass ein harter Link immer noch funktioniert, wenn die Ziel-Datei verschoben wurde. Ein symbolischer Link, auch Symlink oder Softlink genannt, ist lediglich eine Referenz und kein richtiges Element. Wenn man die Zieldatei verschiebt, und ein Softlink zeigt darauf, kann die Zieldatei nicht wissen, dass ein Link auf sie zeigt, womit der symbolische Link ins Leere zeigt. Der Vorteil ist, dass diese Arten von Verknüpfungen partitions- und dateisystemübergreifend arbeiten können und auch bei Verzeichnissen funktionieren. Unter Unix wird mit dem Befehl ln -s ein symbolischer Link erzeugt. Im folgenden Beispiel wird ein symbolischer Link mit dem Pfad /usr/src/linux auf das vorhandene Verzeichnis /usr/src/linux-source-2.6.15 angelegt. Das heißt, unter dem Pfad /usr/src/linux wird der Inhalt des Verzeichnisses /usr/src/linux-source-2.6.15 abgebildet.
~# ln -s /usr/src/linux-source-2.6.15 /usr/src/linux
Durch die Option -f kann ein vorhandener symbolischer Link überschrieben werden. Nach dem Ausführen des folgenden Beispiels zeigt der symbolische Link /usr/src/linux auf das Verzeichnis /usr/src/linux-source-2.6.18.
~# ln -sf /usr/src/linux-source-2.6.18 /usr/src/linux
Unter Microsoft Windows-Versionen gibt es Verknüpfungen, die mit einem Link unter Unix nicht zu vergleichen sind. Eine installierte Cygwin-Umgebung ermöglicht dagegen auch unter Microsoft Windows, bei Verwendung des Datei-Systems NTFS, symbolische und harte Links zu setzen.
[bearbeiten] Datei-Typ ermitteln
Unter DOS und Microsoft Windows wird der Datei-Typ durch die drei Zeichen nach dem Punkt im Datei-Namen bestimmt. Zum Beispiel kennzeichnet .exe Programme. Oft wird die Anzeige dieser drei Zeichen ausgeblendet, was ein Sicherheitsrisiko ist. Unter Unix kennzeichnet der Datei-Name nicht zwingend den Datei-Typ. Mit dem Befehl file lässt sich der Datei-Typ ermitteln. Nach dem Befehl file können ein oder mehrere Dateien oder Verzeichnisse angegeben werden. Verzeichnisse sind unter Unix auch Dateien. Das folgende Beispiel ermittelt den Datei-Typ der Datei /etc/fstab.
~$ file /etc/fstab /etc/fstab: ASCII text
Die Datei /etc/fstab ist eine Text-Datei.
[bearbeiten] Text-Dateien anzeigen
Unter Microsoft Windows lassen sich Text-Dateien mit dem Befehl type anzeigen.
C:\> type Textdatei
Unter Unix dient der Befehl cat zur Ausgabe von Text-Dateien. Zum Beispiel zeigt cat Informationen über das System an. Aktuell gehaltenen Informationen zum System liegen bei vielen Unix-Varianten unter dem Verzeichnis /proc in Textform vor. Der folgende Befehl zeigt zum Beispiel Informationen zu den CPUs an.
~$ cat /proc/cpuinfo
Unter Unix lassen sich Text-Dateien komfortabel mit den Befehlen less anzeigen. less gibt Daten auf die Terminal-Größe zugeschnitten aus, wobei sich mit verschiedenen Tasten über den Datensatz scrollen lässt. Mit q beendet man less.
~$ less Textdatei
Zur System- oder Fehler-Analyse ist die Auswertung von Log-Dateien notwendig. Unter Unix werden diese meist im Verzeichnis /var/log/ als Text-Dateien geschrieben. Um sich fortlaufend die letzten Einträge einer Log-Datei anzeigen zu lassen, dient der Befehl tail. Die Option -f bewirkt, dass auch die Einträge angezeigt werden, die nach Aufruf dieses Befehls in die Log-Datei geschrieben werden. Oft wird unter Linux der folgende Befehl angewendet, um das System-Logfile zu überwachen.
~$ tail -f /var/log/messages
Zum Filtern von Zeilen mit bestimmten Mustern dient das Pipe-Zeichen (|) und der Befehl grep. Eine Pipe bewirkt die Umleitung der Ausgabe eines Befehls in die Eingabe eines anderen Befehls. Das heißt, hier werden alle neuen Einträge in der Datei /var/log/messages in den Befehl grep weitergeleitet. grep lässt nur Zeilen durch, in denen das angegebene Muster vorkommt. Hier werden Zeilen dargestellt, die das Muster error enthalten, wobei Groß- und Kleinschreibung durch die Option -i ignoriert werden. Mit anderen Worten, wenn im System ein Fehler festgestellt wird, wird er angezeigt.
~$ tail -f /var/log/messages | grep -i "error"
[bearbeiten] Text-Dateien bearbeiten
Unter Microsoft DOS/Windows dient der Editor edit zum Bearbeiten von Dateien. Aufgerufen wird dieses Programm mit dem Befehl edit gefolgt von dem Namen der Text-Datei. Mit der Maus oder der Taste [Alt] lassen sich die Menüs erreichen.
C:\> edit Textdatei
Unter Unix stehen leistungsfähige Text-Editoren zu Verfügung. Das liegt daran, dass alle Konfigurationsdateien unter Unix Text-Dateien sind. Deshalb ist sind Kenntnisse zur Bedienung eines überall verfügbaren Texteditors unumgänglich. Der leistungsfähige Editor vi ist auf jedem unix-artigen System vorhanden. Seine Bedienung gilt als ungewöhnlich. Eine Ursache für seine fremdartige Bedienung ist, dass der vi auf allen Terminals bedienbar sein muss. Nicht alle Terminals besitzen alle Kursor- und Sonder-Tasten. Der Start von vi erfolgt durch die Eingabe des Kommandos vi und des Datei-Namens der zu editierenden Datei als Option.
~$ vi Textdatei
Die unterste Zeile dient zur Anzeige von Informationen und zur Kommunikation mit dem Nutzer. Der vi verfügt über drei verschiedene Betriebsmodi – ein Umstand, der dazu beiträgt, dass dieser Editor als schwer bedienbar gilt. Nach dem Start befindet sich der vi im Kommando-Modus. Hier kann der Kursor mit den Kursor-Tasten an eine beliebige Stelle bewegt werden. Durch Betätigen der Tasten [Esc] und [i] gelangt man in den Text-Eingabe-Modus.
[Esc] [i]
Es ist möglich Text einzugeben. Danach ist wieder [Esc] einzugeben, um den Eingabe-Modus zu verlassen. Zum Speichern drückt man nacheinander die folgende Tasten.
[Esc] [:] [w]
Der Editor vi kann mit dem folgenden Befehl beendet werden.
[Esc] [:] [q]
Hat man einen Fehler gemacht, sollte man ohne Speichern den Editor vi beenden. Dazu dient die folgende Tasten-Reihenfolge:
[Esc] [:] [q] [!]
Ein großer Vorteil von vi ist, dass mehrere Befehle nacheinander ohne gleichzeitiges Betätigen der Alt-, Strg- oder sonstiger Modifikator-Tasten abgesetzt werden können. Für den geübten Benutzer bedeutet das eine erhebliche Steigerung der Arbeitsgeschwindigkeit.
[bearbeiten] Dateien aneinander fügen
Mit dem Befehl copy und der Option /b können unter Microsoft Windows mehrere Dateien aneinander gefügt werden. Das folgende Beispiel fügt die Dateien raw-hd1. img und raw-hd2.img an die Datei raw-hd3. img.
C:\> copy /b raw-hd1.img+raw-hd2.img raw-hd3.img
Unter Unix ist das Zusammenfügen von Dateien mit dem Befehl cat möglich. cat dient zur Ausgabe von Datei-Inhalten. In diesem Beispiel werden die Inhalte von raw-hd1. img und raw-hd2.img nicht ausgegeben, sondern nacheinander in die Datei raw-hd3. img umgeleitet. Umleitungen werden mit dem Zeichen > definiert. Das Prinzip der Ein-/Ausgabeumlenkung findet man auch bei Microsoft Windows und DOS.
~$ cat raw-hd1.img raw-hd2.img > raw-hd3.img
[bearbeiten] Komprimierung und Archivierung
Als Komprimierung bezeichnet man die Anwendung von Verfahren zur Reduktion des Speicherbedarfs von Daten. Die Datenmenge wird reduziert, indem eine günstigere Repräsentation bestimmt wird. Man spricht von einer verlustfreien Kompression wenn die kodierten Daten nach Anwendung der entsprechenden Dekodiervorschrift exakt denen des Originals entsprechen.
[bearbeiten] ZIP
Das ZIP-Dateiformat ist ein offenes Format zur komprimierten Archivierung von Dateien. Die Archiv-Dateien tragen üblicherweise die Endung .zip. Im ZIP-Format sind die Dateien einzeln komprimiert. Es ist weiterhin möglich, das Archiv auf mehrere Dateien zu verteilen oder selbst extrahierende Dateien anzulegen. Nicht jedes Kompressionsprogramm, dessen Name die Zeichenkette "ZIP" enthält, arbeitet mit dem ZIP-Dateiformat. Unter Microsoft Windows wird das ZIP-Format von dem Programm 7-Zip unterstützt (siehe unten). Unter Unix ermöglicht der Befehl zip das Komprimieren im ZIP-Format. Im folgenden Beispiel wird ein ZIP-Archiv mit dem Namen MeinArchiv.zip angelegt, dass alle Dateien mit der Datei-Endung .img komprimiert. Der Dateiname des Archivs wird automatisch mit der Endung .zip erweitert.
~$ zip MeinArchiv *.img
Entpackt wird dieses Archiv mit dem Befehl unzip.
~$ unzip MeinArchiv.zip
[bearbeiten] GZIP
Das Kompressionsprogramm gzip, ist für fast alle Betriebssysteme verfügbar, bietet einen guten Kompressionsgrad und ist frei von patentierten Algorithmen. Die übliche Datei-Endung für gzip-komprimierte Dateien ist .gz. Da gzip nur einzelne Dateien komprimiert, werden Sammlungen mehrerer Dateien üblicherweise zunächst mit tar (siehe unten) zusammengefasst, bevor sie mit gzip komprimiert werden. Solche Archive tragen die doppelte Endung .tar.gz oder auch einfach .tgz. Unter Unix ist die Komprimierung mit gzip heute Standard, weil sie für viele Aufgaben einen guten Kompromiss aus hoher Geschwindigkeit und guter Datenreduktion ermöglicht. Unter Unix komprimiert das folgende Beispiel die Datei Platte.img.
~$ gzip Platte.img
Das Dekomprimieren erfolgt mit gunzip.
~$ gunzip Platte.img.gz
Alternativ ist die Dekomprimierung mit gzip -d möglich.
~$ gzip -d Platte.img.gz
[bearbeiten] bzip2
Das frei verfügbare Komprimierungsprogramm bzip2 dient zur verlustfreien Kompression von Dateien. Die Kompression mit bzip2 ist oft effizienter aber langsamer als die Kompression mit gzip. Mit bzip2 komprimierte Dateien werden durch die Dateiendung .bz2 gekennzeichnet. tar-Dateien, die mit bzip2 komprimiert wurden, haben üblicherweise die Erweiterung .tar.bz2, .tbz oder auch .tbz2. In diesem Beispiel wird die Datei Platte.img komprimiert.
~$ bzip2 Platte.img
Das Dekomprimieren erfolgt mit bzip2 -d.
~$ bzip2 -d Platte.img.bz2
[bearbeiten] tar
tar ist der Name eines im Unix-Umfeld geläufigen Archivierungsprogramms. Der Name wurde aus tape archiver (Bandarchivierer) gebildet, da mit dem Programm ursprünglich Daten auf Bandlaufwerken gesichert wurden. tar bietet die Möglichkeit, Dateien sequenziell in eine einzige Datei zu schreiben, beziehungsweise Dateien aus selbiger wieder herzustellen. Die entstehende Datei trägt die Endung .tar und wird auch als Tarball (Teerklumpen) bezeichnet. Unter Microsoft Windows können Tarballs mit 7-Zip (siehe unten) bearbeitet werden. Viele gängige Archivprogramme können tar-Archive zumindest entpacken. Oft werden tar-Dateien mit gzip oder bzip2 komprimiert. Ein komprimierter Tarball trägt üblicherweise die Endung .tar.gz, .tgz, .tar.Z, .tar.bz2, .tbz2 oder .tbz. Unter Unix wird mit dem folgenden Befehl ein Archiv mit dem Inhalt des Verzeichnisses /etc angelegt. Die Option c bewirkt das Anlegen des Archivs, v dient der Anzeige der archivierten Dateien und f definiert mit der nachfolgenden Option den Datei-Namen des Archivs. Am Ende wird das Verzeichnis angegeben, das man archivieren will.
~$ tar cvf etc.tar /etc/
Anschließend kann dieses Archiv mit gzip komprimiert werden.
~$ gzip etc.tar
Neuere Versionen von tar unterstützen das Komprimieren mit gzip (Option z). Das heißt, die beiden vorherigen Befehle werden mit einem Befehl abgearbeitet:
~$ tar czvf etc.tar.gz /etc/
Neuere Versionen von tar unterstützen auch das Komprimieren mit bzip2 (Option j).
~$ tar cjvf etc.tar.bz2 /etc/
Zum Entpacken von tar-Archiven ist die Option x notwendig.
~$ tar xvf etc.tar
Liegt ein mit gzip komprimiertes tar-Archiv vor, ist dieses vorher zu dekomprimieren.
~$ gunzip etc.tar.gz
Neuere Versionen von tar unterstützen auch das Dekomprimieren mit gzip (Option z).
~$ tar xzvf etc.tar.gz
Neuere Versionen von tar unterstützen auch das Dekomprimieren mit bzip2 (Option j).
~$ tar xjvf test.tar.bz2
Die Option -C ermöglicht das Entpacken des Archivs in ein anderes Verzeichnis.
~# tar xzvf qemu-0.9.1-i386.tar.gz -C /
Zum Anzeigen des Inhalts eines tar-Archivs, dient die Option t.
~$ tar tvf etc.tar
Das Programm tar unterstützt keine effektive Verwaltung von Sparse-Dateien. Das heißt, Sparse-Dateien werden beim Archivieren mit tar vergrößert.
[bearbeiten] 7-Zip
7-Zip ist ein freies Kompressionsprogramm für Microsoft Windows. Mit 7-Zip lassen sich komprimierte (Archiv-)Dateien der Formate 7z (eigenes neues Format), zip, gzip, bzip2 und tar anlegen. Die grafische Benutzeroberfläche fügt sich dank Drag & Drop und Kontext-Menüs nahtlos in Microsoft Windows ein. Zur Installation lädt man die Installationsdatei von der Website http://www.7-zip.org herunter und startet diese. Es wird bei der Installation nach dem Ziel-Ordner (C:\Programme\7-Zip) gefragt. Nach der Installation kann der 7-Zip File Manager über das Start-Menü, Programme gestartet werden. Mit einem Klick der rechten Maus-Taste auf ein oder mehrere Dateien oder Verzeichnisse fügt man diese über den Punkt 7-Zip zu einem Archiv hinzu. Im anschließenden Dialog wird nach der Art der Komprimierung und dem Datei-Namen des Archivs gefragt. Um ein Archiv zu entpacken, ist mit einem Klick der rechten Maus-Taste auf dieses Archiv das Kontext-Menü zu öffnen. Im Punkt 7-Zip stehen Optionen zum Entpacken des Archiv zur Verfügung. 7-Zip fügt sich auch in den Datei-Explorer von Microsoft Windows ein. Es lassen sich dort die gleichen Funktionen mit der rechten Maus-Taste bedienen. 7-Zip gibt es auch als Kommandozeilentool unter Linux. Die Installation ist unter Debian und Ubuntu mit root-Rechten mit einer Befehlszeile erledigt.
~# apt-get install p7zip
Ein 7Zip-Archiv wird wie folgt entpackt.
~$ p7zip -d archiv.7z
[bearbeiten] RAR
RAR ist ein Algorithmus und Dateiformat zur Komprimierung von Dateien. Dabei werden mehrere Dateien zusammen komprimiert. Dadurch können auch Redundanzen zwischen den Dateien eliminiert werden. RAR unterstützt die Verschlüsselung der komprimierten Daten. Die Endung dieser Archivdateien ist üblicherweise .rar. Da die Entpackroutinen frei verfügbar sind, wird das Dekomprimieren von RAR-Archiven inzwischen von nahezu jedem Multiformat-Packprogramm unterstützt. Der Kompressionsalgorithmus ist jedoch nicht freigegeben. Offiziell unterstützen deshalb nur die vom RAR-Hersteller (http://www.rarlab.com) selbst veröffentlichen Programme WinRAR, RAR für DOS, RAR für Linux usw. diese Funktionalität. Diese Tools können von der Website http://www.winrar.de heruntergeladen und installiert werden. Unter Debian und Ubuntu ist die Installation mit einer Befehlszeile erledigt.
Host ~# apt-get install rar
Unter Unix dekomprimiert das folgende Beispiel die Datei archiv.rar.
Host ~$ rar e archiv.rar
[bearbeiten] Benutzer- und Rechteverwaltung
[bearbeiten] Unix/Linux
Unix war von Anfang an ein Multi-User-Betriebssystem. Das bedeutet, dass mehrere Benutzer gleichzeitig am Rechner arbeiten können. Es ist möglich anderen Benutzern zu erlauben oder zu verbieten, auf bestimmte Dateien zuzugreifen. Benutzer sind Gruppen zugeordnet, denen kollektiv bestimmte Zugriffsrechte gewährt werden. Eine besondere Rolle spielt der Benutzer root (Systemadministrator), der als einziger Benutzer vollen Zugriff auf das System hat. Jeder Benutzer hat typischerweise sein eigenes Heimatverzeichnis, in welchem nur er und der Benutzer root Dateien anlegen und löschen kann. Auf Unix-Dateisystemen besitzt jede Datei Rechte, die sich auf drei Arten verteilen:
- Eigentümer
- Gruppe
- Sonstige
Jeder der drei Benutzer-Klassen kann eines oder mehrere der folgenden Rechte zugewiesen werden:
- Lesen: Dieses Recht wird durch den Buchstaben r dargestellt.
- Schreiben: Der Benutzer darf in die Datei schreiben bzw. Dateien und Unterverzeichnisse in dem Verzeichnis anlegen, bearbeiten, umbenennen, löschen und deren Datei-Rechte verändern. Dieses Recht wird durch den Buchstaben w dargestellt.
- Ausführen: Bei Dateien darf der Benutzer die Datei als Programm ausführen. Besitzt ein Verzeichnis das Bit zum Ausführen, darf der Benutzer in das Verzeichnis wechseln und dort Dateien oder Unter-Verzeichnisse erreichen. Dieses Recht wird durch den Buchstaben x dargestellt.
Die Rechte der drei Benutzer-Klassen werden hintereinander notiert, wobei das Recht jeder Klasse durch ein Zeichen-Triplet repräsentiert wird. An Stelle des ersten Zeichens steht in diesem Triplet ein r, wenn das Lesen-Bit gesetzt ist. An der zweiten Stelle steht ein w, wenn Schreiben erlaubt ist. An der dritten Stelle steht x, wenn Ausführen erlaubt ist. Mit dem Befehl ls -l lassen sich die Rechte von Dateien auflisten. In diesem Beispiel werden die Rechte an der Datei /var/log/messages angezeigt.
~$ ls -l /var/log/messages -rw-r----- 1 root adm 44618 2007-07-18 16:07 /var/log/messages
Die Datei gehört dem Benutzer root und der Gruppe adm. Der Benutzer root darf diese Datei lesen und schreiben (rw). Die Gruppe adm darf diese Datei nur lesen (r). Alle anderen dürfen diese Datei weder lesen noch ändern. Unter Unix werden mit dem Befehl chmod die Datei-Rechte verändert. Diese Änderungen lassen sich nur von dem Besitzer der Datei oder von dem Benutzer root durchführen. In den folgenden Beispiel ist die Datei Platte.img für alle lesbar aber nur der Eigentümer, hier robert, darf diese Datei verändern.
~$ ls -l Platte.img -rw-r--r-- 1 robert users 24264704 2007-07-10 20:04 Platte.img
Durch die Option g+w wird mit dem Befehl chmod auch der Gruppe (g), hier users, das Recht zum Schreiben (+w) erlaubt.
~$ chmod g+w Platte.img
Diese Rechte können mit dem Befehl ls -l aufgelistet werden.
~$ ls -l Platte.img -rw-rw-r-- 1 robert users 24264704 2007-07-10 20:04 Platte.img
Um allen, die nicht in der Gruppe users sind, die Lese-Rechte (r) zu entziehen, ist folgender Befehl anzuwenden.
~$ chmod o-r Platte.img ~$ ls -l Platte.img -rw-rw---- 1 robert users 24264704 2007-07-10 20:04 Platte.img
Es lassen sich die Rechte mit u für den Eigentümer, mit g für die Gruppe und mit o für alle anderen Benutzer einstellen. Diese Optionen lassen sich auch kombinieren. Folgender Befehl vergibt die Rechte zum Lesen und Schreiben an den Benutzer und die Gruppe.
~$ chmod ug+rw Platte.img
Ob eine Datei unter Unix ausführbar ist, hängt nicht von ihrem Datei-Typ ab. Es sind die jeweiligen Ausführungsrechte für Benutzer, Gruppe und Andere notwendig. Die Ausführungsrechte werden jeweils durch ein x gekennzeichnet. Um beispielsweise ein selbst geschriebenes Shell-Skript für alle ausführbar zu machen ist folgender Befehl anzuwenden.
~$ chmod +x MeinSkript.sh
Verbreitet ist auch die Notation der Dateirechte in der Oktal-Schreibweise. Jeweils eine Oktal-Zahl repräsentiert dabei eine Benutzerklasse, in der Reihenfolge Eigentümer, Gruppe, Sonstige. Eine Ziffer setzt sich dabei als Summe aus den drei Rechten zusammen: 1 für Ausführen, 2 für Schreiben und 4 für Lesen. Um die Rechte für Schreiben und Lesen zu vergeben, ist die 6 (2+4) anzuwenden. Folgendes Beispiel gibt dem Benutzer, der Gruppe und allen Anderen Schreib- und Lese-Rechte.
~$ chmod 666 Platte.img
Unter Unix werden mit dem Befehl chown die Besitzer- und Gruppen-Zugehörigkeiten geändert. Um eine Datei zu verschenken ist folgender Befehl anzuwenden.
~# chown andrea:familie Platte.img
Die Datei gehört dem Benutzer andrea und der Gruppe familie. Um die Eigentumsverhältnisse von kompletten Verzeichnisbäumen mit Unterverzeichnissen zu ändern, dient die Option -R.
~# chown -R robert /home/testus
Das Kommando su dient unter Unix dazu, die Benutzer-ID zu wechseln. Die Syntax ist folgende.
~$ su - Benutzername
Wird su – ohne Benutzernamen aufgerufen, wird nach einer Passwortabfrage zum Benutzer root gewechselt. Der Bindestrich nach dem Befehl su bewirkt, dass ein kompletter Login-Vorgang durchgeführt wird. Das heißt, es werden das komplette Profil des neuen Benutzers eingelesen und die Umgebungsvariablen neu gesetzt. Mit dem Befehl exit gelangt man zu dem ursprünglichen Benutzer und seinen Rechten zurück.
~$ su - Password: ***** ~ # exit ~$
sudo ist ein Befehl unter Unix, der dazu benutzt wird, Prozesse mit den Rechten eines anderen Benutzers, beispielsweise des Users root zu starten. Um ein Befehl mit sudo zu starten ist sudo gefolgt von dem Befehl einzugeben.
~$ sudo chown -R robert /home/testus Password: ****
Es kann mit der Option -p der Text für die Passwort-Abfrage geändert werden.
~$ sudo -p "Passwort eingeben: " chown -R robert /home/testus Bitte Passwort eingeben: *****
Unter Mac OS X und Ubuntu ist der root-Account standardmäßig deaktiviert, statt su wird das Kommando sudo empfohlen.
[bearbeiten] Microsoft Windows
Ab Microsoft Windows 2000 ermöglicht de Befehl runas Programme mit den Rechten eines anderen Benutzers auszuführen. Dabei ist die Kenntnis des Kennwortes des anderen Benutzers erforderlich. Es können auch im Windows Explorer bestimmte Dateitypen (.exe, .msc) mit den Rechten eines anderen Users gestartet werden. Dies ist durch Drücken der Umschalttaste und der rechten Maus-Taste möglich. Im erscheinenden Kontext-Menü ist Ausführen als... auszuwählen.
[bearbeiten] Speichermedien
[bearbeiten] dd, dd_rescue und dcfldd
Das klassische Unix-Tool dd kopiert Daten-Ströme zwischen Blockgerätedateien und/oder regulären Dateien. Es können ganze Partitionen, Festplatten, Disketten und CD/DVDs Byte für Byte kopiert werden. Es werden nicht nur die vorhandenen Dateien überspielt, sondern es wird ein genaues Abbild generiert. dd ist auf fast allen Unix-/Linux-Versionen verfügbar und es gibt auch Versionen für Microsoft Windows. Es kann dd unter Cygwin angewendet werden. Es ist möglich dd als separates Tool unter Microsoft Windows zu installieren. Es ist von der URL http://www.chrysocome.net/downloads/dd-0.5.zip herunterzuladen, zu entpacken und direkt zu starten. Die Option if beschreibt die einzulesende Datei. Der Option of beschreibt die zu schreibende Datei. Das folgende Beispiel importiert unter Linux eine eingelegten aber nicht eingebundene Diskette.
~# dd if=/dev/fd0 of=floppy.img
Anschließend kann nach einem Disketten-Wechsel dieses Image auf eine andere Diskette kopiert werden.
~# dd if=floppy.img of=/dev/fd0
Wird ein Datenstrom aus lauter Nullen mit einer definierten Länge in eine Datei umgeleitet, entsteht ein raw-Image. Der folgende Befehl erzeugt ein Image im raw-Format mit einer Größe von einem GByte. Es werden dabei aus dem Device /dev/zero Nullen geholt und in die Datei Platte.img geschrieben. Die Blockgröße der Daten ist hier mit 1024 KB vorgegeben. Die count-Option gibt dabei an wie viele dieser Blöcke geschrieben werden sollen. Zur Erzeugung einer Sparse-Datei wird die Option seek benötigt, der das Ende der Datei bestimmt. Dazwischen werden keine Blöcke geschrieben. Im folgenden Beispiel wird ein Block geschrieben (count=1) und das Datei-Ende auf 1024 Blöcke gesetzt.
~$ dd if=/dev/zero of=Platte.img bs=1024k count=1 seek=1024 1+0 records in 1+0 records out 1048576 bytes transferred in 0.002445 seconds (428871465 bytes/sec)
dcfldd (http://dcfldd.sourceforge.net) ist eine erweiterterte Version von dd. Entwickelt wird es von der U.S. Department of Defense Computer Forensics Lab. Es bietet zusätzliche Funktionen für die Computer-Forensik und Sicherheit:
- Während der Übertragung der Daten können Hashfunktionen die Datenintegrität gewährleiten.
- Ständig aktualisierte Informationen über die übertragene Datenmenge und den Zeitpunkt der Fertigstellung.
- dcfldd unterstützt das sichere Löschen von Datenträgern. Dabei kann ein vorgegebenes Muster verwendet werden.
- dcfldd kann überprüfen, ob ein Datenträger eine bitgenaue Kopie der angegebenen Eingabedatei oder eines Musters ist.
- Die Ausgabe kann gleichzeitig auf mehrere Dateien oder Datenträger erfolgen.
- Die Ausgabe kann auf mehrere Dateien ausgeteilt werden.
- Es kann die grafische Oberfläche AIR (http://air-imager.sourceforge.net) verwendet werden.
Die Installation ist unter Ubuntu mit einer Befehlszeile erledigt.
~# apt-get install dcfldd
Der folgende Befehl liest 5 GByte von /dev/sda und schreibt die Ausgabe in die Dateien sda.raw.aa, sda.raw.ab, sda.raw.ac, sda.raw.ad und sda.raw.ae. Dabei werden MD5- und sha256-Hashes berechnet und in die Dateien md5.txt und sha256.txt geschrieben. Die Block-Größe wird auf 512 Bytes gesetzt. Bei Lesefehlern werden Nullen geschrieben.
~# dcfldd if=/dev/sda hash=md5,sha256 hashwindow=5G md5log=md5.txt \
sha256log=sha256.txt hashconv=after bs=512 conv=noerror,sync \
split=1G splitformat=aa of=sda.raw
Mit dcfldd ist es möglich gleichzeitig zwei Images anzulegen.
~# dcfldd if=/dev/sda of=image1.img of=image2.img
Bei defekten Speichermedien versagt dd und es ist dd_rescue anzuwenden. Das Tool dd_rescue ist speziell für die Datenrettung entwickelt worden. dd_rescue hat gegenüber dd zwei Vorteile. Zum einen bricht dd_rescue den Kopiervorgang bei Lesefehlern nicht ab, sondern schreibt anstelle des unlesbaren Blocks einen gleich großen Bereich Nullen in die Zieldatei. Damit erhält man am Ende ein vollständiges Abbild der Partition, in dem nur die unlesbaren Bereiche durch Nullen ersetzt sind. Zum anderen arbeitet dd_rescue mit zwei Blockgrößen für die Lesezugriffe: Wenn kein Fehler auftritt, werden große Blöcke gelesen (Vorgabe: 16384 Byte). Nach einem Fehler geht es mit kleineren Blöcken weiter (Vorgabe: 512 Byte). Beide Werte verändert man über Optionen. Im Gegensatz zu dd kann dd_rescue nicht in die Standardausgabe und in eine Pipe schreiben. Installiert wird dieses Tool entweder als Paket ddrescue oder man lädt es von der Website http://www.garloff.de/kurt/linux/ddrescue/ herunter. Hier als Beispiel die Installation unter Ubuntu.
~# apt-get install ddrescue
Beim Aufruf von dd_rescue sind die dd-typischen Optionen if= und of= nicht nötig: Die erste und zweite Option geben Quelle und Ziel an. Während das Programm arbeitet, zeigt es ständig an, wie weit es schon fortgeschritten ist. Bei Lesefehlern wird eine Warnung ausgegeben. In diesem Beispiel wird mit dd_rescue eine Diskette importiert.
~$ dd_rescue /dev/fd0 bla.img
[bearbeiten] Partitionierung
Vereinfacht gesagt ist Partitionierung die Unterteilung eines physikalischen Datenträgers in verschiedene logische Bereiche. Viele Betriebssysteme erwarten zumindest eine Partition pro Datenträger. Unix-Derivate brauchen mindestens eine Partition für das Wurzelverzeichnis (root). Eine zusätzliche Swap-Partition ist sinnvoll. Weitere Partitionen können die Sicherheit erhöhen und die Administration und Sicherung vereinfachen. Unter BSD-Betriebssystemen wird die Unterteilung der Festplatte Slices genannt. Da die Verwendung von Partitionen beziehungsweise Slices bei diversen Betriebssystemen unterschiedlich ist, weichen die Programme zum Partitionieren zwischen den Betriebssystemen ab. Image-Dateien müssen nicht unbedingt partitioniert werden. Sie enthalten in diesem Fall nur eine Partition. Viele Partitionierungsprogramme werden fdisk genannt. Die fdisk-Version von Linux ist dialogbasiert und bietet viele Optionen. Zum Anzeigen aller verfügbaren Partitionen dient der Befehl fdisk -l.
~# fdisk -l
Zusätzlich kann die Option -u angegeben werden. Dadurch wird die Größe der Partitionen nicht in Zylindern, sondern in Sektoren angegeben.
~# fdisk -lu
Zu beachten ist, dass alle Daten auf dem Datenträger durch das Partitionieren verloren gehen! Um einen Datenträger zu partitionieren wird fdisk gefolgt von dem Namen des Datenträgers aufgerufen. Ist der Datenträger eine reale Festplatte, ist deren Device-Name anzugeben. Unter Linux wird mit /dev/hda die erste IDE-Platte bezeichnet. /dev/hdb kennzeichnet die zweite IDE-Platte. SCSI-Platten werden unter Linux mit /dev/sda, /dev/sdb und so weiter symbolisiert. In diesem Beispiel soll die zweite IDE-Festplatte (/dev/hdb) partitioniert werden.
~# fdisk /dev/hdb1
Soll eine virtuelle Festplatte partitioniert werden, ist der Name dieser Image-Datei anzugeben. Die Option -C ist hier notwendig, um fdisk eine Anzahl von Zylindern vorzugeben. Obwohl die Anzahl der Zylinder bei einer Image-Datei keine Rolle spielt, benötigt fdisk diese Angabe.
~# fdisk -C 130 Platte.img
Die Befehle von fdisk listet m auf. Mit n wird eine neuen Partition angelegt.
Command (m for help): n Command action e extended p primary partition (1-4) p
Ab vier Partitionen muss eine erweiterte (extended) Partition angelegt werden. Hier wird nur eine Partition angelegt. Es ist p für eine primäre Partition anzugeben. Die Nummer der Partition ist 1.
Partition number (1-4): 1
Die Größe der Partition wird durch den ersten und letzten Zylinder angegeben. Bei einer Partition können die Vorgabewerte übernommen werden.
First cylinder (1-130, default 1): 1 Last cylinder or +size or +sizeM or +sizeK (1-130, default 130): 130 Using default value 130
Zur Kontrolle lässt man sich die Partitionstabelle mit p anzeigen.
Command (m for help): p
Disk Platte.img: 0 MB, 0 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
Platte.img1 1 130 1044193+ 83 Linux
Der System-Typ der Partition ist per Default auf Linux gesetzt. Um zum Beispiel den System-Typ auf FAT32 zu ändern, sind folgende Schritte notwendig.
Command (m for help): t Selected partition 1 Hex code (type L to list codes): L
Mit dem Befehl L lässt man sich alle System-Typen auflisten. FAT32 ist mit c auswählbar.
Hex code (type L to list codes): c Changed system type of partition 1 to c (W95 FAT32 (LBA))
Zur Kontrolle lässt man sich wieder die Partitionstabelle mit p anzeigen.
Command (m for help): p
Disk Platte.img: 0 MB, 0 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
Platte.img1 1 130 1044193+ c W95 FAT32 (LBA)
Mit w schreibt man die Änderungen auf den Datenträger und beendet das Programm.
Command (m for help): w
Komfortabel wird das Partitionieren vom Gnome Partition Editor unterstützt. Der Gnome Partition Editor (Live-CD GParted) ist kein Kommandozeilen-Tool, sondern eine komplette Linux-Distribution, die das leistungsfähige und komfortable Partitionierungsprogramm Gnome Partition Editor enthält. Damit ist man unabhängig von den Partitionierungsprogrammen der einzelnen Betriebssysteme. GParted gibt es als Live-CD und als Live-USB. Für die Verwendung mit QEMU ist die Live-CD zu empfehlen. Dazu lädt man die ISO-Datei der Live-CD von der URL http://gparted.sourceforge.net/index.php herunter und bootet dessen System. Es können Partitionen und darin liegende Dateisysteme erzeugt, vergrößert, verkleinert, verschoben, kopiert und überprüft werden. Damit schafft man beispielsweise Platz für weitere Betriebssysteme, indem man die bisher vorhandenen Partitionen verkleinert. Weiterhin ist es möglich, Partitionen innerhalb einer Festplatte umzusortieren oder auf andere Festplatten zu verschieben.
~$ qemu -hda Platte.img -vga std \ -cdrom gparted-livecd-0.3.4-11.iso -boot d
Nach dem Start von der Live-CD ist im Boot-Menü die voreingestellte Auswahl GParted-liveCD (auto-configuration) mit Return zu bestätigen. Anschließend wird nach dem Tastatur-Layout gefragt. Für ein deutsches Layout ist 10 einzugeben. In der nachfolgenden Sprachauswahl ist auch die 10 für Deutsch einzugeben. Nach dem Hochfahren erscheint der Gnome Partition Editor und zeigt die Partitionen und die freien Bereiche der Festplatten an. Im Gnome Partition Editor wählt man in der Pull-Down-Liste (rechts-oben) die Festplatte (/dev/hda) aus. Anschließend klickt man auf das Icon New, um eine neue Partition anzulegen. Wenn nur eine Partition angelegt werden soll, sind die Vorgabe-Werte für die Größe einfach zu übernehmen. In diesem Beispiel soll als Dateisystem FAT32 verwendet werden. Im Gnome Partition Editor klickt man auf das Icon Apply um die Änderungen auf die Festplatte zu schreiben. Beendet wird die GParted-Live-CD mit einem Klick auf das Icon Exit.
[bearbeiten] Einhängen von Dateisystemen
Beim Mounten oder Einhängen wird ein Dateisystem dem Betriebssystem an einer bestimmten Stelle (Mount-Point) zur Verfügung gestellt. Meist geschieht das Einbinden automatisch beim Booten. Wechselmedien werden oft bei Zugriff durch einen Automounter automatisch eingebunden. Manuelles Mounten kann nach dem Einlegen einer Daten-CD beziehungsweise -Diskette oder dem Anschließen eines USB-Sticks nötig sein. Erst danach sind die Daten über den Mount-Point verfügbar. Bei Microsoft Windows ist dieser ein weiterer Laufwerksbuchstabe wie D: oder E:, bei Mac OS X werden Wechselmedien vom Automounter unter /Volumes eingebunden und erscheinen auf dem Desktop, unter Linux wird oft in ein Unterverzeichnis von /mnt oder /media eingebunden. Das Gegenteil von Mounten ist Aushängen. Dies geschieht unter der Gewährleistung, dass keine Dateien von dem Dateisystem verwendet werden und dass alle Daten auf das Dateisystem geschrieben wurden. Wird ein Dateisystem ohne Aushängen entfernt, zum Beispiel durch abziehen eines USB-Sticks, kann es zu Datenverlust kommen. Unter Unix wird die zweite Partition auf der primären Festplatte am ersten ATA-Port mit folgendem Kommando manuell eingehängt:
~# mount /dev/hda2 /mein/verzeichnis
Ein Aushängen erfolgt durch den Befehl umount. Hier als Beispiel die Angabe des Datei-Namens des Dateisystems.
~# umount /dev/hda2
Hier als Beispiel die Angabe des Datei-Namens des Mount-Points.
~# umount /mein/verzeichnis
Eine Liste der gemounteten Dateisysteme gibt der Befehl mount ohne Optionen aus:
~$ mount
Mit der Option -t kann der Typ des Datei-Systems angegeben werden. Um beispielsweise auf ein NTFS-Image zuzugreifen, dient die Option -t ntfs.
Host ~# mount -t ntfs ntfs.img /mnt
Auch eine Datei kann über das Loop-Device wiederum als Dateisystem eingebunden werden, am häufigsten findet dies bei ISO-Images von CD/DVDs Verwendung:
~# mount -r -t iso9660 -o loop DVD.iso /mein/verzeichnis
Die Zuordnung der Dateisysteme zu den Device-Namen kann sich im Betriebssystem ändern. Deshalb ist günstiger ein Dateisystem mit dessen eindeutiger UUID (Universally Unique IDentifier) einzubinden. Zuerst ist mit dem Befehl blkid die UUID zu ermitteln.
~# blkid /dev/hda2 /dev/hda2: UUID="571bba46-083f-45a4-abc6-f15822718453" SEC_TYPE="ext2" TYPE="ext3"
Der Mount-Befehl wird wie folgt angewendet.
~# mount UUID=571bba46-083f-45a4-abc6-f15822718453 /mein/verzeichnis
[bearbeiten] Füllstand der Partitionen ermitteln
Unter Unix wird der Füllstand der eingebundenen Partitionen mit dem Befehl df ermittelt. Die Option -h verwendet für die Größenangaben KByte, MByte und GByte. Dies dient der besseren Lesbarkeit.
$ df -h Dateisystem Größe Benut Verf Ben% Eingehängt auf /dev/hda3 54G 8,0G 46G 15% / /dev/hda1 111M 69M 36M 66% /boot
[bearbeiten] Netzwerk-Konfiguration und Test
Heutige Netzwerke basieren meist auf den Protokollen TCP/IP. Die Abkürzung TCP/IP steht für das Transmission Control Protocol (TCP) und das Internet Protocol (IP). TCP/IP ist ausgereift und besitzt ausgezeichnete Routing-Funktionen. Diese Protokolle sind die Basis für das Internet. Deren Anwendungsprotokolle, wie zum Beispiel HTTP, FTP und SSH, setzen TCP/IP voraus. Neben TCP/IP gibt es andere Netzwerk-Protokolle, wie zum Beispiel NetBIOS. NetBIOS wird noch gelegentlich in der DOS/Windows-Welt verwendet. QEMU und KVM unterstützen nur TCP/IP. Unter Unix dient zur manuellen Netzwerk-Konfiguration das Programm ifconfig. Leider sind dessen Optionen bei den Unix/Linux-Derivaten nicht einheitlich. Um sich alle Netzwerk-Interfaces anzeigen zu lassen, ruft man ifconfig ohne Optionen auf.
~# ifconfig
Bei einigen Unix-Versionen ist die Option -a anzuhängen.
~# ifconfig -a
Sollen Informationen nur zu einem Netzwerk-Interface aufgelistet werden, ist der Name des Netzwerk-Interfaces mit anzugeben. In diesem Beispiel werden Informationen zu dem Netzwerk-Interface eth0 angezeigt. Die wichtigsten Informationen sind, dass es dieses Interface überhaupt gibt und welche IP-Adresse es hat.
~# ifconfig eth0
eth0 Protokoll:Ethernet Hardware Adresse 00:0B:6B:69:E8:63
inet Adresse:192.168.1.10 Bcast:192.168.1.255
Maske:255.255.255.0
inet6 Adresse: fe80::20b:6aff:fe69:e883/64
Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:330 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX bytes:0 (0.0 b) TX bytes:42678 (41.6 KiB)
Interrupt:201 Basisadresse:0xbc00
Um einem vorhandenen Netzwerk-Interface eine IP-Adresse, zum Beispiel 192.168.1.15, zuzuordnen, ist folgender Befehl unter Linux notwendig.
~# ifconfig eth0 192.168.1.15 netmask 255.255.255.0 up
Die Option eth0 kennzeichnet die erste Netzwerk-Karte im Rechner. Danach wird die IP-Adresse angegeben. Diese IP-Adresse darf im Netz nicht vergeben sein. Die Option netmask definiert die Netz-Maske. Die Option up bewirkt, das das Netzwerk-Interface aktiviert wird. Um ein Netzwerk-Interface zu deaktivieren, ist die Option down anzuwenden.
~# ifconfig eth0 down
Unter Microsoft Windows zeigt der Befehl ipconfig/all Informationen zu den Netzwerk-Interfaces an.
C:\> ipconfig /all
Mit dem Befehl ping wird überprüft, ob ein bestimmtes Netzwerk-Interface in einem Netzwerk erreichbar ist. ping steht unter vielen Betriebssystemen zur Verfügung. Als Option wird der DNS-Name oder die IP-Adresse des zu testenden Netzwerk-Interfaces angegeben. In diesem Beispiel wird unter Linux die Verbindung zum Host qemu-buch.de mit ping getestet.
~ $ ping qemu-buch.de PING qemu-buch.de (85.214.74.183) 56(84) bytes of data. 64 bytes from tr-e.de (85.214.74.183): icmp_seq=1 ttl=53 time=9.0 ms 64 bytes from tr-e.de (85.214.74.183): icmp_seq=2 ttl=53 time=1.6 ms
An den Antworten ist zu erkennen, dass der Host erreichbar ist. Wenn die Gegenstelle nicht antwortet, heißt dies aber nicht, das sie nicht erreichbar ist. Der Befehl ping verwendet das Internet Control Message Protocol (ICMP). Es dient in Netzwerken zum Austausch von Informationen und Fehlermeldungen über das Internet-Protokoll (IP). Es wird von jedem Router und jedem Rechner erwartet, das ICM-Protocol zu unterstützen. Es gibt Rechner, die sich tarnen oder Firewalls, die das ICM-Protokoll nicht durchlassen. QEMU und KVM blocken im User Mode Network Stack dieses Protokoll. Das heißt, ping funktioniert eventuell nicht in einer QEMU-/KVM-Instanz. Man probiert in diesem Fall ein telnet www.qemu-buch.de 80. Nach dem Prompt des Webservers tippt man GET /index.php ein und bekommt eine Webseite in raw-Format.
[bearbeiten] Netzwerkdienste und -Clients
[bearbeiten] SSH
Secure Shell (ssh) ist sowohl ein Programm als auch ein Netzwerkprotokoll, mit dessen Hilfe man sich über eine verschlüsselte Netzwerkverbindung auf einem entfernten Computer einloggen kann. SSH ermöglicht eine sichere, authentifizierte und verschlüsselte Verbindung zwischen zwei Rechnern. Mit OpenSSH ist auch eine freie Implementierung von SSH vorhanden, die mittlerweile einen großen Verbreitungsgrad erreicht hat. SSH-Implementationen waren ursprünglich nur unter Unix verfügbar, mittlerweile wurden jedoch sowohl SSH-Server als auch Clients für andere Plattformen programmiert. Unter Cygwin gibt es auch einen SSH-Server für Microsoft Windows, der auf OpenSSH basiert. Dieser ermöglicht das Einloggen per SSH auf einer Microsoft Windows-Maschine. Ein weiter SSH-Server für Windows ist freeSSHd (http://www.freesshd.com). Um sich zum Beispiel als Systemadministrator (root) auf den Rechner mit dem Namen bibo mit ssh einzuloggen, dient folgender Befehl.
~$ ssh root@bibo
Die Option -X ermöglicht das X-Forwarding. Dabei werden die grafische Ausgaben des Rechners, auf den man sich eingeloggt hat, auf den eigenen Rechner umgeleitet.
~$ ssh -X root@bibo
Normalerweise lauscht ein SSH-Server auf dem Port 22. Dies kann verändert werden. Um sich mit dem SSH-Client auf einem anderen Port zu verbinden, ist die Option -p gefolgt von der Port-Nummer anzugeben.
~$ ssh -p 12345 root@bibo
[bearbeiten] putty
Download: http://www.putty.nl/download.html
Unter den gängigen Microsoft Windows-Versionen steht mit putty ein SSH-Client zur Verfügung. Dazu lädt man die Datei putty.exe herunter und startet diese. Um sich zum Beispiel als Systemadministrator (root) auf dem Rechner mit dem Namen bibo mit SSH einzuloggen, ist folgende Konfiguration einsetzbar. Möglicherweise muss in der Einstellung der Windows-Firewall auf dem Host dieser Port freigegeben werden.
Host Name: bibo Port: 22 Protocol: ssh
[bearbeiten] SCP
Secure Copy (SCP) ist ein Protokoll sowie ein Programm zur verschlüsselten Übertragung von Daten zwischen zwei Computern über ein Netzwerk. Es gewährleistet Vertraulichkeit, Integrität und Authentizität der übertragenen Daten. Dazu nutzt es das Protokoll SSH. Mit OpenSSH steht ein freier Server sowie ein freier Client für SCP zur Verfügung. SCP-Clients gibt es auch für Microsoft Windows, zum Beispiel WinSCP. Das Programm scp funktioniert in Grundzügen wie der Kopie-Befehl cp. Im folgenden Beispiel werden von dem Rechner mit dem Namen bibo die Datei /etc/passwd in das aktuelle Verzeichnis kopiert.
~ $ scp root@bibo:/etc/passwd .
In diesem Beispiel wird die Datei Platte.img auf den entfernten Rechner mit dem Namen bibo in das Verzeichnis /tmp kopiert.
~ $ scp Platte.img root@bibo:/tmp
[bearbeiten] WinSCP
Download: http://winscp.net/eng/docs/lang:de
WinSCP ist ein grafischer SCP Client für Microsoft Windows und kann auch als FTP-Client verwendet werden. WinSCP steht unter der GNU General Public License. Für die deutsche Version muss man zusätzlich das Multi-Language Installation Package herunterladen. Die Installation startet zunächst in Englisch. Man wählt im Installationsdialog German aus. Die Installation von WinSCP ist einfach und selbsterklärend.
[bearbeiten] SSHFS
Website: http://fuse.sourceforge.net/sshfs.html
Das Secure Shell FileSystem (SSHFS) unterstützt unter Linux das Mounten eines Dateisystems eines anderen Rechnners mit der Secure Shell (SSH) durch nichtprivilegierte Benutzer. Dabei wird das Filesystem in Userspace (FUSE) angewendet. Auf dem entfernten Rechner ist nur ein SSH-Server notwendig. Auf dem lokalen Rechner ist das Paket sshfs notwendig. Die Installation unter Debian/Ubuntu ist mit einer Befehlszeile erledigt.
~$ sudo apt-get install sshfs
Weiterhin wird ein Verzeichnis als Mountpoint benötigt.
~$ mkdir ~/sshfs
Folgender Befehl hängt das Verzeichnis /tmp des Rechners bibo ein.
~$ sshfs root@bibo:/tmp/ ~/sshfs
Mit dem Befehl fusermount wird der Mointpoint wieder freigegeben.
~$ fusermount -u ~/sshfs
[bearbeiten] FTP
Das File Transfer Protocol ist ein Netzwerkprotokoll zur Dateiübertragung über TCP/IP-Netzwerke. Es wird benutzt, um Dateien vom Server zum Client (Download), vom Client zum Server (Upload) zu übertragen. Außerdem können mit FTP Verzeichnisse angelegt und ausgelesen, sowie Verzeichnisse und Dateien umbenannt oder gelöscht werden. Da FTP ein textbasiertes Protokoll ist, werden sowohl die Daten als auch die Authentifizierungsinformationen im Klartext übertragen. Zum Download wird ein FTP-Client benötigt. Jeder moderne Web-Browser enthält einen FTP-Client für den Download. Der FTP-Client ftp ist auf fast jedem Betriebssystem verfügbar. Der ursprünglich für Unix programmierte Client wurde schon bald auf andere Betriebssysteme (zum Beispiel Microsoft Windows) portiert. Das Programm ftp wird als Kommandozeilenbefehl gestartet, oft mit Angabe eines FTP-Servers. Bei erfolgreicher Verbindung fragt das Programm nach Benutzername und Passwort. In diesem Beispiel wird mit dem FTP-Client in der DOS-Eingabekonsole unter Microsoft Windows die Datei bla.txt zum Rechner mit der IP-Adresse 10.0.2.2 übertragen.
Gast C:\> ftp 10.0.2.2 Benutzer (10.0.2.2): robert Kennwort: ***** Ftp> put bla.txt Ftp> quit
Weitere Kommandos sind:
Ftp> ascii
Einstellen von ASCII als Übertragungsmodus. Dies ist der Standardübertragungsmodus.
Ftp> binary
Einstellen von Binary als Übertragungsmodus.
Ftp> cd Verzeichnis
Wechselt in das Arbeitsverzeichnis auf dem FTP-Server.
Ftp> delete Datei
Löscht die Datei auf dem FTP-Server.
Ftp> dir
Zeigt den Inhalt des aktuellen Arbeitsverzeichnisses auf dem FTP-Server an.
Ftp> get Datei
Kopiert eine Datei vom FTP-Server auf den Client.
Ftp> lcd Verzeichnis
Wechselt das Verzeichnis auf dem Client.
Ftp> ls
Listet den Inhalt des Verzeichnisses auf.
Ftp> mget Dateien
Kopiert mehrere Dateien vom Server auf den Client. Wildcards sind erlaubt.
Ftp> mkdir Verzeichnis
Legt ein Verzeichnis auf dem FTP-Server an.
Ftp> mput Dateien
Kopiert mehrere Dateien vom Client auf den FTP-Server. Wildcards sind erlaubt.
Ftp> pwd
Gibt das aktuelle Arbeitsverzeichnis auf dem FTP-Server aus.
Ftp> quit
Schließt die Verbindung zum FTP-Server und beendet das Programm.
Ftp> rmdir Verzeichnis
Löscht ein Verzeichnis auf dem FTP-Server.
[bearbeiten] TFTP
Das Trivial File Transfer Protocol (TFTP) ist ein einfaches Datei-Übertragungsprotokoll und unterstützt lediglich das Lesen oder Schreiben von Dateien. Nicht vorhanden sind viele Funktionen des mächtigeren FTP wie etwa Rechtevergabe, Anzeigen der vorhandenen Dateien oder Benutzer-Authentifizierung. Motivation für die Entwicklung von TFTP war das Laden von Betriebssystemen oder Konfigurationen über das Netzwerk. Hierfür sind das verbindungsorientierte TCP und das darauf aufsetzende FTP viel zu komplex. TFTP wurde dagegen bewusst einfach gehalten. Microsoft Windows bringt von Haus aus einen tftp-client (tftp.exe) mit. Bestimmte Arten von Computerwürmern wie zum Beispiel W32.Blaster nutzen TFTP-Server zu ihrer Verbreitung. Deshalb sollte tftp.exe bei Benutzung einer Personal Firewall standardmäßig der Internetzugriff verweigert werden. Ein TFTP-Client für Microsoft Windows-Versionen kann auch unter http://www.tftp-server.com/tftp-download.html (WinAgents TFTP Client) heruntergeladen und direkt ausgeführt werden.
C:\> tftp -i 10.0.2.2 GET bla.txt
Unter Unix ist ein tftp-Client oft nicht installiert. Ist das Gast-System ein Linux Debian-Derivat, ist die Installation des Paketes tftp mit einer Befehlszeile getan.
Gast ~# apt-get install tftp
Das Herunterladen einer Datei per TFTP erfolgt mit diesen Befehlen.
Gast ~$ tftp (to) 10.0.2.2 tftp> binary tftp> get bla.txt tftp> quit
[bearbeiten] wget
Download: http://www.gnu.org/software/wget/
Das Tool wget ist ein freies Kommandozeilen-Programm zum Herunterladen von Dateien. Zu den unterstützten Protokollen gehören FTP, HTTP und HTTPS. Das Programm gibt es sowohl für Unix und GNU/Linux als auch für Microsoft Windows. wget ist in Cygwin enthalten. wget kann einen abgebrochenen Download wieder aufnehmen und komplette Websites herunterladen. Um eine Datei von einem Web- beziehungsweise FTP-Server herunterzuladen, genügt es wget und die entsprechende URL aufzurufen, zum Beispiel:
~$ wget http://bellard.org/qemu/qemu-0.9.1.tar.gz
[bearbeiten] Telnet
Telnet (Teletype Network) ist der Name eines im Internet weit verbreiteten Netzwerkprotokolls und wird dazu verwendet, Benutzern den Zugang zu Rechnern über die Kommandozeile zu ermöglichen. Aufgrund der fehlenden Verschlüsselung wird es kaum noch eingesetzt. Weiterhin ist Telnet der Name eines Client-Programms, welches Verbindungen zu einem entfernten Rechner ausbauen kann. Das Telnet-Protokoll verwendet TCP und die Clients verbinden sich über Port 23 mit dem Zielrechner. Dieser Port lässt sich, wie bei den meisten Internetprotokollen, modifizieren. Es ist ebenfalls möglich, mit einem Telnet-Client eine interaktive TCP-Verbindung zu anderen Internetservices aufzubauen. Im folgenden Beispiel wird der Telnet-Client mit dem Host bibo und dessen Port 4444 verbunden.
~$ telnet bibo 4444 Trying 127.0.0.1... Connected to localhost.localdomain. Escape character is '^]'.
Unter Microsoft Windows wird der Telnet-Client über den Punkt Ausführen im Start-Menü gestartet. In der erscheinenden Eingabe-Zeile gibt man den Befehl telnet ein. Im Menü des Clients gibt man unter Verbinden, Remote System den Host und den Port ein.
[bearbeiten] netcat
Download: http://netcat.sourceforge.net/
Das Programm netcat, auch nc genannt, ist ein einfaches Werkzeug, um Daten von der Standardeingabe oder Standardausgabe über Netzwerkverbindungen zu transportieren. Es arbeitet als Client oder Server mit den Protokollen TCP und UDP. Eine Windows-Version ist in Cygwin enthalten. Diese Version wird mit nc aufgerufen. In dem nachfolgenden Beispiel wird die Datei bla.txt von dem Rechner 1 mit netcat auf den Rechner 2 mit der IP-Adresse 172.16.10.61 übertragen. Dazu wird zuerst der Rechner 2 empfangsbereit geschaltet.
Rechner 2 ~$ netcat -w30 -vvnlp 3333 > bla.txt
Die Option -w gibt das Timeout an. Das heißt, in dem Beispiel wartet netcat maximal 30 Sekunden auf das Zustandekommen der Verbindung. Die Optionen -vv bewirken eine ausführlichere Ausgabe, um mögliche Fehler zu erkennen. Die Option -l schaltet netcat in den Lausch-Modus. Die Option -n bewirkt, dass keine DNS-Abfrage erforderlich ist. Es ist die IP-Adresse statt des DNS-Namens anzugeben. Die Option -p definiert den Port (hier 3333). Der empfangene Datenstrom wird in die Datei bla.txt umgeleitet. Auf Rechner 1 startet man die Übertragung der Datei bla.txt. Zusätzlich ist hier die Adresse des Ziel-Rechners anzugeben. Dieses Beispiel enthält keinerlei Absicherungen.
Rechner 1 ~$ netcat -w 30 -vvn 172.16.10.61 3333 < bla.txt
Viele Hacker/Cracker benutzen Netcat um Backdoors (Hintertüren) auf den Rechnern ihrer Opfer zu öffnen. Deshalb stufen einige Anti-Viren-Programme das Windows-Executable nc.exe als Hacking-Tool ein und verhindert dessen Ausführung.
[bearbeiten] TightVNC
Download: http://www.tightvnc.com/
TightVNC ist ein VNC-Server und -Client der unter der GPL-Lizenz steht. Er ist für Microsoft Windows sowie für zahlreiche Unix-Derivate verfügbar. Weiterhin gibt eine plattform-unabhängige Implementierung in Java (nur als Client). Hier als Beispiel die Installation unter einem Linux-Debian-Derivat.
Host ~# apt-get install xtightvncviewer
Auf der Website des Projekts steht die Software für viele Betriebssysteme zum Download bereit. Zur Installation unter Microsoft Windows ist die Datei tightvnc-1.3.9-setup.exe herunterzuladen und aufzurufen. Im Wizard für die Installation gibt man das Ziel-Verzeichnis ein (C:\Programme\TightVNC). Danach sind die zu installierenden Software-Komponenten (Server, Viewer, Dokumentation) auszuwählen. Anschließend ist der Name des Ordners im Start-Menü festzulegen (TightVNC). Im nächsten Schritt ist anzugeben, ob der VNC-Server als System-Dienst registriert werden soll und ob der VNC-Server automatisch gestartet werden soll. Dies ist nur zu empfehlen, wenn dieser Rechner dauerhaft per VNC erreichbar sein soll. Nach der Installation wird TightVNC wie folgt aufgerufen: Menü Start, Alle Programme, TightVNC, TightVNC Viewer (Fast Compression).
[bearbeiten] Remote Desktop Protocol
Das Remote Desktop Protocol (RDP) der Firma Microsoft ermöglicht es, den Bildschirminhalt eines Microsoft Windows-Rechners auf einem anderen Rechner anzuzeigen und im Gegenzug Tastatur- und Maus-Bewegungen zurück zu senden. Damit ist ein Remote-Zugriff auf den Desktop eines anderen Rechners möglich. Dabei arbeitet eines der beiden Systeme als Terminalserver. Dieser Terminalserver generiert Bildschirmausgaben auf dem Terminal-Client. Neben den Ausgaben des Bildschirmes und den Eingaben der Tastatur und Maus kann auch die Sound-Ausgabe zum Terminal-Client umgeleitet werden. Weiterhin ist die Nutzung eines Druckers des Terminal-Clients möglich. RDP basiert auf dem ITU-Protokoll T.128 und setzt TCP/IP voraus. Standardmäßig wird das Port 3389 (TCP) verwendet. Als RDP-Server werden Microsoft Windows Terminalserver 4.0, Microsoft Windows Server 2000 , 2003 und 2008, NetMeeting, Microsoft Windows XP, Microsoft Windows Vista und Microsoft Windows 7 verwendet. Die jeweiligen Home- und Starter-Edition sind nicht als RDP-Server geeignet. RDP-Clients existieren für fast alle Betriebssysteme. Die Virtualisierungssoftware Sun VirtualBox besitzt einen eigenen RDP-Server.
Als Beispiel wird die Konfiguration des RDP-Servers unter Windows XP beschrieben. Ist der Rechner in einer Domäne, so können die folgenden Einstellungen per Active Directory eingeschränkt sein. Das Login hat mit Passwort zu erfolgen. Dazu ist im Start-Menü, Systemsteuerung, Benutzerkonten, Konto ändern ein Passwort zu vergeben. Im Start-Menü, Systemsteuerung, Benutzerkonten, Art der Benutzeranmeldung ändern sind die Optionen Willkommensseite verwenden und Schnelle Benutzerumschaltung verwenden zu aktivieren. Weiterhin ist in der Systemsteuerung unter System, Reiter Remote die Option Benutzern erlauben, eine Remoteverbindung herzustellen zu aktivieren. Unter Remotebenutzer auswählen... sind entsprechende Benutzer anzugeben. Um den Login-Vorgang zu beschleunigen, ist in der Systemsteuerung unter Verwaltung, Dienste der Starttyp für Terminaldienste auf Automatisch zu setzen. Die Windows-Firewall ist für das Port 3389 zu öffnen. Die Farbtiefe für den RDP-Client ist in der Registry anzupassen. Zunächst ist dazu der Registry-Editor zu öffnen (Menü Start, Ausführen, regedt32). Man wechselt in den Schlüssel HKEY_LOCAL_MACHINE\ SYSTEM \CurrentControlSet \Control \Terminal Server\ WinStations\RDP-Tcp. Der Wert ColorDepth wird auf 4 geändert. Die Farbtiefe wird damit auf 24 Bit erhöht.
Unter Microsoft Windows XP und neuer steht ein RDP-Client unter Menü Start, Alle Programme, Zubehör, Remotedesktopverbindung zur Verfügung. Unter unix-ähnlichen Betriebssystemen sowie unter OS/2 und eComstation kann das Open-Source-Programm rdesktop (http://www.rdesktop.org) verwendet werden. Unter Debian/Ubuntu ist die Installation des Paketes rdesktop mit einer Befehlszeile erledigt.
~$ sudo apt-get install rdesktop
rdesktop wird beispielsweise mit folgenden Optionen aufgerufen. Die Option -k legt das Tastatur-Layout fest. Mit der Option -g wird die Bildschirmauflösung vorgegeben.
~$ rdesktop -g 1000x800 -k de Rechnername
Wurde beispielsweise eine virtuelle Maschine mit Microsoft Windows XP gestartet, kann man sich mit rdesktop einloggen.
~$ qemu win-xp-01.ovl -m 512 -rtc base=localtime \ -net nic -net user,hostfwd=tcp::3389-:3389 ~$ rdesktop -g 1000x800 -k de localhost
Soll nicht auf den gesamten Desktop, sondern nur auf eine Applikation zugegriffen werden, kann das Tool SeamlessRDP (http://www.cendio.com/seamlessrdp/) verwendet werden.
[bearbeiten] Synergy
Website: http://synergy2.sourceforge.net/
Das Programm Synergy (Open-Source) ermöglicht die Nutzung von einer Maus und einer Tastatur an mehreren Rechnern im Netzwerk. Ein Rechner wird dabei als Synergy-Server konfiguriert. Auf den anderen Rechnern wird Synergy jeweils als Client gestartet. Sobald der Maus-Kursor den Rand des jeweiligen Desktops überschreitet, leitet Synergy die Eingaben von Maus und Tastatur über das Netzwerk vom Host-PC an die entsprechenden Clients weiter. Die Desktops aller angeschlossenen Rechner werden damit zu einer Arbeitsfläche verbunden. Weiterhin kann Synergy die Inhalte der Zwischenablagen der Rechner abgleichen. Da Synergy für Microsoft Windows (ab 95/NT) und alle unix-artigen Betriebssysteme (Mac OS X, Linux, Solaris) verfügbar ist, können die Desktops von Rechnern mit unterschiedlichen Betriebssystemen verbunden werden. Für Microsoft Windows ist das Installationsprogramm von der Website herunterzuladen und zu starten. Nach der Installation ist die Konfiguration von Synergy per GUI möglich. Unter Debian/Ubuntu ist die Installation mit einer Befehlszeile erledigt.
~$ sudo apt-get install synergy quicksynergy
Zur einfachen Konfiguration ist quicksynergy zu starten
~$ quicksynergy
Soll der Rechner als Synergy-Server arbeiten, ist mindestens in einem der Felder Above, Left, Right und Below die IP-Adresse eines Clients einzutragen. Soll der Rechner als Client konfiguriert werden, ist nur unter dem Reiter Use die IP-Adresse des Servers anzugeben. Eine ausführliche Anleitung zu Synergy findet man unter http://www.elsniwiki.de/index.php/Main/SynergyKonfigurieren.
[bearbeiten] dnsmasq
Download: http://thekelleys.org.uk/dnsmasq/doc.html
Für kleine Netzwerke ist der einfache DHCP- und DNS-Server dnsmasq zu empfehlen. DNS-Anfragen werden entsprechend der Datei /etc/hosts aufgelöst oder an andere DNS-Server weitergeleitet. Anleitungen zur Konfiguration findet man unter http://wiki.ubuntuusers.de/Dnsmasq und http://www.martin-bock.de/pc/pc-0604.html. Die Bibliothek libvirt verwendet auch dnsmasq, um Gast-Systemen per DHCP IP-Adressen zuzuweisen (siehe http://qemu-buch.de/d/Managementtools/_libvirt-Tools).
[bearbeiten] Kompilieren
Um Software unter Unix/Linux aus dem Quellcode zu kompilieren, werden nach dem Herunterladen der Quellen und dem Entpacken die folgenden Schritte in dem angelegten Verzeichnis angewendet:
~$ ./configure ~$ make ~$ sudo make install
Als erster Schritt wird das Skript ./configure aufgerufen. Mögliche Optionen zeigt ./configure --help an. Das Skript ./configure überprüft, ob alle zur Konfiguration gehörenden Komponenten vorhanden sind. Weiterhin legt es entsprechend der ermittelten Bedingungen Konfigurationsdateien und eventuell Unterverzeichnisse für make an. Diese Konfigurationsdateien heißen jeweils Makefile und liegen in den angelegten Verzeichnissen und beschreiben was make dort ausführen soll. Danach erfolgt der Aufruf von make. Das Programm make führt Kommandos in Abhängigkeit von Bedingungen, die in den Makefiles beschrieben sind, aus. Genutzt wird es beispielsweise, um in einem Projekt, das aus vielen verschiedenen Dateien mit Quellcode besteht, automatisiert alle Arbeitsschritte zu steuern. Mitunter muss vorher das Paket make installiert werden. Im letzten Schritt, der unter dem Benutzer root ausgeführt werden muss, werden mit make install die generierten Dateien (Binaries, Konfigurationsdateien, Manuals) in die entsprechenden Verzeichnisse des Systems kopiert.
In einigen Distriubutionen sind die Werkzeuge zum Kompilieren nicht per Default installiert. Unter Ubuntu ist das Paket build-essential zu installieren. In anderen Distributionen werden die Pakete gcc und make benötigt.
~$ sudo apt-get install build-essential
Selbst kompilierte Software wird nicht von dem Paket-Manager verwaltet. Dadurch erscheint diese Software nicht in der Liste der installierten Pakete und kann auch nicht so ohne weiteres deinstalliert werden. Abhilfe schafft das Programm checkinstall. Damit baut man Slackware-TGZ-, RPM- oder DEB-Paketen beim Kompilieren. Die Installation ist unter Debian/Ubuntu mit einer Befehlszeile erledigt.
~$ sudo apt-get install checkinstall
Statt make install wird beim Kompilieren der Befehl checkinstall verwendet. Eine Hilfestellung erhält man mit checkinstall --help.
~$ ./configure ~$ make ~$ sudo checkinstall
Das Programm checkinstall stellt einige Fragen, die meist mit den Default-Vorgaben beantwortet werden können. Eindeutig ist aber der Paket-Name vorzugeben. Im aktuellen Verzeichnis wird das Paket angelegt und installiert. Unter Debian/Ubuntu listet es der Befehl dpkg -l auf und mit dpkg -r deinstalliert man es bei Bedarf.