16.08.2012 Aufrufe

Inhaltsverzeichnis - Strato

Inhaltsverzeichnis - Strato

Inhaltsverzeichnis - Strato

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Inhaltsverzeichnis</strong><br />

Meine Serverdaten ............................................................. 6<br />

1 Erste Schritte – Der Kundenservicebereich ..................... 14<br />

1.1 Der Zugang zum Kundenservicebereich ................. 14<br />

1.2 Passwort für den Kundenservicebereich ändern ..... 15<br />

1.3 FTP-Backupspace aktivieren .................................. 17<br />

1.4 RemoteConsole aktivieren ...................................... 20<br />

1.5 TrafficControl nutzen ............................................... 22<br />

1.6 Betriebssystem nach Wahl per Neuinstallation ....... 27<br />

1.7 Die Zugangsdaten ermitteln .................................... 32<br />

2 Kapitel in der PDF-Version nicht enthalten<br />

3 Kapitel in der PDF-Version nicht enthalten


4 Wege auf den Server – FTP, SCP und SSH .................... 87<br />

4.1 Datenübertragung per FTP ..................................... 87<br />

WS_FTP Pro installieren und einrichten ................. 87<br />

4.2 Verbindung zum Server herstellen ......................... 92<br />

Dateien vom und zum Server übertragen ............... 94<br />

Dateirechte per WS_FTP Pro 9.0 lesen und setzen 97<br />

4.3 Datenübertragung per SCP .................................. 100<br />

WinSCP herunterladen und installieren ................ 100<br />

Zugangsdaten für SCP anlegen ........................... 104<br />

Der erste Login ..................................................... 105<br />

Dateien übertragen mit WinSCP ........................... 108<br />

Dateirechte und Besitzer ändern .......................... 110<br />

4.4 Shell-Zugang per SSH .......................................... 112<br />

PuTTY herunterladen und installieren .................. 112<br />

PuTTY einrichten .................................................. 113<br />

SSH-Verbindung herstellen .................................. 116<br />

5 Die Befehle der Kommandozeile .................................. 119<br />

5.1 Grundlagen zum Dateisystem .............................. 119<br />

Die Verzeichnisstruktur ......................................... 119<br />

Die Verzeichnisse unterhalb von /usr ................... 121<br />

Die Verzeichnisse unterhalb von /var ................... 121<br />

Mount-Points: Ersatz für Laufwerke ...................... 122


5.2 Rund um Dateien und Verzeichnisse ................... 123<br />

ls: Verzeichnisinhalte anzeigen ............................ 123<br />

cd: Verzeichniswechsel ........................................ 126<br />

mkdir: Verzeichnisse anlegen ............................... 128<br />

touch: Dateien anlegen / Dateidatum ändern ....... 130<br />

rmdir: Verzeichnisse entfernen ............................. 131<br />

rm: Dateien und Verzeichnisse entfernen ............. 132<br />

Wildcards: Die Jokerzeichen des Dateisystems ... 133<br />

5.3 Dateien anzeigen, kopieren, verschieben und<br />

umbenennen ......................................................... 133<br />

less: Dateiinhalte anzeigen ................................... 134<br />

cp: Dateien und Verzeichnisse kopieren .............. 136<br />

mv: Dateien und Verzeichnisse verschieben ........ 138<br />

chmod: Datei- und Verzeichnisrechte ändern ....... 140<br />

chown: Besitzer und zugeordnete Gruppe ändern 142<br />

5.4 Informationen über System und User ................... 144<br />

df: Verfügbare Kapazität auf den Festplatten<br />

ermitteln ................................................................ 145<br />

du: Von einem Verzeichnis belegten Plattenplatz<br />

ermitteln ................................................................ 146<br />

users: Angemeldete Benutzer anzeigen ............... 147<br />

id: Gruppenzugehörigkeit eines Benutzers ermitteln 147<br />

top: Systemauslastung ermitteln ........................... 148<br />

ps: Laufende Prozesse anzeigen ......................... 152<br />

5.5 Nützliche Helferlein ............................................... 154<br />

which: Speicherort eines Hilfsprogramms ermitteln 154<br />

find: Dateien nach verschiedenen Kriterien suchen 155<br />

grep: Zeichenketten in Dateien finden .................. 156<br />

su: Zu anderem Benutzerkonto umschalten ......... 158<br />

man: Hilfe zu Befehlen und Konfigurationsdateien 159<br />

5.6 Wichtige Hilfsprogramme ..................................... 159<br />

vi: Der Texteditor .................................................. 160<br />

mc: Der Norton-Commander-Clone ...................... 165<br />

screen: Mehrere Befehlszeilen in einer Sitzung<br />

verwalten .............................................................. 166<br />

wget: Dateitransfer auf der Kommandozeile ......... 168


5.7 Archive entpacken und selbst erstellen ................ 169<br />

tar: Das Universal-Archivprogramm ...................... 169<br />

unzip: Archiv-Brücke in die Windows-Welt ........... 172<br />

unrar: Entpacker für RAR-Archive ........................ 173<br />

5.8 Tipps und Tricks für die Kommandozeile .............. 174<br />

Die Befehlshistorie der Kommandozeile nutzen ... 174<br />

Blättern in Bildschirminhalten ............................... 174<br />

Ausgabeumleitung per Redirect ........................... 174<br />

Ausgabeumleitung per Pipe ................................. 175<br />

6 Administration über die Kommandozeile ..................... 176<br />

6.1 Verwaltung per YAST ........................................... 176<br />

Online-Update durchführen .................................. 177<br />

Einzelne Pakete installieren ................................. 179<br />

Pakete entfernen .................................................. 180<br />

6.2 Die Arbeit mit dem Paketmanager RPM ............... 181<br />

Pakete mit RPM installieren ................................. 181<br />

Liste der installierten RPM-Pakete abrufen .......... 182<br />

RPM-Pakete entfernen ......................................... 183<br />

6.3 Die Arbeit mit APT (Debian) ................................. 183<br />

System-Update mit APT ....................................... 183<br />

Einzelne Pakete mit APT installieren .................... 184<br />

Pakete mit APT entfernen .................................... 185<br />

6.4 Benutzerverwaltung .............................................. 185<br />

Benutzerverwaltung mit Yast ................................ 186<br />

User anlegen per useradd .................................... 188<br />

Benutzerkonto modifizieren mit usermod ............. 189<br />

Benutzerkonto löschen mit userdel ....................... 189<br />

7 Den Server sichern ........................................................ 190<br />

7.1 Die SUSE-Firewall ................................................ 190<br />

Firewall-Einstellungen per Yast ............................ 190<br />

Erweiterte Firewall-Einstellungen ......................... 193<br />

Einblick in die Arbeit von iptables ......................... 194


7.2 Systemdienste aktivieren und deaktivieren .......... 195<br />

Laufende Systemdienste ermitteln ....................... 195<br />

Systemdienste aus Autostart-Liste entfernen ....... 195<br />

Systemdienste zur Autostart-Liste hinzufügen ..... 196<br />

Systemdienste manuell starten und stoppen ........ 197<br />

7.3 Der Super-Dämon Xinetd ..................................... 198<br />

Dienste unter xinetd aktivieren und deaktivieren .. 199<br />

xinetd komplett deaktivieren und wieder aktivieren 199<br />

7.4 Der FTP-Server vsftpd .......................................... 200<br />

vsftpd als Standalone-Server ausführen ............... 200<br />

Bandbreite für FTP-Nutzer limitieren .................... 202<br />

7.5 Verfahren zur Datensicherung .............................. 203<br />

Einfache Datenkopie per rsync ............................. 203<br />

Datenbanken sichern per mysqldump .................. 204<br />

Archive der Sicherheitskopien erstellen ................ 205<br />

Dateien auf den Backup-Space übertragen .......... 205<br />

Das Backup-Skript ................................................ 206<br />

Backup-Erstellung automatisieren ........................ 207<br />

7.6 RecoveryManager einsetzen ................................ 207<br />

RecoveryManager starten .................................... 208<br />

Am RecoveryManager anmelden ......................... 208<br />

Die Festplatte des HighEnd-Servers einbinden .... 209<br />

Daten wiederherstellen ......................................... 210<br />

7.7 Verzeichnisschutz und mehr mit .htaccess ........... 210<br />

Verzeichnisse schützen ........................................ 211<br />

PHP-Werte über .htaccess setzen ........................ 212<br />

8 Kapitel in der PDF-Version nicht enthalten


6 Meine Serverdaten<br />

Meine Serverdaten<br />

Auf den folgenden Seiten können Sie die wichtigsten Daten Ihres Servers<br />

notieren, um diese später jederzeit griffbereit zu haben.


Meine Serverdaten 7<br />

Kundenservicebereich:<br />

Domain-Name: [ _______________________________ ]<br />

Server-Name (Hostname): [ ______________ ].serverkompetenz.net<br />

IP-Adresse: [ ______ ].[ ______ ].[ ______ ].[ ______ ]<br />

Auftragsnummer: [ _______________________________ ]<br />

Kundennummer: [ _______________________________ ]<br />

Passwort (Gedankenstütze): [ _______________________________ ]<br />

Root-Passwort: [ _______________________________ ]<br />

(Gedankenstütze)<br />

FTP-Backup:<br />

Backup-Server: [ _______________________________ ]<br />

Benutzername: [ _______________________________ ]<br />

Passwort (Gedankenstütze): [ _______________________________ ]<br />

RemoteConsole:<br />

Terminal-Server: [ _______________________________ ]<br />

Benutzername: [ _______________________________ ]<br />

Passwort (Gedankenstütze): [ _______________________________ ]<br />

Call-Center Server-Pakete: 01805 - 00 76 77 (0,12€/Min)<br />

Mo-Fr 08:00 - 20:00 Uhr, Sa 10:00 - 18:00 Uhr


8 Meine Serverdaten<br />

ViSAS<br />

Server-Administrator:<br />

Loginname: [ visas ]<br />

Passwort: [ _______________________________ ]<br />

Virtual Server Administrator:<br />

Loginname: [ _______________________________ ]<br />

Passwort: [ _______________________________ ]<br />

Domain Administrator:<br />

Domain: [ _______________________________ ]<br />

Loginname: [ _______________________________ ]<br />

Passwort: [ _______________________________ ]<br />

Domain: [ _______________________________ ]<br />

Loginname: [ _______________________________ ]<br />

Passwort: [ _______________________________ ]<br />

Domain: [ _______________________________ ]<br />

Loginname: [ _______________________________ ]<br />

Passwort [ _______________________________ ]


14 Kapitel 1<br />

1 Erste<br />

Schritte – Der Kundenservicebereich<br />

Zunächst ein Versprechen: Die Verwaltung Ihres HighEnd-Servers ist<br />

einfach und logisch. Die Fülle von Funktionen, die STRATO Ihnen bietet,<br />

sollte Sie also nicht entmutigen, sondern animieren. Damit Sie von<br />

Anfang an Freude an Ihrem HighEnd-Server haben, besuchen Sie am<br />

besten erst einmal den Kundenservicebereich. Manche Funktionen sind<br />

nämlich optional und müssen von Ihnen freigeschaltet werden.<br />

1.1 Der Zugang zum Kundenservicebereich<br />

Der Kundenservicebereich ist ein webbasiertes Verwaltungswerkzeug,<br />

das Sie ganz einfach über Ihren Browser bedienen. Ob Sie den Internet<br />

Explorer, Mozilla, Firefox, den Konqueror unter Linux oder Safari auf<br />

dem Mac benutzen, spielt keine Rolle. Unter http://config.strato.de wird<br />

zunächst eine Maske geladen, mit deren Hilfe Sie sich im Kundenservicebereich<br />

von STRATO anmelden.<br />

Am einfachsten funktioniert das, wenn Sie in das Feld Domainname/Auftragsnummer<br />

den Namen der Domain eintragen, die Sie sich bei der<br />

Bestellung Ihres HighEnd-Servers gesichert haben. Haben Sie den Server<br />

ohne Domain bestellt, verwenden Sie stattdessen die Auftragsnummer.<br />

Nicht notiert? Macht nichts: Die Nummer steht in der Bestätigungsnachricht,<br />

die Ihnen STRATO nach Freischaltung Ihres Servers per E-Mail<br />

geschickt hat.<br />

Als Passwort für den Zugang zum Kundenservicebereich verwenden Sie<br />

das Kennwort, das Sie während der Bestellung selbst vergeben haben.<br />

Nach der Anmeldung im Kundenservicebereich erscheint am linken Bildschirmrand<br />

eine Navigationsleiste. Darüber verwalten Sie die vielfältigen<br />

Optionen Ihres Servers.<br />

Login über den Hostnamen Neben der Anmeldung per Domainname<br />

oder Auftragsnummer unterstützt der Kundenservicebereich noch<br />

einen dritten Weg: die Angabe des STRATO-Hostnamens Ihres HighEnd-Servers in<br />

Verbindung mit Ihrem Passwort. Das ist dann hilfreich, wenn Sie den Server ohne<br />

Domain bestellt haben und sich die Auftragsnummer nicht merken wollen.


Erste Schritte – Der Kundenservicebereich 15<br />

1.1 Über den Kundenservicebereich erhalten Sie Zugang zu allen Zusatz- und<br />

Sicherheitsfunktionen Ihres HighEnd-Servers.<br />

1.2 Passwort für den Kundenservicebereich ändern<br />

Aus Sicherheitsgründen sollten Sie Ihr Passwort für den Kundenservicebereich<br />

in regelmäßigen Abständen ändern. Klicken Sie dazu in der Navigationsleiste<br />

auf Zugangsdaten. Es erscheinen zwei untergeordnete Menüpunkte.<br />

Wählen Sie Zugangsdaten ändern.<br />

Tragen Sie Ihr neues Wunschpasswort bitte zweimal in die dafür vorgesehenen<br />

Felder ein. Durch die doppelte Abfrage stellt das System sicher,<br />

dass sich kein Tippfehler einschleicht. Mit dem Klick auf Absenden<br />

machen Sie die Änderung wirksam. Bei der nächsten Anmeldung akzeptiert<br />

der Kundenservicebereich nur noch das neue Passwort. Die aktuelle<br />

Sitzung wird von der Änderung aber nicht beeinflusst. Sie bleiben eingeloggt.


16 Kapitel 1<br />

1.2 Über den Menüpunkt Zugangsdaten ändern lässt sich ein neues Passwort für<br />

den Zugang zum Kundenservicebereich vergeben.<br />

Achtung: Diese Änderung wirkt sich nur auf den Zugang zum Kundenservicebereich<br />

aus, nicht aber auf den Zugang zum Server selbst. Eine<br />

Änderung des Root-Passworts müssen Sie entweder auf der Kommandozeile<br />

des Servers oder über ViSAS vornehmen.<br />

Sie sollten nach Änderung Ihres Zugangspassworts auch das Formular<br />

„Meine Serverdaten“ am Anfang dieses Buchs aktualisieren. Es empfiehlt<br />

sich, dort nicht das Passwort im Klartext zu notieren, sondern lediglich<br />

eine Gedankenstütze dazu.


Erste Schritte – Der Kundenservicebereich 17<br />

Ein sicheres Passwort wählen Der Kundenservicebereich ist<br />

quasi das Nervenzentrum Ihrer Server-Verwaltung. Wer Zugriff auf den Kundenservicebereich<br />

erhält, hat volle Kontrolle über den Rechner und das zugehörige<br />

Kundenkonto samt der darüber verwalteten Domains. Es liegt daher in Ihrem Interesse,<br />

ein möglichst sicheres Passwort zu wählen. Gute Passwörter bestehen aus<br />

einer Kombination von Buchstaben mit Wechsel zwischen Groß- und Kleinschreibung<br />

und Zahlen. Ein Beispiel wäre etwa dG34o4J7.<br />

Ein großer Nachteil solch eines sicheren Passworts ist jedoch, dass man es sich<br />

nur schwer merken kann. Hier hilft ein Trick, den auch Profis gerne anwenden:<br />

Ganze Sätze lassen sich viel leichter merken als ein kryptisches Passwort. Die<br />

Anfangsbuchstaben des Satzes, passend modifiziert, ergeben dann das Passwort.<br />

So wird zum Beispiel aus „Ein gutes Passwort für meinen HighEnd-Server“ das<br />

Passwort „1gP4mHS“.<br />

1.3 FTP-Backupspace aktivieren<br />

Zu jedem HighEnd-Server stellt STRATO dem Anwender auch einen<br />

Backup-Bereich zur Verfügung, der per FTP (File Transfer Protocol)<br />

ansprechbar ist. Seine Kapazität entspricht der im Server verbauten Festplatte.<br />

Der Backupspace lässt sich verwenden, um regelmäßig wichtige<br />

Inhalte des Servers zu sichern oder eine vorhandene Installation vor einer<br />

Umstellung auf ein neues Betriebssystem zwischenzulagern. Um den<br />

Backupspace nutzen zu können, müssen Sie ihn zunächst aktivieren. Das<br />

geschieht über den Menüpunkt FTP-Backupspace, den Sie im Menü Serverkonfiguration<br />

finden.<br />

Per Klick auf die Schaltfläche Aktivieren gelangen Sie zu einem weiteren<br />

Menü, das Sie auffordert, ein Passwort für den Zugriff auf den Backupspace<br />

zu vergeben. Es ist zwar möglich, dasselbe Passwort wie für den<br />

Zugang zum Kundenservicebereich zu verwenden, aus Sicherheitsgründen<br />

empfiehlt sich jedoch ein eigenes Passwort für die Backup-Funktion.


18 Kapitel 1<br />

1.3 Der Backupspace zur Sicherung der auf Ihrem Server abgelegten Daten muss<br />

vor der ersten Nutzung aktiviert werden.<br />

1.4 Für den Zugriff auf den Backupspace sollten Sie ein eigenes, vom Passwort für<br />

den Kundenservicebereich verschiedenes Passwort vergeben.


Erste Schritte – Der Kundenservicebereich 19<br />

Sobald Sie das Passwort eingetragen und per Klick auf die Schaltfläche<br />

Weiter an die Serververwaltung übermittelt haben, erscheint eine Statusseite,<br />

die Ihre Angaben bestätigt. Sie sollten hier unbedingt erneut auf die<br />

Schaltfläche Weiter klicken, da die nachfolgende Seite wichtige Informationen<br />

zum Zugriff auf den Backup-Bereich enthält:<br />

1.5 Die Übersicht am Ende der Aktivierung listet Ihre Benutzerdaten und die<br />

Adresse des Backup-Servers auf.<br />

Die zusätzlichen Daten benötigen Sie, weil es sich beim Backup-Server<br />

um einen externen Rechner handelt. Am besten notieren Sie sich dessen<br />

Adresse und Ihren Benutzernamen im Formular „Meine Serverdaten“<br />

am Anfang dieses Buchs. Wie Sie diese Daten nutzen und eine Datensicherung<br />

durchführen, ist in Kapitel 7 beschrieben.<br />

FTP-Zugangsdaten für Backup-Bereich abfragen<br />

Sollten Sie die Zugangsdaten zum FTP-Backupspace einmal nicht parat haben,<br />

können Sie diese nach erfolgter Aktivierung jederzeit über den Menüpunkt Serverkonfiguration<br />

→ FTP-Backupspace abrufen.


20 Kapitel 1<br />

1.4 RemoteConsole aktivieren<br />

Ein besonderes Feature der HighEnd-Server ist die RemoteConsole. Sie<br />

erlaubt es auch dann noch auf die Kommandozeile des Servers zu gelangen,<br />

wenn über die Netzwerkkarte keine Verbindung mehr möglich ist.<br />

Das kann zum Beispiel bei einer fehlerhaften Einstellung der Firewall passieren.<br />

Deshalb arbeitet die RemoteConsole über einen an der seriellen<br />

Schnittstelle des Rechners angeschlossenen Terminal-Server. Um auf<br />

diesen Zugriff zu erhalten, müssen Sie die RemoteConsole über den Kundenservicebereich<br />

aktivieren. Das Verfahren ähnelt der Aktivierung des<br />

FTP-Backupspace:<br />

1.6 Die Aktivierung der RemoteConsole erfolgt über einen eigenen Menüpunkt im<br />

Kundenservicebereich.<br />

In der Navigationsleiste finden Sie unter Serverkonfiguration den Eintrag<br />

RemoteConsole. Über einen Klick auf Aktivieren gelangen Sie zur Eingabemaske<br />

für das zum Zugriff auf die RemoteConsole notwendige Passwort.<br />

Dieses wird wieder zweimal abgefragt, um Tippfehler bei der Eingabe


Erste Schritte – Der Kundenservicebereich 21<br />

auszuschließen. Auch hier gilt: Es ist nicht ratsam, für die RemoteConsole<br />

dasselbe Passwort wie für den Zugang zum Kundenservicebereich zu<br />

verwenden.<br />

Haben Sie das Formular per Klick auf Absenden abgeschickt, zeigt Ihnen<br />

der Servicebereich eine Bestätigung an. Diese sollten Sie mit einem Klick<br />

auf Weiter bestätigen, und Sie gelangen zur Übersicht der für den Zugang<br />

zur RemoteConsole wichtigen Parameter.<br />

1.7 Die zum Zugang zur RemoteConsole nötigen Parameter finden Sie in einer<br />

eigenen Übersicht.<br />

Die angezeigten Werte für den Hostnamen des Terminal-Servers, Ihren<br />

Benutzernamen und eine Gedankenstütze für das zugehörige Passwort<br />

sollten Sie sich am besten gleich im Formular „Meine Serverdaten“ am<br />

Anfang des Buchs notieren.<br />

Als besonderen Service zeigt die Seite zudem eine Kommandozeile an.<br />

Diese kann wie abgebildet unter Linux oder Mac OS X genutzt werden,<br />

um eine Verbindung mit der RemoteConsole Ihres Servers aufzubauen.<br />

Wie das unter Windows funktioniert, erfahren Sie in Kapitel 4.


22 Kapitel 1<br />

Zugangsdaten für RemoteConsole ermitteln Wenn Sie einmal<br />

die Zugangsdaten für die RemoteConsole nicht zur Hand haben, können Sie<br />

diese unter demselben Menüpunkt abfragen, den Sie auch zur Aktivierung der<br />

RemoteConsole verwendet haben: Serverkonfiguration → RemoteConsole.<br />

1.5 TrafficControl nutzen<br />

Obwohl das im Paketpreis jedes HighEnd-Servers enthaltene kostenlose<br />

Datenvolumen für die üblichsten Webanwendungen mehr als ausreichend<br />

ist, empfiehlt es sich, die zwischen Server und Internet ausgetauschten<br />

Datenmengen im Auge zu behalten. Nicht nur, weil das im<br />

Zweifelsfall den eigenen Geldbeutel schont. Wichtiger ist die Beobachtung<br />

aus einem anderen Grund: Hacker suchen immer wieder Zugang zu<br />

fremden Servern, um darüber Raubkopien (Warez) zu vertreiben. Sollte<br />

Ihr Transfervolumen sprunghaft ansteigen, könnte das ein Hinweis auf<br />

eine Nutzung Ihres Servers durch Hacker sein.<br />

Über das Menü TrafficControl im Kundenservicebereich stehen Ihnen<br />

vielfältige Optionen zur Verfügung, die übertragene Datenmenge nicht<br />

nur zu kontrollieren, sondern auch effektiv einzuschränken. Nach dem<br />

Anklicken des Menüpunkts TrafficControl erhalten Sie über mehrere<br />

Unterpunkte Zugriff auf diese Funktionen.<br />

Datentransfer<br />

Hinter dem Menüpunkt Datentransfer verbirgt sich die Online-Übersicht<br />

über die bisher aufgelaufenen Übertragungsmengen. Nach Monaten<br />

geordnet lassen sich hier die zwischen Server und Internet übertragenen<br />

Datenmengen einsehen. So haben Sie jederzeit die Möglichkeit, den<br />

aktuellen Stand abzurufen und gegebenenfalls rechtzeitig Maßnahmen zu<br />

ergreifen, um ein Überschreiten des im Paketpreis Ihres Servers enthaltenen<br />

Freivolumens zu vermeiden.


Erste Schritte – Der Kundenservicebereich 23<br />

1.8 Einen schnellen Überblick über das aufgelaufene Datenvolumen verschaffen<br />

Sie sich mit Hilfe des Menüpunkts Datentransfer.<br />

E-Mail-Benachrichtigung<br />

Der Kundenservicebereich bietet Ihnen darüber hinaus die Option, eine<br />

Übersicht des aufgelaufenen Transfervolumens an eine frei wählbare<br />

E-Mail-Adresse zu versenden.<br />

Die dafür notwendigen Einstellungen nehmen Sie im Menü E-Mail-<br />

Benachrichtigung unter der Rubrik TrafficControl vor. Dabei stehen unterschiedliche<br />

Arbeitsweisen der Funktion zur Auswahl.<br />

Im Grundzustand ist die Benachrichtigungsfunktion deaktiviert. Um dies<br />

zu ändern, klicken Sie auf die Schaltfläche Bearbeiten, die unter der Übersicht<br />

der TrafficControl angezeigt wird. Sie gelangen zu einer dem vorhergehenden<br />

Bildschirm recht ähnlichen Anzeige, nur dass diese nun eine<br />

Eingabe mehrerer Parameter erlaubt. Die Funktion ist bereits auf „Aktivieren“<br />

gestellt, so dass Sie sich um diese Feinheit nicht mehr kümmern<br />

müssen.


24 Kapitel 1<br />

1.9 Noch ist die automatische Benachrichtigung über die aufgelaufene Datenmenge<br />

nicht aktiviert.<br />

In das Feld Benachrichtigung an tragen Sie die E-Mail-Adresse des Empfängers<br />

ein, der über den aufgelaufenen Traffic des Servers informiert<br />

werden soll. Das Eintragen mehrerer Empfänger ist nicht möglich.<br />

Entscheidende Bedeutung kommt dem letzten Eingabefeld, Benachrichtigung<br />

bei, zu: Lassen Sie dieses Feld leer oder tragen eine Null ein, so wird<br />

täglich eine Statusnachricht an die angegebene E-Mail-Adresse versendet.<br />

Geben Sie jedoch einen Wert zwischen 1 und 100 ein, erfolgt die<br />

Benachrichtigung erst, sobald der aufgelaufene Traffic den so festgelegten<br />

Prozentsatz des Freivolumens überschreitet. Beträgt das in Ihrem Serverpaket<br />

enthaltene Freivolumen beispielsweise 400 Gigabyte, würde der<br />

Eintrag von 75 im Feld Benachrichtigung bei erst bei einem aufgelaufenen<br />

Traffic von 300 Gigabyte eine Nachricht auslösen.


Erste Schritte – Der Kundenservicebereich 25<br />

1.10 Bei dieser Einstellung erfolgt der Versand einer Benachrichtigung erst, wenn<br />

der aufgelaufene Traffic 75 Prozent des Freivolumens überschreitet.<br />

Die Berechnung des Traffics erfolgt jeweils zu einem bestimmten Zeitpunkt.<br />

Bis die Mail von Ihnen gelesen wurde, können bereits eine ganze<br />

Reihe neuer Datentransfers stattgefunden haben. Der in der an Sie<br />

verschickten Benachrichtigung genannte Wert ist daher eher als grobe<br />

Orientierungshilfe zu sehen und nicht als absolute Maßzahl.<br />

Lieber zu früh als zu spät benachrichtigen lassen Nutzen Sie<br />

die TrafficControl, um ihren Datentransfer rechtzeitig korrigieren zu können. Es<br />

empfiehlt sich, in der Anfangsphase die tägliche Benachrichtigung zu wählen.<br />

Nach einiger Zeit haben Sie ein Gefühl für das anfallende Transfervolumen entwickelt<br />

und können die Einstellungen ändern. Nutzen Sie jetzt die Möglichkeit,<br />

Grenzwerte einzustellen.<br />

Kostenkontrolle<br />

Bei den Optionen Datentransfer und E-Mail-Benachrichtigung handelt es<br />

sich um passive Kontrollmechanismen für den vom Server verursachten<br />

Traffic. Über die Funktion Kostenkontrolle besteht zudem die Möglichkeit,<br />

den Traffic aktiv zu begrenzen.


26 Kapitel 1<br />

Dazu klicken Sie den Menüpunkt Kostenkontrolle an und tragen in das<br />

daraufhin erscheinende Formular den gewünschten Prozentsatz des Freivolumens<br />

in das Eingabefeld ein, nach dessen Erreichen der Server vom<br />

Netz getrennt werden soll.<br />

Dabei sind allerdings einige wichtige Aspekte zu beachten. So erfolgt die<br />

Trennung nicht sofort, sondern innerhalb von 24 Stunden nachdem die<br />

Überschreitung der von Ihnen festgelegten Traffic-Obergrenze festgestellt<br />

wurde. Mit anderen Worten: In dieser Zeit können weitere Übertragungen<br />

stattfinden, die allerdings nicht zum bereits verbrauchten Traffic<br />

hinzugezählt werden. Daher führt eine Überschreitung eines manuell<br />

gesetzten Traffic-Limits nicht zu zusätzlichen Kosten.<br />

Es ist daher ratsam, die Obergrenze nicht zu hoch anzusiedeln. Zwar bieten<br />

die mit den HighEnd-Servern verbundenen Freivolumen eine gehörige<br />

Menge Puffer – selbst ein Prozent des Freitraffics entspricht schon<br />

mehreren Gigabyte –, doch sollten Sie sich selbst besser einen Spielraum<br />

von zwei bis fünf Prozent einräumen.<br />

1.11 Nicht ohne Risiko: Ein Limit für den Datenverkehr schützt vor ungeplanten<br />

Kosten – sorgt aber eventuell für die Trennung des Servers vom Internet.


Erste Schritte – Der Kundenservicebereich 27<br />

Allerdings sollten Sie die Obergrenze nicht zu niedrig zu wählen. Wie<br />

beschrieben hat eine Überschreitung nämlich unweigerlich die Trennung<br />

des Servers vom Internet zur Folge und das bedeutet, dass alle auf dem<br />

Rechner laufenden Web-, Mail- und FTP-Server schlicht nicht mehr<br />

erreichbar sind. Ebenso wenig ist dann der normale Zugriff auf die Kommandozeile<br />

des Servers möglich. Nach einer Trennung des Servers<br />

besteht lediglich per RemoteConsole die Möglichkeit, Änderungen oder<br />

Wartungsarbeiten vorzunehmen. Erst ein manuelles Heraufsetzen der<br />

Obergrenze oder ein Abschalten der Kostenkontrolle führt zu einer Wiederanschaltung<br />

des Servers an das Internet.<br />

So kommt Ihr Server schnell wieder online Wurde Ihr Server<br />

durch die Kostenkontrolle vom Internet getrennt, können Sie eine Wiederanschaltung<br />

erreichen, indem Sie in der Kostenkontrolle eine höhere Traffic-Obergrenze<br />

eintragen. Beachten Sie, dass die neue Obergrenze mindestens 10 Gigabyte höher<br />

liegen muss als das bereits verbrauchte Volumen für den aktuellen Monat. Anderenfalls<br />

wird Ihre Einstellung nicht akzeptiert und der Server bleibt vom Netz<br />

getrennt.<br />

1.6 Betriebssystem nach Wahl per Neuinstallation<br />

Die HighEnd-Server von STRATO werden vorkonfiguriert und mit einer<br />

aktuellen Linux-Distribution von SUSE zur Verfügung gestellt. Diese<br />

Standard-Konfiguration ist für die meisten Anwendungs-Szenarien<br />

geeignet. Darüber hinaus bietet STRATO über den Kundenservicebereich<br />

eine Option, die es erlaubt, ein anderes Betriebssystem aus der<br />

Liste der angebotenen Distributionen auf dem Server einzurichten. Die<br />

Funktion dazu trägt den Namen Neuinstallation.<br />

STRATO bietet für seine HighEnd-Server mehrere Betriebssysteme zur<br />

Wahl, die zum Teil auch mit unterschiedlichen Verwaltungswerkzeugen<br />

eingerichtet werden. Im Einzelnen sind dies aktuell:<br />

� SUSE Linux 8.1 Professional mit Confixx 2.0<br />

� SUSE Linux 8.1 Professional mit ViSAS 2.2<br />

� SUSE Linux 9.0 Professional mit Confixx 3.0<br />

� SUSE Linux 9.0 Professional mit ViSAS 2.3<br />

� SUSE Linux 9.1 Professional (für Profis)<br />

� Debian GNU/Linux 3.0 Woody (für Profis)<br />

Natürlich ist STRATO bemüht, stets die aktuellsten Linux-Versionen auf<br />

den HighEnd-Servern zur Verfügung zu stellen. Es ist daher wahrscheinlich,<br />

dass Ihnen bereits eine andere Auswahl präsentiert wird.


28 Kapitel 1<br />

Die richtige Wahl treffen<br />

STRATO lässt die Wahl: Für Einsteiger sind alle zum Betrieb des Servers<br />

nötigen Tools vorinstalliert. Dank der Verwaltungswerkzeuge Confixx<br />

und ViSAS ist es sehr einfach, den HighEnd-Server in Betrieb zu nehmen.<br />

Fortgeschrittene und Profis können dagegen ganz nach ihren<br />

Vorstellungen Hand anlegen. Unter SUSE Linux 9.1 Professional und<br />

Debian GNU/Linux 3.0 lassen sich beispielsweise der Web-Server Apache<br />

oder die Datenbank MySQL selbst einrichten.<br />

1.12 Über die Neuinstallation lässt sich ein anderes Betriebssystem als das<br />

standardmäßig gelieferte SUSE 9.0 Professional einrichten.<br />

Welche Distribution eignet sich nun für welches Einsatzgebiet? Die folgende<br />

Tabelle schafft Durchblick:


Erste Schritte – Der Kundenservicebereich 29<br />

Distribution Verwaltung Einsatzgebiet<br />

SUSE 8.1 Professional Confixx 2.0 � Anwender, die von einem anderen<br />

Provider zu STRATO gewechselt sind,<br />

SUSE 8.1 Professional ViSAS 2.2<br />

aber ihre gewohnte Umgebung nicht<br />

ändern möchten<br />

� Einsteiger, die auf eine komfortable<br />

Verwaltung Ihrer Web-Inhalte Wert<br />

legen und eine bewährte Distribution<br />

bevorzugen<br />

� Nutzer, die eine größere Anzahl von<br />

Web-Auftritten auf dem Server verwalten<br />

möchten<br />

SUSE 9.0 Professional Confixx 3.0 � Anwender, die ihren Server mit einer<br />

stabilen und trotzdem möglichst aktuellen<br />

Linux-Distribution betreiben wol-<br />

SUSE 9.0 Professional ViSAS 2.3<br />

len, ohne dabei auf den Komfort einer<br />

speziellen Verwaltungssoftware zu<br />

verzichten<br />

� Einsteiger, die auf eine komfortable<br />

Verwaltung Ihrer Web-Inhalte Wert<br />

legen und eine aktuelle Distribution<br />

bevorzugen<br />

� Nutzer, die eine größere Anzahl von<br />

Web-Auftritten auf dem Server verwalten<br />

möchten<br />

SUSE 9.1 Professional – Anwender, die eine möglichst neue Linux-<br />

Distribution einsetzen möchten und die<br />

Debian GNU/Linux 3.0 –<br />

Verwaltung des Servers selbst in die Hand<br />

nehmen<br />

Als Faustregel gilt: Distributionen mit Verwaltungswerkzeug eignen sich<br />

nicht nur für Einsteiger. Von Confixx und ViSAS profitieren auch fortgeschrittene<br />

Anwender, die eine größere Zahl von Web-Auftritten verwalten<br />

wollen. Denn je mehr Sites zu betreuen sind, desto aufwändiger ist das<br />

manuelle Server-Management.<br />

Wer den Aufwand nicht scheut, verzichtet dagegen auf die Verwaltungswerkzeuge.<br />

Das lohnt sich für Anwender, die hauptsächlich eigene Web-<br />

Angebote verwalten wollen und sich gut mit einer der angebotenen Distributionen<br />

auskennen.


30 Kapitel 1<br />

Ein neues Betriebssystem installieren<br />

Um das gewünschte Betriebssystem zu installieren, klicken Sie auf den<br />

Unterpunkt Neuinstallation des Menüs Serverkonfiguration. Wählen Sie<br />

aus der Drop-Down-Liste eine Distribution und setzen Sie das Häkchen<br />

bei der Checkbox, um zu bestätigen, dass Sie das Betriebssystem wirklich<br />

auf dem Server einrichten lassen wollen. Ein Klick auf Weiter startet den<br />

Installationsvorgang jedoch nicht sofort.<br />

1.13 Ein bedeutsamer Klick: Bei Installation eines neuen Betriebssystems werden<br />

alle Daten überschrieben.<br />

Um wirklich sicher zu gehen, dass Sie tatsächlich ein neues Betriebssystem<br />

installieren und damit alle auf der Festplatte des Servers vorhandenen<br />

Daten überschreiben wollen, müssen Sie die Installation noch einmal<br />

explizit bestätigen. Dazu ist der in einer Grafik auf der Folgeseite angezeigte<br />

Code aus Ziffern und Buchstaben in ein Eingabefeld einzutragen<br />

und erneut per Klick auf die Schaltfläche Weiter zu bestätigen.


Erste Schritte – Der Kundenservicebereich 31<br />

1.14 Bevor die Installation des neuen Betriebssystems erfolgt, muss die<br />

Sicherheitsabfrage überwunden werden.<br />

Daten sichern! Sobald Sie die Einstellungen zur Neuinstallation<br />

einer Distribution vorgenommen und die Schaltfläche Weiter angeklickt<br />

haben, gibt es kein Zurück mehr. Die gewählte Distribution wird auf dem Server<br />

eingerichtet. Bei diesem Vorgang gehen alle auf den Festplatten bereits vorhandenen<br />

Daten verloren. Sollten Sie also schon Inhalte auf Ihrem Server abgelegt<br />

haben, sichern Sie diese unbedingt auf den FTP-Backupspace, bevor Sie eine<br />

Neuinstallation durchführen.<br />

Erst jetzt wird der eigentliche Installationsvorgang eingeleitet. Dieser<br />

kann mehrere Stunden in Anspruch nehmen. Sobald das Einrichten des<br />

gewählten Betriebssystems abgeschlossen ist, werden Sie per E-Mail über<br />

die Verfügbarkeit des Servers informiert.


32 Kapitel 1<br />

1.15 Sobald Sie diesen Statusbildschirm sehen, gibt es kein Zurück mehr – die<br />

Installation des neuen Betriebssystems wird nun unweigerlich ausgeführt.<br />

Auch über den Kundenservicebereich können Sie sich jederzeit über den<br />

Status der Neuinstallation informieren. Es genügt, erneut den Menüpunkt<br />

Neuinstallation anzuwählen, und Sie erhalten eine Informationsseite<br />

angezeigt, die entweder über den aktuellen Stand der Dinge Aufschluss<br />

gibt oder – nach erfolgreichem Abschluss der letzten Installation<br />

– eine erneute Änderung des Betriebssystems ermöglicht.<br />

1.7 Die Zugangsdaten ermitteln<br />

Bevor es an die Verwaltung des HighEnd-Servers per ViSAS und Confixx<br />

sowie den Zugriff per SSH (Secure SHell) und FTP (File Transfer Protocol)<br />

geht, ist noch eine letzte Aufgabe im Kundenservicebereich zu<br />

erledigen – die Abfrage des Passworts für Verwaltungswerkzeuge und<br />

Root-Zugang.


Erste Schritte – Der Kundenservicebereich 33<br />

Unter dem Menü Serverkonfiguration finden Sie den Eintrag Serverdaten.<br />

Neben Informationen wie dem Hostnamen und der IP-Adresse Ihres<br />

HighEnd-Servers – die Sie am besten gleich im Formular am Beginn dieses<br />

Buches notieren – wird Ihnen hier auch das Passwort für den Superuser<br />

root angezeigt.<br />

1.16 Das Passwort für Verwaltungs- und Root-Zugang zum frisch eingerichteten<br />

Server per SSH erhalten Sie über den Kundenservicebereich.<br />

Neuinstallation bedeutet neue Zugangsdaten<br />

Sollten Sie einmal das Betriebssystem ihres HighEnd-Servers wechseln oder aus<br />

irgendeinem anderen Grund eine Neuinstallation (siehe Kapitel 1.6) durchführen,<br />

dann wird bei diesem Vorgang automatisch auch ein neues Root-Passwort vergeben.<br />

Um sich nach der Neuinstallation wieder am HighEnd-Server anmelden zu<br />

können, müssen Sie also zuvor das neue Passwort im Kundenservicebereich<br />

abfragen.


4 Wege<br />

Wege auf den Server – FTP, SCP und SSH 87<br />

auf den Server – FTP, SCP und<br />

SSH<br />

Nach so viel Vorarbeiten brennt es Ihnen sicher schon auf den Nägeln,<br />

sich einmal direkt auf Ihrem Server umzusehen. Die gängigsten Methoden<br />

dazu sind der hauptsächlich zur Datenübertragung genutzte Zugang<br />

per FTP (File Transfer Protocol) sowie die Arbeit direkt auf der Kommandozeile<br />

per SSH (Secure SHell). Wie diese beiden Methoden funktionieren,<br />

für welche Aufgaben sie sich eignen und was Sie beim Einsatz<br />

beachten sollten, erfahren Sie in diesem Kapitel.<br />

4.1 Datenübertragung per FTP<br />

Geht es ausschließlich darum, Daten auf den Server zu übertragen, ist das<br />

File Transfer Protocol (FTP) die komfortabelste Methode. Allerdings<br />

wird für den Dateitransfer ein spezielles Programm benötigt, ein so<br />

genannter FTP-Client. Ein solches Programm ist WS_FTP Pro 9.0 von<br />

Ipswitch. Es ist im Software-Paket der STRATO HighEnd-Server enthalten.<br />

Im folgenden Abschnitt geht es daher vorwiegend um dessen Installation<br />

und Bedienung. Die Beispiele lassen sich aber auch leicht auf<br />

andere FTP-Programme übertragen.<br />

WS_FTP Pro installieren und einrichten<br />

Zur Installation von WS_FTP Pro 9.0 legen Sie die Ihnen von STRATO<br />

zugesendete CD in das CD-Laufwerk Ihres Rechners. Sollte das Menü<br />

zur Installation der Zusatzsoftware nach einer kurzen Zeit nicht automatisch<br />

erscheinen, öffnen Sie den Windows Explorer, wechseln auf das<br />

CD-Laufwerk und führen in dessen Stammverzeichnis einen Doppelklick<br />

auf die Datei STRATO_CD_START.EXE aus, um das Installationsmenü<br />

aufzurufen.<br />

Zum Start der Installation von WS_FTP Pro 9.0 klicken Sie auf dessen<br />

Logo in der Übersicht des STRATO-Menüs. Der Installationsvorgang<br />

läuft weitgehend automatisch ab, Sie können die vom Programm vorgeschlagenen<br />

Vorgaben bedenkenlos übernehmen.


88 Kapitel 4<br />

4.1 Ein Klick auf das Logo von WS_FTP Pro 9.0 startet die Installation des FTP-Client-Programms.<br />

Beim ersten Start präsentiert WS_FTP Pro 9.0 automatisch den Verbindungsassistenten.<br />

Er leitet Sie durch das Anlegen der ersten Serververbindung.<br />

Ein Klick auf die Schaltfläche Weiter startet den Vorgang, der Sie<br />

durch eine Reihe von Eingabemasken führt.<br />

4.2 Unter WS_FTP Pro 9.0 legen Sie die FTP-Verbindung zum Server komfortabel<br />

per Assistent an.


Wege auf den Server – FTP, SCP und SSH 89<br />

Als erstes werden Sie nach einem aussagekräftigen Namen für die neue<br />

Serververbindung gefragt. Widerstehen Sie der Versuchung, einfach „ftp“<br />

oder ähnlich allgemeine Bezeichnungen zu verwenden. Besser ist zum<br />

Beispiel „HighEnd-Server h0123“ oder „www.wunschname.de“. So stellen<br />

Sie sicher, dass Sie den Zugang stets schnell finden. Erst wenn Sie das<br />

Eingabefeld ausgefüllt haben, können Sie über einen Klick auf die Schaltfläche<br />

Weiter zur nächsten Eingabemaske gelangen.<br />

4.3 Ein aussagekräftiger Name für den FTP-Zugang hilft dabei, später schnell das<br />

richtige Profil für den HighEnd-Server zu finden.<br />

Hier werden Sie gebeten, die Server-Adresse anzugeben. Dabei stehen<br />

Ihnen mehrere Möglichkeiten offen:<br />

� Der STRATO-Hostname Ihres HighEnd-Servers. Dieser hat stets die<br />

Form hXXXX.serverkompetenz.net. Statt XXXX verwenden Sie bitte<br />

die Ziffernfolge, die Ihrem Server von STRATO zugeteilt wurde.<br />

� Der Name der von Ihnen bei der Bestellung reservierten Domain mit<br />

vorangestelltem www – also beispielsweise www.wunschname.de.<br />

� Die echte IP-Adresse des Servers in Form von vier durch Punkte<br />

getrennten Zahlenblöcken, ein Beispiel dafür wäre 81.169.163.112.


90 Kapitel 4<br />

Haben Sie Ihre Domain über STRATO beauftragt, erhalten Sie alle drei<br />

Informationen über den Kundenservicebereich. Die IP-Adresse und den<br />

STRATO-Hostnamen finden Sie im Menü Serverkonfiguration unter dem<br />

Punkt Serverdaten (siehe Kapitel 2.1). Die dem Server zugeordneten<br />

Domains fragen Sie im Ordner Domainverwaltung unter der Option<br />

Domainübersicht ab.<br />

4.4 Als Adresse des FTP-Servers sollten Sie bevorzugt den STRATO-Hostnamen<br />

angeben.<br />

Aus technischer Sicht macht es keinen Unterschied, welches der drei Formate<br />

Sie verwenden. Trotzdem sollten Sie dem STRATO-Hostnamen<br />

den Vorzug geben. Der Grund dafür ist, dass es Umstrukturierungen bei<br />

STRATO oder bei der Vergabe von IP-Adressen erforderlich machen<br />

könnten, Ihrem HighEnd-Server eine neue IP-Adresse zuzuteilen. Der<br />

STRATO-Hostname wird in diesem Fall automatisch auf die neue<br />

Adresse verweisen, der FTP-Zugang also nach wie vor funktionieren.<br />

Haben Sie Ihre Eingabe über einen Klick Weiter bestätigt, gelangen Sie<br />

zur Erfassung der Zugangsdaten. Hier tragen Sie den Benutzernamen des<br />

Domain Administrators der Domain ein, zu der Sie Daten übertragen<br />

möchten. Als Kennwort verwenden Sie das zu diesem Account gehörende<br />

(siehe Kapitel 2.4.1 und 2.5.2).


Wege auf den Server – FTP, SCP und SSH 91<br />

Sicherheitsrisiko gespeichertes Kennwort<br />

Beim Anlegen einer Serververbindung über den Assistenten speichert WS_FTP<br />

Pro 9.0 automatisch das Passwort in seiner internen Datenbank. Das ist zwar<br />

komfortabel, da beim Aufbau der Verbindung nicht ständig nach dem Passwort<br />

gefragt wird, birgt aber auch ein großes Risiko: Jeder, der Zugang zu Ihrem Rechner<br />

hat, kann genauso problemlos wie Sie auf Ihren Server zugreifen. Überlegen<br />

Sie also gut, ob Sie dieses Sicherheitsrisiko zugunsten des höheren Komforts eingehen<br />

wollen. Speziell auf leicht zugänglichen Rechnern in Büro-Umgebungen<br />

sollten Sie das Passwortfeld lieber leer lassen. WS_FTP Pro 9.0 fragt Sie in diesem<br />

Fall bei jedem Verbindungsaufbau automatisch nach dem Kennwort.<br />

4.5 Wenn Sie dem Assistenten das Kennwort mitteilen, wird dieses bei künftigen<br />

Verbindungen mit dem HighEnd-Server automatisch verwendet.<br />

Sobald Sie Ihre Einstellungen über einen Klick auf Weiter gespeichert<br />

haben, gelangen Sie zur Auswahl des Verbindungstyps. Hier müssen Sie<br />

keine Änderungen vornehmen und können die Vorgabe FTP durch einen<br />

Klick auf die Schaltfläche Weiter übernehmen.


92 Kapitel 4<br />

4.6 Für normale Datenübertragungen per FTP passen die Vorgabewerte von<br />

WS_FTP Pro 9.0, Änderungen durch den Anwender sind nicht notwendig.<br />

Damit sind die grundlegenden Einstellungen abgeschlossen. Der Assistent<br />

präsentiert Ihnen nun eine Zusammenfassung und bietet Ihnen an,<br />

nach dem Klick auf die Schaltfläche Fertig stellen sofort eine Verbindung<br />

mit dem Server herzustellen.<br />

Sollten Sie das nicht wünschen, entfernen Sie das Häkchen bei Mit diesem<br />

verbinden, bevor Sie den Assistenten über den Klick auf Fertig stellen beenden.<br />

4.2 Verbindung zum Server herstellen<br />

Haben Sie die Zugangsdaten erfasst, kann es an den Verbindungsaufbau<br />

zum Server gehen. Dazu rufen Sie zunächst den Server-Manager ab. Dies<br />

geschieht entweder über einen Klick auf die Schaltfläche Verbinden, die<br />

sich ganz links in der zweiten Menüleiste von WS_FTP Pro 9.0 findet,<br />

oder einen Klick auf den Hyperlink Entfernte Verbindung öffnen im Textfeld<br />

mit der Überschrift Leeres Verbindungsfenster.


Wege auf den Server – FTP, SCP und SSH 93<br />

4.7 Den Server-Manager von WS_FTP Pro 9.0 erreichen Sie aus dem Hauptmenü<br />

über zwei verschiedene Wege.<br />

Im Auswahlmenü des Server-Managers markieren Sie den erstellten Eintrag<br />

für Ihren HighEnd-Server und klicken auf die Schaltfläche Verbinden.<br />

4.8 Über die Schaltfläche Verbinden bauen Sie die FTP-Verbindung<br />

zum HighEnd-Server auf.


94 Kapitel 4<br />

WS_FTP Pro 9.0 zeigt Ihnen nun in seinem Hauptbildschirm zwei Fenster<br />

mit Verzeichnisinhalten an. Im linken Fenster sehen Sie ein Verzeichnis<br />

der lokalen Festplatte. Das rechte Fenster zeigt den Inhalt des Stammverzeichnisses<br />

des Benutzers an, mit dessen Konto Sie sich angemeldet<br />

haben.<br />

Beachten Sie, dass Sie Dateien, auf die der Web-Server zugreifen soll, im<br />

Verzeichnis public_html auf dem Server ablegen müssen. Dazu gehören<br />

beispielsweise HTML-Dokumente oder auch in PHP erstellte Skripts.<br />

4.9 Steht die Verbindung, sehen Sie im linken Fenster den Inhalt eines lokalen<br />

Ordners, rechts den des Domain-Verzeichnisses auf dem HighEnd-Server.<br />

Dateien vom und zum Server übertragen<br />

Um Dateien zwischen dem lokalen Rechner und dem HighEnd-Server<br />

auszutauschen, bewegen Sie diese einfach per Drag-and-Drop („Ziehen<br />

und Loslassen“) mithilfe der Maus von einem Fenster ins andere.<br />

Alternativ können Sie auch die zu übertragenden Dateien in einem Fenster<br />

durch Anklicken mit der Maus bei gleichzeitig gedrückter Taste [Strg]<br />

markieren und anschließend einen der beiden Richtungspfeile im Bereich<br />

zwischen den Verzeichnisfenstern anklicken.


Wege auf den Server – FTP, SCP und SSH 95<br />

4.10 Mithilfe der Transferpfeile lässt sich die Übertragung einzelner Files oder<br />

ganzer Dateigruppen zwischen lokalem PC und HighEnd-Server anstoßen.<br />

Bei der Übertragung unterscheidet FTP zwischen zwei grundsätzlich<br />

verschiedenen Verfahren: Binär- und ASCII-Format (American Standard<br />

Code for Information Interchange). In der Regel erkennt WS_FTP<br />

Pro 9.0 automatisch, welche Methode zu benutzen ist. Es kann aber<br />

auch vorkommen, dass Sie manuell die Art der Übertragung einstellen<br />

müssen, zum Beispiel weil WS_FTP Pro 9.0 einen bestimmten Dateityp<br />

falsch erkennt. Um Sie bei der Entscheidung für das jeweils richtige Verfahren<br />

zu unterstützen, zunächst eine kurze Erklärung der Unterschiede<br />

der beiden Varianten.<br />

Binäre Übertragungen<br />

Bei der binären Übertragung – erkennbar an der Meldung Opening<br />

BINARY mode data connection im Statusfenster von WS_FTP Pro 9.0 –<br />

werden die Daten genau so auf dem Zielsystem gespeichert, wie Sie auf<br />

dem Quellsystem vorliegen. Speziell Archive, ausführbare Dateien und<br />

Bilder sollten immer binär übertragen werden.


96 Kapitel 4<br />

ASCII-Übertragung<br />

Auch wenn sich auf den ersten Blick keine Unterschiede ausmachen lassen:<br />

Linux und Windows verwenden unterschiedliche Zeichensätze zur<br />

Darstellung von Textdateien. Zusätzlich kennzeichnet Windows ein Zeilenende<br />

durch die beiden Zeichen Carriage Return (CR) und Line Feed<br />

(LF) – in hexadezimaler Schreibweise 0x0D 0x0A –, während Linux<br />

dafür lediglich Line Feed (LF, 0x0A) verwendet. Bei einer Übertragung<br />

im ASCII-Modus trägt WS_FTP Pro 9.0 diesen Unterschieden Rechnung<br />

und versucht, während des Datentransfers gleich eine Umsetzung<br />

der Daten in das für das Zielsystem richtige Format vorzunehmen.<br />

Dies ist vor allem wichtig bei HTML-Dokumenten und bei in Skriptsprachen<br />

wie PHP oder Perl erstellten Web-Dokumenten. Werden diese im<br />

Binärformat vom lokalen Rechner auf den Server übertragen, kann es passieren,<br />

dass sie nicht mehr richtig ablaufen oder schlicht gar nicht mehr<br />

ausführbar sind.<br />

Die Erkennungsautomatik<br />

Um nun den richtigen Übertragungsmodus automatisch bestimmen zu<br />

können, verlässt sich WS_FTP Pro 9.0 auf die Dateiendung der zu transferierenden<br />

Files. In einer internen Liste sind alle Endungen hinterlegt,<br />

die auf eine Textdatei schließen lassen. Alle Daten mit einer dieser<br />

Endungen überträgt WS_FTP Pro 9.0 im ASCII-Modus. Wollen Sie die<br />

interne Liste um zusätzliche Dateiendungen erweitern – beispielsweise<br />

um auch mit .BAK endende Backup-Dateien im ASCII-Modus zu übertragen<br />

–, gehen Sie wie folgt vor:<br />

� Öffnen Sie in WS_FTP Pro 9.0 das Menü Extras.<br />

� Klicken Sie dort auf den Eintrag Optionen.<br />

� Im angezeigten Fenster klicken Sie unter der Rubrik Übertragungen<br />

auf die Option ASCII-Dateinamen.<br />

� Tragen Sie in das Eingabefeld die gewünschte Dateiendung – beispielsweise<br />

.bak – ein.<br />

� Klicken Sie auf die Schaltfläche Hinzufügen.<br />

� Übernehmen Sie die Änderungen durch einen Klick auf OK.<br />

Ab sofort werden auch Dateien mit der Endung .BAK im ASCII-Modus<br />

übertragen.


Wege auf den Server – FTP, SCP und SSH 97<br />

4.11 Über die Optionen von WS_FTP Pro 9.0 können Sie die Liste der im ASCII-<br />

Modus zu übertragenden Dateitypen um eigene Einträge erweitern.<br />

Dateirechte per WS_FTP Pro 9.0 lesen und setzen<br />

Neben der Datenübertragung lässt sich mit WS_FTP Pro 9.0 eine weitere<br />

wichtige Aufgabe erledigen: das Setzen der gewünschten Zugriffsrechte<br />

auf einzelne Dateien oder ganze Verzeichnisse.<br />

Die Dateirechte von Linux<br />

Dazu muss man wissen, dass Linux beim Zugriff auf Dateien drei unterschiedliche<br />

Rechtegruppen unterscheidet: Den Eigentümer der Datei, die<br />

Benutzergruppe, der die Datei zugeordnet ist, und schließlich alle anderen<br />

Anwender. Für jede dieser Rechtegruppen lassen sich die drei verfügbaren<br />

Zugriffsrechte Lesen, Schreiben und Ausführen separat festlegen.<br />

Für diese Rechte gibt es mehrere Darstellungsformen. In der Dateiliste<br />

des Servers zeigt WS_FTP Pro 9.0 die Rechte einer Datei in der Spalte<br />

Attribute durch eine Kombination der Zeichen für Lesen (r), Schreiben<br />

(w) und Ausführen (x) an – nacheinander für jede der Rechtegruppen. So<br />

bedeutet beispielsweise die Kombination rwxrwxrwx, dass die betreffende


98 Kapitel 4<br />

Datei sowohl von Besitzer, zugeordneter Gruppe wie auch von allen<br />

anderen Anwendern gelesen, beschrieben und ausgeführt werden darf.<br />

Die Kombination rwx---r-x hingegen zeigt an, dass lediglich der Eigentümer<br />

alle Rechte auf die Datei hat, während die zugeordnete Gruppe überhaupt<br />

keine Rechte besitzt und alle übrigen Anwender die Datei lesen und<br />

ausführen, nicht aber beschreiben dürfen.<br />

Um das Ganze auf die Spitze zu treiben, lassen sich diese Informationen<br />

auch als Zahlenwerte darstellen. Dabei entspricht der Wert 4 dem Lese-,<br />

eine 2 hingegen dem Schreibrecht. Ausführbarkeit einer Datei signalisiert<br />

dann die 1. Somit entspricht die Zahlenfolge 777 einem uneingeschränkten<br />

Zugriff durch alle Rechtegruppen, während 705 die Umsetzung von<br />

rwx---r-x in das Zahlenformat darstellt.<br />

4.12 In der Spalte Attribute stellt WS_FTP Pro 9.0 die Zugriffsrechte der unterschiedlichen<br />

Gruppen auf eine Datei dar.


Wege auf den Server – FTP, SCP und SSH 99<br />

Attribute setzen<br />

Um nun die Zugriffsrechte zu ändern, rufen Sie mittels eines Klicks mit<br />

der rechten Maustaste das Kontextmenü der Datei auf, deren Attribute<br />

Sie bearbeiten möchten. Dort wählen Sie den Menüpunkt Eigenschaften.<br />

4.13 Die Attribute einer Datei lassen sich über den Menüpunkt Eigenschaften ihres<br />

Kontextmenüs anpassen.<br />

Sie sehen jetzt einen Überblick über die Zugriffsrechte und einige zusätzliche<br />

Eigenschaften der Datei. Hier finden Sie in einem Eingabefeld die<br />

Dateiattribute im Zahlenformat dargestellt. Zusätzlich haben Sie die<br />

Möglichkeit, die einzelnen Rechte über separate Kotrollfelder zu setzen<br />

oder zu löschen.<br />

Achten Sie darauf, wie sich die Zahlen ändern, wenn Sie Häkchen setzen,<br />

oder wie Häkchen bei einer Änderung der Zahlenreihe auftauchen oder<br />

verschwinden. Wenn Sie ein wenig mit dieser Eingabemaske üben, werden<br />

Ihnen die Dateirechte unter Linux bald im Schlaf von der Hand<br />

gehen.


100 Kapitel 4<br />

4.14 Mithilfe dieser übersichtlichen Maske wird das Ändern von Zugriffsrechten<br />

unter WS_FTP Pro 9.0 zum Kinderspiel.<br />

4.3 Datenübertragung per SCP<br />

So komfortabel die Datenübertragung per FTP auch ist, sie hat auch<br />

einen großen Nachteil: Per FTP besteht ausschließlich Zugriff auf die<br />

Heimatverzeichnisse der User, nicht aber auf andere Bereiche der Verzeichnisstruktur.<br />

Zusätzlich besteht für den Superuser root kein Zugriff<br />

per FTP auf den Server. Was nun, wenn zum Beispiel Konfigurationsdateien<br />

für Systemprogramme auf den Server zu übertragen sind? Hier<br />

hilft Secure CoPy (SCP) weiter.<br />

WinSCP herunterladen und installieren<br />

Genau wie für den Zugang per FTP benötigen Sie für Dateitransfers per<br />

SCP eine spezielle Client-Software. Für Windows ist diese in Form von<br />

WinSCP sogar als Freeware verfügbar. Eine aktuelle Version des Programms<br />

stellt STRATO direkt im Kundenservicebereich zum Download<br />

zur Verfügung.<br />

Sie finden WinSCP im Ordner Zusatzfunktionen und dort im Bereich Software.<br />

Nach einem Klick auf diesen Hyperlink gelangen Sie zur Download-Seite,<br />

von der Sie WinSCP direkt herunterladen können.


Wege auf den Server – FTP, SCP und SSH 101<br />

4.15 Den Secure-Copy-Client WinSCP können Sie direkt im Kundenservicebereich<br />

herunterladen.<br />

Nach dem Download starten Sie die Installation von WinSCP durch einen<br />

Doppelklick auf WinSCP.exe. Gleich zu Beginn der Installation fragt Sie die<br />

Setup-Routine nach der Sprache, die WinSCP zukünftig verwenden soll. Ist<br />

hier nicht German voreingestellt, wählen Sie aus dem Drop-Down-Menü<br />

diesen Eintrag, um eine Installation in deutscher Sprache durchzuführen.<br />

4.16 Neben Deutsch unterstützt<br />

WinSCP noch eine ganze<br />

Reihe weiterer Sprachen.


102 Kapitel 4<br />

Bevor es an die eigentliche Einrichtung der Software geht, müssen Sie<br />

noch die Lizenzvereinbarungen akzeptieren und das Zielverzeichnis für die<br />

Programmdaten von WinSCP auswählen. Schließlich können Sie noch<br />

den Umfang der Installation beeinflussen. Voreingestellt ist hier Volle<br />

Installation, was Sie beibehalten sollten. Sie können jedoch in diesem Bildschirm<br />

noch weitere Sprachen selektieren. Werden mehrere Sprachdateien<br />

eingerichtet, können Sie später zwischen den verschiedenen Übersetzungen<br />

wählen.<br />

4.17 Im diesem Bildschirm der Setuproutine können Sie zusätzliche Übersetzungen<br />

von WinSCP zur Installation auswählen.<br />

Anschließend fragt das Programm nach dem Namen der Programmgruppe<br />

und erlaubt Ihnen zu entscheiden, ob die Software nur für den<br />

aktuellen Benutzer oder für alle auf dem Rechner angelegten Anwender<br />

verfügbar sein soll. Wenn Sie auf Ihrem PC mehrere Benutzerkonten<br />

definieren und allen Zugriff auf Ihren Server gewähren möchten, dann<br />

sollten Sie hier die Voreinstellung von Nur für mich auf Für alle Benutzer<br />

umstellen.


Wege auf den Server – FTP, SCP und SSH 103<br />

4.18 Soll WinSCP unter jedem auf dem lokalen PC angelegten Benutzerkonto verfügbar<br />

sein, ist die Option Für alle Benutzer zu aktivieren.<br />

Die nächste Einstellung entscheidet, wie WinSCP Ihnen seine Benutzerschnittstelle<br />

präsentiert. Es ist ratsam, hier die Voreinstellung wie Norton<br />

Commander zu verwenden. Bei dieser Darstellung sehen Sie – ähnlich wie<br />

bei WS_FTP Pro 9.0 – ein zweigeteiltes Programmfenster, in dem links<br />

die lokalen Verzeichnisse und rechts die Directorys des HighEnd-Server<br />

angezeigt werden. Diese Darstellungsform erleichtert das Kopieren von<br />

Dateien per Drag-and-Drop erheblich und sorgt für eine bessere Übersicht<br />

während der Arbeit.<br />

Nachdem Sie diesen Bildschirm verlassen haben, müssen Sie lediglich<br />

noch die Übersicht der Installationsparameter bestätigen und die Setup-<br />

Routine beginnt mit dem Einrichten der Software auf der Festplatte Ihres<br />

Rechners.


104 Kapitel 4<br />

4.19 Die Darstellungsweise wie Norton Commander ist der Ansicht wie Windows-<br />

Explorer vorzuziehen.<br />

Zum Abschluss der Installation können Sie WinSCP gleich starten und<br />

dazu übergehen, die Zugangsdaten für den HighEnd-Server zu erfassen.<br />

Zugangsdaten für SCP anlegen<br />

Beim ersten Start präsentiert Ihnen WinSCP automatisch die Eingabemaske<br />

zur Erfassung der Anmeldedaten für Ihren HighEnd-Server.<br />

Anders als bei FTP können Sie hier auch den Account des Superusers root<br />

verwenden, sind also nicht auf den Einsatz normaler User-Accounts eingeschränkt.<br />

Tragen Sie in das Feld mit der Bezeichnung Rechnername am besten den<br />

STRATO-Hostnamen Ihres HighEnd-Servers ein. Dieser hat stets die<br />

Form hXXXX.serverkompetenz.net, wobei XXXX eine vierstellige Zahlenfolge<br />

ist. Um uneingeschränkten Zugang zu allen Daten des HighEnd-<br />

Servers zu erhalten, verwenden Sie als Wert für das Feld Benutzername<br />

den Loginnamen des Superusers, also root. Das zu diesem Account gehörige<br />

Passwort können Sie im Kundenservicebereich im Ordner Serverkonfiguration<br />

unter dem Eintrag Serverdaten nachschlagen.


Wege auf den Server – FTP, SCP und SSH 105<br />

4.20 Die grundlegenden Sitzungsdaten für den Datentransfer per WinSCP sind<br />

schnell in die Maske eingetragen.<br />

Um die volle Funktionalität zu erhalten und später über WinSCP auch<br />

Besitzer und Gruppenzuordnung einer Datei ändern zu können, sollten<br />

Sie zudem das Protokoll von der Vorgabe SFTP (notfalls SCP) auf SCP<br />

umstellen.<br />

Durch einen Klick auf die Schaltfläche Speichern sichern Sie die Einstellungen,<br />

wobei Sie noch nach einem Namen für diesen Eintrag gefragt<br />

werden.<br />

Der erste Login<br />

Nachdem Sie die Sitzungsdaten erfasst und gespeichert haben, können<br />

Sie gleich die erste Verbindung mit dem Server aufnehmen. Markieren<br />

Sie dazu in der Übersicht der gespeicherten Sitzungen die gewünschte<br />

und klicken Sie anschließend auf die Schaltfläche Laden.


106 Kapitel 4<br />

4.21 Bevor eine Verbindung hergestellt werden kann, müssen Sie zunächst die<br />

gewünschten Einstellungen laden.<br />

Sie gelangen wieder zu dem Einstellungsbildschirm, in dem Sie auch<br />

schon die Zugangsdaten erfasst haben. Statt auf den Button Speichern klicken<br />

Sie nun jedoch auf die Schaltfläche Anmelden.<br />

4.22 Über die Schaltfläche Anmelden setzen Sie die Verbindung zum HighEnd-<br />

Server in Gang.


Wege auf den Server – FTP, SCP und SSH 107<br />

Erschrecken Sie nicht, wenn sich kurz darauf eine größere Warnmeldung<br />

auf Ihrem Bildschirm zeigt. Diese weist Sie lediglich darauf hin, dass der<br />

vom entfernten Server verwendete Schlüssel noch nicht auf Ihrem Rechner<br />

gespeichert ist. SCP verwendet öffentliche Schlüssel, um die übertragenen<br />

Daten zu verschlüsseln und so vor Lauschern im Netz zu schützen.<br />

Um diese Meldung zukünftig zu vermeiden, klicken Sie auf die Schaltfläche<br />

Ja. Dadurch speichern Sie den Schlüssel Ihres HighEnd-Servers auf<br />

der Festplatte Ihres PCs.<br />

Neuinstallation erzeugt neue Schlüssel Wenn Sie Ihren High-<br />

End-Server über den Kundenservicebereich neu installieren lassen (siehe Kapitel<br />

1.6), wird bei dieser Aktion auch ein neuer öffentlicher Schlüssel für den Einsatz mit<br />

SCP erzeugt. Bei einem nachfolgenden Anmeldeversuch per SCP wird WinSCP einen<br />

Sicherheitshinweis ausgeben, der Sie darüber informiert, dass sich der Schlüssel<br />

des angesprochenen Servers geändert hat, eventuell also ein Sicherheitsproblem<br />

vorliegt. In diesem Fall speichern Sie einfach den neuen Schlüssel ab.<br />

4.23 Keine Fehlermeldung: WinSCP weist Sie mit dieser Warnung lediglich darauf<br />

hin, dass Sie den öffentlichen Schlüssel des HighEnd-Servers noch nicht auf<br />

dem lokalen PC gespeichert haben.<br />

Auch wenn Sie den öffentlichen Schlüssel des Servers vorerst nicht speichern<br />

wollen und die Meldung mit einem Klick auf die Schaltfläche Nein<br />

quittieren, setzt WinSCP den Anmeldevorgang fort. Sie werden in diesem<br />

Fall lediglich bei der nächsten Anmeldung erneut zur Speicherung des<br />

öffentlichen Schlüssels aufgefordert.<br />

Ist die Anmeldeprozedur – begleitet von einigen sich selbstständig öffnenden<br />

und schließenden Fenstern – beendet, erscheint der Hauptbildschirm<br />

von WinSCP, der dem von WS_FTP Pro 9.0 ziemlich ähnlich ist. Sie sollten<br />

seine Größe mithilfe der Maus so anpassen, dass Sie alle Spalten der<br />

beiden Fenster für lokale und entfernte Verzeichnisse sehen können, ohne<br />

den Rollbalken benutzen zu müssen.


108 Kapitel 4<br />

4.24 Die Benutzerschnittstelle von WinSCP ähnelt der eines normalen FTP-Clients<br />

frappierend.<br />

Zusätzlich zu den vom FTP-Client bekannten Informationen sehen Sie<br />

hier in der Anzeige des Dateisystems Ihres HighEnd-Servers eine zusätzliche<br />

Information: Hinter der Spalte mit der Angabe der Zugriffsrechte findet<br />

sich der Besitzer der jeweiligen Dateien und Verzeichnisse angezeigt.<br />

Dateien übertragen mit WinSCP<br />

Die bevorzugte Methode, mithilfe von WinSCP Daten zwischen lokalem<br />

Rechner und HighEnd-Server zu übertragen, ist das Drag-and-Drop-<br />

Verfahren zwischen den beiden Verzeichnisfenstern.<br />

Allerdings läuft dieser Vorgang bei WinSCP nicht ganz so automatisch ab<br />

wie bei einem FTP-Client. Bevor der eigentliche Kopiervorgang startet,<br />

blendet WinSCP ein Abfragefenster ein, in dem Sie das Zielverzeichnis<br />

noch einmal explizit bestätigen müssen – oder es gegebenenfalls noch einmal<br />

korrigieren können. Erst durch Anklicken der Schaltfläche Kopieren<br />

startet die eigentliche Übertragung.<br />

4.25 Bevor WinSCP die Daten wirklich überträgt, gibt es Ihnen noch einmal<br />

Gelegenheit, das Zielverzeichnis zu korrigieren.


Wege auf den Server – FTP, SCP und SSH 109<br />

Darüber hinaus verbergen sich hinter der Schaltfläche Mehr >> einige<br />

erweiterte Einstellungen. Genau wie bei der FTP-Übertragung ist nämlich<br />

auch WinSCP in der Lage, zwischen binärem und dem ASCII-<br />

Transfermodus zu wechseln. Zusätzlich können Sie vorab bestimmen,<br />

mit welchen Zugriffsrechten die Datei auf dem HighEnd-Server versehen<br />

wird. Selbst eine eventuell gewünschte Umsetzung der Dateinamen – beispielsweise<br />

auf reine Kleinbuchstaben – können Sie einstellen.<br />

4.26 WinSCP bietet Ihnen umfangreiche Optionen zum Beeinflussen der Dateiübertragungen<br />

zwischen lokalem PC und dem HighEnd-Server.<br />

Ähnlich wie die meisten FTP-Clients unterscheidet auch WinSCP<br />

anhand der Dateiendung darüber, ob zur Übertragung einer Datei der<br />

Binär- oder der ASCII-Modus verwendet wird. Die Liste der zur Erkennung<br />

von ASCII-Dateien verwendeten Dateiendungen sehen Sie in den<br />

erweiterten Optionen unter der Bezeichnung Übertrage im Textmodus.<br />

Wollen Sie eigene Erweiterungen – beispielsweise .bak für Backup-<br />

Dateien – in diese Liste aufnehmen, bewegen Sie einfach den Mauszeiger<br />

in das Feld und Klicken zweimal mit der linken Maustaste. Die Liste wird<br />

so zur Eingabemaske, in die Sie am Ende die Zeichenfolge "; *.bak" eintragen.<br />

Alle diese Settings erreichen Sie auch, indem Sie über das Menü Optionen<br />

den Punkt Einstellungen wählen und in dem daraufhin angezeigten baumartig<br />

strukturierten Menü den Eintrag Übertragung anklicken.


110 Kapitel 4<br />

4.27 Das Einstellen der Übertragungsoptionen können Sie auch über das eigene<br />

Menü in den Programmeinstellungen vornehmen.<br />

Dateirechte und Besitzer ändern<br />

Mit WinSCP haben Sie auch die Möglichkeit, die Zugriffsrechte auf<br />

Dateien zu ändern. Genau wie beim Einsatz von WS_FTP Pro 9.0 können<br />

Sie die Rechte Lesen, Schreiben und Ausführen getrennt nach Eigentümer,<br />

zugeordneter Gruppe und allen anderen Anwendern des Servers<br />

vergeben. Zusätzlich bietet Ihnen WinSCP eine Funktion, die es Ihnen<br />

erlaubt, den Besitzer oder die zugeordnete Gruppe einer Datei oder eines<br />

Directorys zu ändern. Dies funktioniert jedoch nur, wenn Sie als Protokoll<br />

SCP eingestellt haben.<br />

Um die Änderungen vorzunehmen, rufen Sie das Kontextmenü einer<br />

Datei oder eines Verzeichnisses ab, indem Sie den Mauszeiger auf dem<br />

Namen des zu modifizierenden Objekts positionieren und mithilfe der<br />

rechten Maustaste das Kontextmenü abrufen. Aus diesem wählen Sie den<br />

Menüpunkt Eigenschaften.


Wege auf den Server – FTP, SCP und SSH 111<br />

4.28 Über den Menüpunkt Eigenschaften des Kontextmenüs einer Datei oder eines<br />

Verzeichnisses lassen sich sowohl Zugriffsrechte wie auch Besitzer und zugeordnete<br />

Gruppe des bearbeiteten Objekts ändern.<br />

WinSCP präsentiert Ihnen<br />

dann eine Eingabemaske, in<br />

der Sie sowohl die Zugriffsrechte<br />

– getrennt nach Eigentümer,<br />

Gruppe und andere<br />

Anwender – setzen als auch<br />

die zugeordnete Gruppe und<br />

den Eigentümer ändern können.<br />

Bei den beiden letztgenannten<br />

handelt es sich um<br />

Texteingabefelder, in die Sie<br />

die Namen des gewünschten<br />

Besitzers oder einer Gruppe<br />

eintragen müssen.<br />

Da WinSCP Ihnen keine Liste<br />

der verfügbaren Gruppen- oder<br />

Benutzernamen zur Verfügung<br />

stellt, sollten Sie sich sehr sicher<br />

sein, dass Sie hier richtige Angaben<br />

machen. Falsch gesetzte<br />

Benutzer- oder Gruppendaten<br />

können dazu führen, dass die<br />

Dateien für normale Anwender<br />

nicht mehr nutzbar sind.<br />

4.29 Über das Eigenschaften-Menü einer<br />

Datei setzen Sie komfortabel die<br />

Zugriffsrechte, das File sowie dessen<br />

Besitzer und zugeordnete Gruppe.


112 Kapitel 4<br />

4.4 Shell-Zugang per SSH<br />

Mit FTP und SCP lassen sich zwar Datentransfers komfortabel erledigen,<br />

für einige Arbeiten ist aber ein Arbeiten „vor Ort“, also direkt auf dem<br />

Server erforderlich. Dazu gehören das Starten und Stoppen von Diensten<br />

ebenso wie das manuelle Testen von Skripts oder auch die Überwachung<br />

der Auslastung des Servers in Echtzeit. Für alle diese Aktionen ist ein<br />

Zugang zur Kommandozeile des Servers unerlässlich. Genau diesen realisiert<br />

SSH (Secure SHell).<br />

PuTTY herunterladen und installieren<br />

Genau wie für FTP und SCP ist auch zum Zugang auf die Kommandozeile<br />

Ihres HighEnd-Servers per SSH ein spezieller Client notwendig.<br />

Neben kommerziellen Produkten existiert auch ein Freeware-Programm<br />

für diesen Zweck. Sein Name: PuTTY. Auch dieses Programm stellt<br />

STRATO direkt im Kundenservicebereich zum Download zur Verfügung.<br />

Sie finden es im Ordner Zusatzfunktionen, indem Sie den Menüpunkt<br />

Software anklicken.<br />

4.30 Auch den SSH-Client PuTTY erhalten Sie im Kundenservicebereich Ihres<br />

HighEnd-Servers.


Wege auf den Server – FTP, SCP und SSH 113<br />

Die Installation von PuTTY starten Sie durch einen Doppelklick auf die<br />

Datei PuTTY.exe. Verwenden Sie Windows XP und haben das Service<br />

Pack 2 installiert, warnt Sie das Betriebssystem, dass der Herausgeber der<br />

auszuführenden Anwendung nicht verifiziert werden konnte. Ignorieren<br />

Sie diese Meldung. Nach einem Klick auf Ausführen führt Sie der Assistent<br />

durch den Installationsvorgang.<br />

PuTTY einrichten<br />

Beim Start präsentiert Ihnen PuTTY eine Konfigurationsmaske, die<br />

sowohl zur Verwaltung verschiedener Konfigurationseinstellungen als<br />

auch zur direkten Anmeldung an einem beliebigen Server dient. Für<br />

einen größeren Komfort bei der Arbeit mit PuTTY sollten Sie zunächst<br />

einige Einstellungen anpassen und eine eigene Konfigurationsdatei speichern,<br />

bevor Sie sich wirklich am Server anmelden.<br />

4.31 Über den Eingangsbildschirm von PuTTY werden auch unterschiedliche Konfigurationen<br />

für verschiedene Server verwaltet.<br />

Tragen Sie dazu zunächst in das Feld mit der Bezeichnung Host Name (or<br />

IP address) den STRATO-Hostnamen Ihres HighEnd-Servers ein. Sie<br />

finden diesen stets in der Form hXXXX.serverkompetenz.net in den Unter-


114 Kapitel 4<br />

lagen zu Ihrem HighEnd-Server oder im Kundenservicebereich im Ordner<br />

Serverkonfiguration unter dem Menüpunkt Serverdaten.<br />

Zusätzlich sollten Sie im Feld Saved Sessions eine leicht wiederzuerkennende<br />

Bezeichnung für diesen Satz von Konfigurationsparametern angeben<br />

und gleich eine erste Sicherung der Einstellungen durch einen Klick<br />

auf die Schaltfläche Save vornehmen.<br />

Für zusätzlichen Komfort sorgen einige erweiterte Einstellungen. Wechseln<br />

Sie dazu zunächst in der Baumstruktur der Settings auf den Zweig<br />

Window. In der angezeigten Eingabemaske können Sie statt der Vorgabe<br />

von 24 im Feld Rows je nach persönlichem Geschmack 32 oder auch 40<br />

eingeben, um die Anzahl der auf der Kommandozeile sichtbaren Zeilen<br />

zu erhöhen. Das steigert später die Übersicht in einigen Linux-Hilfsprogrammen.<br />

Auch die Zahl der Spalten (Columns) können Sie von 80 auf<br />

120 oder auch 132 erhöhen.<br />

4.32 Ein Erhöhen der Werte für Rows (Zeilen) und Columns (Spalten) schafft später<br />

mehr Übersicht bei der Arbeit auf der Kommandozeile.<br />

Als nächstes wechseln Sie auf die Verzweigung Connection und setzen dort<br />

das Häkchen bei der Option Enable TCP keepalives (SO_KEEPALIVE<br />

option). Dies bewirkt, dass PuTTY automatisch ein Paket an den Server


Wege auf den Server – FTP, SCP und SSH 115<br />

sendet, wenn Sie eine bestimmte Zeit lang keine Eingabe machen. Auf<br />

diese Weise wird die Verbindung aufrecht erhalten, auch wenn Sie kurzfristig<br />

anderweitig beschäftigt sind.<br />

4.33 Die Keepalive-Funktion sorgt dafür, dass die Verbindung zum Server auch dann<br />

bestehen bleibt, wenn Sie einmal für einige Zeit nicht am Computer sitzen.<br />

Keepalive nur bei Flatrate aktivieren Wenn Ihr Internet-Zugang<br />

nach Online-Zeit abgerechnet wird, dann sollten Sie die Keepalive-Option<br />

tunlichst meiden. Sie sorgt dafür, dass die Verbindung nicht von selbst abbricht<br />

und entsprechend Kosten verursacht werden können. Aktivieren Sie diese Option<br />

daher nur, wenn Ihre Internet-Verbindung entweder einen großzügigen Volumentarif<br />

beinhaltet oder Sie Besitzer einer Flatrate sind.<br />

Ein nicht unbedingt notwendiges, aber dennoch nützliches Feature von<br />

SSH ist seine Fähigkeit, die übertragenen Daten nicht nur per Verschlüsselung<br />

zu schützen – was übrigens Standard ist – sondern sie auch zu<br />

komprimieren. Da es sich bei SSH stets um interaktive Sitzungen handelt,<br />

bringt diese Funktion zwar nicht viel, wenn es um den effektiven<br />

Datendurchsatz geht, sie beschleunigt aber beispielsweise die Ausgabe<br />

von langen Verzeichnislisten oder die Anzeige von Textdateien spürbar.


116 Kapitel 4<br />

Um die Datenkompression von PuTTY zu aktivieren, wechseln Sie auf<br />

den Zweig SSH im Einstellungsbaum und setzen dort ein Häkchen bei<br />

der Option Enable compression.<br />

4.34 Die Datenkompression beschleunigt vor allem die Übertragung größerer Textmengen<br />

zwischen lokalem Rechner und dem HighEnd-Server.<br />

Haben Sie alle Änderungen an den Einstellungen vorgenommen, wechseln<br />

Sie wieder auf die Hauptseite, indem Sie den obersten Zweig Session<br />

anklicken. Speichern Sie hier die Einstellungen über einen Klick auf die<br />

Schaltfläche Save.<br />

SSH-Verbindung herstellen<br />

Wahrscheinlich haben Sie sich schon gefragt, wo Sie denn bei all diesen<br />

Parametern den Loginnamen und das Passwort angeben. Die Antwort<br />

lautet: gar nicht. Aus Sicherheitsgründen gestattet es PuTTY nicht,<br />

Loginnamen und Passwort für eine Verbindung zu speichern. Sie müssen<br />

diese Informationen daher bei jedem Login von Hand angeben.<br />

Um eine SSH-Sitzung mit dem HighEnd-Server aufzubauen, markieren<br />

Sie in der Liste der Konfigurationssätze von PuTTY den Eintrag für<br />

Ihren HighEnd-Server, klicken dann die Schaltfläche Load und anschließend<br />

die Schaltfläche Open.


Wege auf den Server – FTP, SCP und SSH 117<br />

4.35 Um eine Verbindung zum Server aufzubauen, laden Sie zuerst die für diesen<br />

gespeicherten Einstellungen und klicken dann auf Open.<br />

Beim ersten Start warnt auch PuTTY, dass der HighEnd-Server einen<br />

öffentlichen Schlüssel präsentiert, der noch nicht auf dem lokalen Rechner<br />

gespeichert ist. Klicken Sie auf die Schaltfläche Ja, um den öffentlichen<br />

Schlüssel Ihres HighEnd-Servers auf Ihren PC zu übertragen und<br />

zur Login-Aufforderung des Servers zu gelangen.<br />

4.36 PuTTY warnt, dass der öffentliche Schlüssel des HighEnd-Servers noch nicht<br />

auf dem lokalen Rechner gespeichert wurde.


118 Kapitel 4<br />

Haben Sie die Warnung bestätigt, öffnet PuTTY den Terminalbildschirm<br />

und fragt zunächst nach dem Usernamen, den Sie für diese Sitzung<br />

verwenden wollen. Sie können hier jeden Loginnamen verwenden,<br />

für den Sie über ViSAS oder Confixx den Shell-Zugang freigeschaltet<br />

haben – und selbstverständlich auch die Kennung des Superusers root.<br />

Dessen Passwort erfahren Sie über den Kundenservicebereich wie in<br />

Kapitel 1.7 beschrieben.<br />

Geben Sie zunächst nach der Aufforderung Login as den Loginnamen root<br />

an und bestätigen Sie mit der Eingabetaste. Der HighEnd-Server verlangt<br />

nun nach dem Passwort. Tragen Sie hier die aus dem Kundenservicebereich<br />

ermittelte Kombination aus Zahlen und Buchstaben ein. Wenn<br />

Sie sich nicht vertippt haben, gelangen Sie nun zur Kommandozeile Ihres<br />

HighEnd-Servers.<br />

4.37 Geschafft: Der erste Login-Vorgang ist erfolgreich verlaufen.<br />

Wie Sie sich auf der Kommandozeile schnell zurechtfinden und welche<br />

Möglichkeiten Ihnen nun offen stehen, erfahren Sie im nächsten Kapitel.


5 Die<br />

Die Befehle der Kommandozeile 119<br />

Befehle der Kommandozeile<br />

Die Arbeit auf der Kommandozeile bietet sicherlich den größten Reiz<br />

beim Umgang mit einem HighEnd-Server – sie birgt aber auch die größten<br />

Gefahren. Auch wenn die Kommandozeile eines Linux-Rechners der<br />

DOS-Shell einer Windows-Maschine recht ähnlich ist: Es gibt viele kleine<br />

Unterschiede, die es anfangs zu beachten gibt, viele kleine Fallen, in die<br />

man tappen kann. Dieses Kapitel beschreibt den grundlegenden Aufbau<br />

eines Linux-Servers und erklärt Ihnen die wichtigsten Befehle, die Sie auf<br />

der Kommandozeile benötigen.<br />

5.1 Grundlagen zum Dateisystem<br />

Sobald der Cursor das erste Mal auf der Kommandozeile des Linux-Servers<br />

blinkt, schleicht sich bei den meisten Anwendern ein leicht ungutes<br />

Gefühl ein. Zwar sieht alles ähnlich aus, doch man merkt schnell, dass<br />

eben doch vieles anders ist. Besonders das Zurechtfinden in der vor allem<br />

für Einsteiger zunächst unübersichtlichen Verzeichnisstruktur eines<br />

Linux-Rechners bereitet den meisten Anwendern Probleme.<br />

Die Verzeichnisstruktur<br />

Anders als Windows mit seinen Laufwerkbuchstaben und Verzeichnissen<br />

sind unter Linux die Dateien ausschließlich in Verzeichnissen organisiert.<br />

Genau wie unter Windows gibt es hierbei solche, die im Wesentlichen<br />

dem System vorbehalten sind, sowie solche, die dem Anwender zur mehr<br />

oder weniger freien Nutzung zur Verfügung stehen. Um Ihnen die Übersicht<br />

zu erleichtern, finden Sie in der folgenden Tabelle eine Liste der<br />

wichtigsten Verzeichnisse eines Linux-Rechners und ihrer Bedeutung.<br />

Verzeichnis Bedeutung User<br />

/ Wurzelverzeichnis der Dateisystemstruktur Alle<br />

/bin beinhaltet die in der Grundinstallation enthaltnenen<br />

Programme, die für die meisten User<br />

ausführbar sind<br />

Alle<br />

/boot enthält die beim Systemstart geladene Grundversion<br />

des Betriebssystems<br />

SU


120 Kapitel 5<br />

Verzeichnis Bedeutung User<br />

/dev Systemverzeichnis, das einen Zugang zu den<br />

im Rechner enthaltenen physikalischen Geräten<br />

wie Netzwerkkarte oder Festplatten über<br />

Datei-Operationen bietet<br />

/etc Hier liegen die Konfigurationseinstellungen der<br />

meisten der auf dem Linux-Rechner vorinstallierten<br />

Softwarepakete.<br />

/home Unterhalb dieses Directorys liegen die Stammverzeichnisse<br />

der auf dem Rechner angelegten<br />

Benutzerkonten. Hier finden sich auch die<br />

Daten der per ViSAS angelegten Domains.<br />

/lib Speicherort für die zur Funktion des Betriebssystems<br />

wichtigen Systembibliotheken<br />

/opt Hier finden sich optionale Pakete, die während<br />

der Grundinstallation des Systems eingerichtet<br />

wurden.<br />

System<br />

Die Bezeichner in der letzten Spalte geben an, durch wen – wenn überhaupt<br />

– ein Zugriff auf die in den jeweiligen Verzeichnissen gespeicherten<br />

Daten Zugriff genommen werden sollte. Das Kürzel SU kennzeichnet<br />

dabei den Superuser root, der Begriff Alle meint alle User und der Eintrag<br />

System besagt, dass hier eigentlich nur das System selbst Aktionen ausführen<br />

sollte.<br />

Zwei Verzeichnisse aus der obigen Tabelle besitzen einen Sonderstatus:<br />

Im Directory /usr findet sich eine weiter verzweigte Struktur, die einer<br />

näheren Erläuterung bedarf. Ähnliches gilt für das Verzeichnis /var, in<br />

dem sich einige interessante Bereiche finden.<br />

SU<br />

Alle<br />

SU<br />

Alle<br />

/root Stammverzeichnis des Superusers SU<br />

/sbin ausführbare Programme, die dem Super-User<br />

vorbehalten sein sollten,<br />

SU<br />

/tmp globales Verzeichnis für temporäre Dateien Alle<br />

/usr globales Verzeichnis für Daten, die durch die<br />

Anwender erstellt wurden oder von diesen ausführbar<br />

sind (siehe eigene Tabelle)<br />

Alle<br />

/var globales Verzeichnis für sich ändernde Daten<br />

(siehe eigene Tabelle)<br />

Alle


Die Befehle der Kommandozeile 121<br />

Die Verzeichnisse unterhalb von /usr<br />

Wie der Name schon andeutet – usr ist nichts anderes als eine Abkürzung<br />

von User – finden sich in diesem Verzeichnis Dateien, die für die Anwender<br />

des Linux-Servers nützlich sind. Diese finden sich in mehreren Verzeichnissen,<br />

die sowohl direkt unter /usr wie auch unter /usr/local vorhanden<br />

sind. Der Unterschied besteht darin, dass die direkt unterhalb von<br />

/usr abgelegten Dateien während der Grundinstallation des Systems eingerichtet<br />

wurden, wohingegen die Verzeichnisse unterhalb von /usr/local<br />

die Dateien aufnehmen, die der Anwender zu einem späteren Zeitpunkt<br />

selbst einrichtet.<br />

Verzeichnis Bedeutung User<br />

/usr/bin von allen Benutzern ausführbare Dateien Alle<br />

/usr/lib Bibliotheken, die für die Ausführung zusätzlich<br />

installierter Pakete notwendig sind<br />

/usr/sbin ausführbare Dateien für den Superuser SU<br />

/usr/share Gemeinsame Dateien installierter Pakete Alle<br />

/usr/local/bin ausführbare Dateien von Programmpaketen, die<br />

vom Anwender manuell auf dem Server eingerichtet<br />

wurden<br />

Alle<br />

/usr/local/lib Bibliotheken von Programmpaketen, die vom<br />

Anwender manuell auf dem Server eingerichtet<br />

wurden<br />

/usr/local/sbin für den Superuser bestimmte ausführbare<br />

Dateien, die zu Programmpaketen gehören, die<br />

der Anwender manuell auf dem Server eingerichtet<br />

hat<br />

/usr/local/share gemeinsame Dateien der vom Anwender manuell<br />

auf dem Server eingerichteten Programmpakete<br />

Die Verzeichnisse unterhalb von /var<br />

Auch beim Verzeichnis /var ist der Name Programm: In der unter ihm<br />

angelegten Struktur finden sich vor allem variable Daten – also Dateien,<br />

die sich während des Betriebs Ihres HighEnd-Servers kontinuierlich<br />

ändern. Dazu zählen Protokolldateien ebenso wie die Inhalte von Datenbanken<br />

oder auch die Mailbox-Daten der einzelnen User. Einige der<br />

wichtigsten – aber bei weitem nicht alle – Verzeichnisse finden Sie in der<br />

nachfolgenden Tabelle beschrieben:<br />

Alle<br />

Alle<br />

SU<br />

Alle


122 Kapitel 5<br />

Verzeichnis Enthält<br />

/var/lib variable Dateien diverser auf dem Server laufender Applikationen<br />

/var/lib/mysql Hier finden sich die von MySQL verwalteten Datenbanken in<br />

jeweils eigenen Unterverzeichnissen.<br />

/var/lib/named beinhaltet die Informationen eines auf dem Server laufenden<br />

DNS-Servers<br />

/var/log globales Verzeichnis für allgemeine Protokolldateien<br />

/var/log/apache2 Hier finden Sie die Protokolldateien des Standard-Web-<br />

Servers, der auf Ihrem HighEnd-Server läuft.<br />

/var/log/qmail Enthält den aktuellen Status des als Mail-Server eingesetzten<br />

Programms QMail<br />

/var/log/visas Hier speichert ViSAS seine Protokolldaten.<br />

Mount-Points: Ersatz für Laufwerke<br />

Wenn in Ihrem lokalen Rechner mehrere Festplatten eingebaut sind oder<br />

Sie Ihre Festplatte in mehrere Partitionen unterteilt haben, dann wissen<br />

Sie, dass Windows sowohl zusätzliche Festplatten wie auch unterschiedliche<br />

Partitionen über jeweils eigene Laufwerkbuchstaben anspricht. Da<br />

Linux keine derartigen Bezeichner kennt, muss es ein anderes Verfahren<br />

verwenden, um mehrere Festplatten oder Partitionen in das Dateisystem<br />

einzubinden.<br />

Die Lösung hat ebenfalls wieder mit den Verzeichnissen zu tun: Jedes<br />

Verzeichnis unter Linux kann nicht nur Daten aufnehmen. Zusätzlich ist<br />

es auch in der Lage, als so genannter Mount-Point – was übersetzt so viel<br />

wie Einhängepunkt bedeutet – zu fungieren.<br />

Damit ist auch schon klar, wie Linux zusätzliche Festplatten und Partitionen<br />

verwaltet: Sie werden einfach an beliebigen Punkten in das Dateisystem<br />

eingehängt. Das bedeutet, dass ein einfacher Verzeichniswechsel<br />

unter Linux dazu führen kann, dass Sie plötzlich auf einer ganz anderen<br />

Festplatte und eventuell sogar mit einem ganz anderen Dateisystem<br />

arbeiten.<br />

Für den Moment müssen Sie sich damit allerdings nicht weiter beschäftigen.<br />

Im Augenblick genügt es zu wissen, dass Verzeichnisse unter Linux<br />

deutlich mehr leisten als ihre Gegenstücke unter Windows.


Die Befehle der Kommandozeile 123<br />

Eingehängte Verzeichnisse erkennen Um ein echtes von<br />

einem eingehängten Verzeichnis zu unterscheiden, gibt es einen einfachen Trick:<br />

Jedes eingehängte Verzeichnis besitzt in seinem Wurzelverzeichnis ein Directory<br />

mit dem Namen lost+found. Sobald Sie dieses Verzeichnis entdecken, wissen Sie,<br />

dass Sie sich auf einem eigenen Datenträger befinden, der an der aktuellen Verzeichnisposition<br />

in das Dateisystem Ihres Servers eingehängt wurde.<br />

5.2 Rund um Dateien und Verzeichnisse<br />

Mit dem Grundwissen über den Aufbau des Dateisystems von Linux<br />

gewappnet können Sie nun daran gehen, die Tiefen Ihres HighEnd-Servers<br />

auf der Kommandozeile zu erforschen. Die wichtigsten Befehle zur<br />

ersten Orientierung beschäftigen sich vorwiegend mit dem Anzeigen von<br />

Verzeichnisinhalten, dem Wechsel von Verzeichnissen sowie dem Anlegen<br />

und Löschen von Dateien und Directorys.<br />

ls: Verzeichnisinhalte anzeigen<br />

Generelle Form: ls [Optionen] [Filter]<br />

Wichtige Optionen:<br />

-l gibt eine ausführliche Liste des Verzeichnisinhalts aus<br />

-a zeigt auch versteckte Verzeichnisse an<br />

Eine der wichtigsten Informationen, die man über ein Verzeichnis auf<br />

dem Linux-Server erhalten möchte, ist in der Regel dessen Inhalt. Was<br />

unter Windows der Befehl dir leistet, erledigt unter Linux das Kommando<br />

ls, das vielfältige Parameter bietet. Seine einfachste Aufrufvariante ist<br />

ohne jeglichen Parameter, was eine vereinfachte, mehrspaltige Inhaltsliste<br />

des aktuellen Verzeichnisses ausgibt.<br />

5.1 Ohne Parameter aufgerufen liefert der Befehl ls eine mehrspaltige Liste der im<br />

aktuellen Verzeichnis vorhandenen Dateinamen.


124 Kapitel 5<br />

Nun ist diese Information oft nicht aussagekräftig genug. Um auch Informationen<br />

wie Größe der Dateien, ihren Besitzer und die jeweiligen<br />

Zugriffsrechte zu erhalten, benötigen Sie die Langform der Liste, die über<br />

den Parameter –l abgerufen wird:<br />

5.2 Zugriffsrechte und Besitzer der Dateien-Verzeichnisse verrät der Befehl ls –l<br />

Um den Inhalt eines anderen Verzeichnisses zu erfahren ohne zunächst in<br />

dieses zu wechseln, können Sie auch dessen Namen als Parameter an den<br />

Befehl ls übergeben.<br />

5.3 Ein Verzeichnisname als Paramter von ls bewirkt die Ausgabe des Inhalts dieses<br />

Directorys.<br />

Selbstverständlich lassen sich diese Optionen auch kombinieren, um beispielsweise<br />

eine detaillierte Inhaltsliste eines anderen als des aktuellen<br />

Verzeichnisses zu erhalten.


Die Befehle der Kommandozeile 125<br />

5.4 Auch die Kombination von Parametern und gewünschtem Verzeichnis ist kein<br />

Problem für den Befehl ls.<br />

Im letzten Beispiel können Sie gleich eine weitere Besonderheit von<br />

Linux-Verzeichnissen sehen: Das Directory mail im Verzeichnis /var ist<br />

gar kein echtes Verzeichnis. Wie der Pfeil mit dem Verweis auf spool/mail<br />

hinter dem Eintrag andeutet, handelt es sich hier um einen so genannten<br />

Link. Bei Links handelt es sich um eine komfortable Möglichkeit, Dateien<br />

oder ganze Verzeichnisbäume auch an anderen Stellen im Dateisystem<br />

von Linux zur Verfügung zu stellen.<br />

Eine weitere Option von ls ist die Ausgabe aller, also auch der versteckten<br />

Dateien eines Verzeichnisses. Diese Funktion rufen Sie über den Parameter<br />

–a ab. Sie ist vor allem nützlich, wenn Sie nicht als Superuser root,sondern<br />

als normaler Anwender am Server angemeldet sind. Während die<br />

Voreinstellung für den Superuser so gestaltet ist, dass dieser auch versteckte<br />

Dateien stets angezeigt bekommt, muss dies bei der Arbeit als einfacher<br />

Systembenutzer explizit angefordert werden. Um eine lange<br />

Inhaltsliste inklusive der versteckten Dateien zu erhalten, übergeben Sie<br />

dem Befehl ls einfach die beiden Optionen –a und –l.


126 Kapitel 5<br />

5.5 Die Optionen des Befehls ls lassen sich auch zusammenfassen.<br />

Sie können Optionen auch zusammenfassen, beispielsweise sind die beiden<br />

folgenden Kommandos funktional identisch:<br />

h0123:~# ls –a –l<br />

h0123:~# ls -al<br />

Komfort-Funktionen von SuSE Linux Um dem Anwender Tipparbeit<br />

zu sparen und Windows-Anwendern den Umstieg zu erleichtern, sind unter<br />

SuSE Linux 9.0 einige Befehls-Aliase definiert, die den Umgang mit ls deutlich<br />

erleichtern. So bewirkt der von Windows bekannte und unter Linux eigentlich nicht<br />

vorhandene Befehl dir die Ausgabe einer detaillierten Verzeichnisinhaltsliste – er<br />

entspricht also dem Befehl ls –l. Auch das Kürzel ll liefert diese Ausgabe, während<br />

la dem Kommado ls –al entspricht.<br />

Sie sollten sich allerdings lieber an die korrekte Linux-Schreibweise halten. Nicht<br />

jede Linux-Distribution bietet diese komfortablen Alias-Definitionen – hat man sich<br />

aber einmal an sie gewöhnt, ist es nur schwer, wieder ohne sie auszukommen.<br />

cd: Verzeichniswechsel<br />

Generelle Form: cd [Verzeichnis]<br />

Spezielle Verzeichnisnamen:<br />

cd - wechselt in das vor dem aktuellen zuletzt besuchte Verzeichnis<br />

cd ~ wechselt in das Heimatverzeichnis des Anwenders


Die Befehle der Kommandozeile 127<br />

Um zwischen verschiedenen Verzeichnissen zu wechseln, verwenden Sie<br />

unter Linux denselben Befehl wie unter Windows: cd – die Kurzform von<br />

Change Directory. Seine prinzipielle Arbeitsweise unterscheidet sich nicht<br />

von der seines Windows-Gegenstücks. Sie geben einfach das gewünschte<br />

Zielverzeichnis als Parameter an und landen im gewünschten Verzeichnis<br />

– sofern dieses existiert.<br />

5.6 Die Grundfunktion des Befehls zum Verzeichniswechsel entspricht der Arbeitsweise<br />

des bekannten Kommandos unter Windows.<br />

Ist das Zielverzeichnis nicht vorhanden, so gibt cd eine entsprechende<br />

Fehlermeldung aus und führt den Verzeichniswechsel nicht durch. Es<br />

gibt aber ein paar Besonderheiten der Linux-Variante dieses Kommandos,<br />

die unter Windows nicht vorhanden sind. So führt der Aufruf von cd<br />

ohne jeden Paramter zu einem Sprung in das Heimatverzeichnis des<br />

Anwenders.<br />

5.7 Wie die Tilde („~“) signalisiert führte der Befehl cd ohne Parameter aufgerufen<br />

zu einem Sprung in das Heimatverzeichnis des Anwenders.<br />

Eine weitere Besonderheit bietet der Verzeichniswechsel, wenn Sie als<br />

Parameter das Minuszeichen verwenden. Dies führt zu einem Sprung in<br />

das vor dem aktuellen Verzeichnis zuletzt besuchte Directory. Das ist<br />

besonders dann nützlich, wenn Sie beispielsweise häufig zwischen der<br />

Konfiguration eines Programms in /etc und dessen Logfile in einem<br />

Unterverzeichnis von /var/log/ hin und her wechseln müssen.


128 Kapitel 5<br />

5.8 Ein Minuszeichen als Parameter des Befehls cd bewirkt einen Sprung zum vor<br />

dem aktuellen zuletzt besuchten Verzeichnis.<br />

Auto-Vervollständigen nutzen Eine Komfortfunktion des<br />

Kommandozeilen-Interpreters von Linux ist es, dass dieser eine automatische Vervollständigung<br />

eines Befehls mithilfe der Taste [ÿ] ermöglicht. Dies funktionert<br />

bei allen Befehlen, die sich auf Dateien und Verzeichnisse beziehen. Um beispielsweise<br />

schnell in das Verzeichnis /var/log/apache2 zu gelangen, genügt die folgende<br />

Eingabe:<br />

(c)(d)(/)(v)[ÿ](log)(/)(a)[ÿ]<br />

Dass Sie den Namen des Unterverzeichnisses log komplett angeben müssen, liegt<br />

daran, dass im Directory var auch die Unterverzeichnisse lib und lock angelegt<br />

sind. Die Angabe von (l)[ÿ] oder (l)(o)[ÿ] ist also nicht eindeutig genug, um<br />

log als gewünschtes Zielverzeichnis zu erkennen.<br />

Experimentieren Sie ruhig ein wenig mit der automatischen Vervollständigungsfunktion<br />

– Sie werden schnell merken, wie angenehm es sich damit arbeiten lässt.<br />

mkdir: Verzeichnisse anlegen<br />

Generelle Form: mkdir [Optionen] [Verzeichnisname]<br />

Spezielle Optionen:<br />

-p legt alle auf dem Pfad zum gewünschten Verzeichnis<br />

liegenden Directorys automatisch an, wenn diese noch<br />

nicht existieren<br />

-m erlaubt das Festlegen der Zugriffsrechte direkt beim<br />

Anlegen des Verzeichnisses<br />

Verzeichnisse helfen dabei, Ordnung im Dateisystem zu wahren und auch<br />

bei umfangreichen Datenmengen den Überblick zu behalten. Zum Anlegen<br />

eigener Verzeichnisse dient unter Linux der Befehl mkdir. Seine einfachste<br />

Form besteht aus dem Befehl gefolgt von einem Verzeichnisnamen<br />

wie zum Beispiel test. Das so angegebene Directory wird direkt im<br />

aktuellen Verzeichnis erstellt.


Die Befehle der Kommandozeile 129<br />

5.9 Fast wie unter Windows: Verzeichnisse erstellen mit mkdir.<br />

Der Befehl mkdir kann aber noch mehr. Er ermöglicht es Ihnen, mehrstufige<br />

Verzeichnisebenen in einem Rutsch zu erstellen. Das funktioniert<br />

auch dann, wenn dazu mehrere der Zwischenebenen neu angelegt werden<br />

müssen. Der Schlüssel zum Erfolg ist der Parameter –p, den Sie beim<br />

Aufruf mit übergeben. Dieser bewirkt, dass alle im Verzeichnispfad zum<br />

gewünschten Directory benötigten Unterverzeichnisse automatisch angelegt<br />

werden, falls sie noch nicht existieren.<br />

5.10 Auch mehrstufige Verzeichnisse legt mkdir in einem Zug an.<br />

Zusätzlich haben Sie die Möglichkeit, beim Anlegen eines Verzeichnisses<br />

gleich die Zugriffsrechte festzulegen, die es erhalten soll. Dazu ist mkdir<br />

der Parameter –m zu übergeben, gefolgt von der gewünschten Rechtekombination<br />

in Zahlennotation (siehe Kapitel 4.1.4):<br />

5.11 Mit dem Parameter –m legen Sie fest, welche Zugriffsrechte auf das erzeugte<br />

Verzeichnis bestehen sollen.


130 Kapitel 5<br />

touch: Dateien anlegen / Dateidatum ändern<br />

Grundlegende Form: touch [Optionen] dateiname<br />

Spezielle Optionen:<br />

-t [string] setzt das Datum auf den im String angegebenen Wert<br />

-a ändert nur das Datum des letzten Zugriffs<br />

-m ändert nur das Datum der letzten Änderung<br />

Gerade bei Verzeichnissen, die zu einem Web-Auftritt gehören, ist es<br />

sinnvoll, in diesen eine leere Datei mit dem Namen index.html anzulegen.<br />

Bei einem Aufruf des Verzeichnisses wird dann eine weiße Seite ausgegeben,<br />

anstatt wie in den Grundeinstellungen von Apache verankert, eine<br />

Liste der Dateien im aktuellen Verzeichnis. Zwar lässt sich eine Datei<br />

auch mithilfe des Editors erzeugen, schneller geht es aber über den Befehl<br />

touch. Aufgerufen mit lediglich einem Dateinamen als Parameter legt er<br />

die angegebene Datei an, sofern diese noch nicht vorhanden ist. Existiert<br />

die Datei bereits, setzt touch lediglich das per ls angezeigte Datum sowie<br />

die Uhrzeit auf deren zum Zeitpunkt des Aufrufs von touch gültige Werte.<br />

Eine Sonderform von touch ist der Aufruf mit der zusätzlichen Option –t,<br />

gefolgt von einer Zahlenfolge, die das gewünschte Datum sowie die Uhrzeit<br />

angibt. So führt der Aufruf von touch –t 01311212 index.html dazu,<br />

dass für die Datei index.html in der per ls angezeigten Übersicht des Verzeichnisses<br />

das Erstellungsdatum als der 31. Januar, als Zeitpunkt der<br />

Erstellung 12:12 Uhr angezeigt wird.<br />

5.12 Der Befehl touch legt nicht nur Dateien an, er ist auch in der Lage, Erstellungsdatum<br />

und Uhrzeit zu ändern.


Die Befehle der Kommandozeile 131<br />

Über zwei zusätzliche Optionen haben Sie noch bessere Kontrolle darüber,<br />

welche Zeitstempel einer Datei touch modifiziert. Durch Übergabe<br />

von –a weisen Sie den Befehl an, nur den Zeitstempel für den letzten<br />

Zugriff zu ändern, mittels –m beeinflussen Sie den Zeitstempel der letzten<br />

Modifikation einer Datei.<br />

rmdir: Verzeichnisse entfernen<br />

Grundlegende Form: rmdir [Optionen] Verzeichnisname<br />

Spezielle Optionen:<br />

-p löscht auch alle im Pfad liegenden Elternverzeichnisse<br />

Zu einem ordentlich verwalteten Server gehört auch, nicht mehr benötigte<br />

Verzeichnisse wieder zu entfernen. Unter Linux ist für diese Aufgabe<br />

der Befehl rmdir zuständig. Seine einfachste Anwendung besteht darin,<br />

ihm das zu löschende Verzeichnis als einzigen Parameter zu übergeben.<br />

Dabei kann es sich auch um einen Verzeichnispfad, wie beispielseweise<br />

/var/test/kannweg handeln. In diesem Fall wird nur das letzte der angegebenen<br />

Verzeichnisse, also kannweg, gelöscht.<br />

5.13 Der Befehl rmdir dient dem Löschen einzelner Verzeichnisse.<br />

Allerdings löscht rmdir Verzeichnisse nur, wenn diese leer sind. Sind in<br />

einem Verzeichnis aber Dateien oder weitere Verzeichnisse vorhanden, so<br />

verweigert rmdir die Arbeit.<br />

5.14 Verzeichnisse, in denen noch Dateien liegen, lassen sich mit rmdir nicht<br />

löschen.


132 Kapitel 5<br />

Handelt es sich bei den zu löschenden Daten ausschließlich um Verzeichnisse<br />

– soll also ein ansonsten leerer Verzeichnisbaum entfernt werden –,<br />

dann hilft die Option –p weiter. Sie sorgt dafür, dass nicht nur das letzte<br />

im Pfadparameter übergebene Verzeichnis, sondern auch dessen Elternverzeichnisse<br />

gelöscht werden.<br />

5.15 Auf Wunsch löscht rmdir auch ganze Verzeichnisbäume.<br />

Lösch-Ergebnis überprüfen Auch mit dem Paramter –p aufgerufen<br />

löscht rmdir nur leere Verzeichnisse. Haben Sie beispielsweise die Verzeichnisäste<br />

/test/eins/kannweg sowie /test/zwei/kannweg und löschen nun mit rmdir<br />

–p /test/eins/kannweg, dann bleibt das Verzeichnis /test bestehen, da es ja auch<br />

noch das Directory zwei enthält, also nicht leer ist.<br />

rm: Dateien und Verzeichnisse entfernen<br />

Grundform: rm [Optionen] Dateifilter<br />

Spezielle Optionen:<br />

-r bewirkt rekursives Löschen in den Unterverzeichnissen<br />

des angegebenen Ziels<br />

-f löscht alle Daten ohne jegliche Nachfrage beim Nutzer<br />

Um Dateien zu löschen, verwendet Linux einen eigenen Befehl: rm. Auch<br />

seine Grundform ist recht einfach, als Parameter wird dem Kommando<br />

lediglich der Name der zu löschenden Datei übergeben. Dabei müssen<br />

Sie sich nicht in dem Verzeichnis befinden, in dem die zu löschende Datei<br />

abgelegt ist. Sie können den kompletten Pfad zur Datei angeben.<br />

Zwei besondere Parameter machen den Befehl rm gefährlich. Das gilt<br />

besonders, wenn Sie als Superuser root angemeldet sind. Zum einen<br />

erlaubt die Option –r das rekursive Löschen aller Daten innerhalb von<br />

Verzeichnissen. Zum anderen lässt sich über die Option –f jedwede Nachfrage<br />

beim Anwender ausschalten. In Kombination eine gefährliche


Die Befehle der Kommandozeile 133<br />

Mischung, da ein Aufruf mit –rf als Optionspaar das angegebene Ziel<br />

sofort und unwiederbringlich löscht.<br />

5.16 Die verschiedenen Anwendungsmöglichkeiten des Löschbefehls rm.<br />

Wildcards: Die Jokerzeichen des Dateisystems<br />

Die meisten mit Dateien arbeitenden Kommandos unter Linux unterstützen<br />

die Angabe von Wildcards im Namen der Zieldaten. Dabei handelt<br />

es sich um die Platzhalterzeichen '*' und '?'. Der Stern ist ein Platzhalter<br />

für beliebig viele Zeichen. Der Aufruf von rm test* würde also<br />

sowohl die Dateien test1, test_2 und test99 wie auch die Files test_fuer_den_<br />

loeschbefehl und sogar test löschen. Wie das letzte Beispiel zeigt, kann ein<br />

Stern also auch für „kein Zeichen“ als Platzhalter dienen.<br />

Das Fragezeichen wiederum stellt einen Platzhalter für genau ein Zeichen<br />

dar. Der Befehl rm test? würde daher lediglich die Datei test1 löschen, alle<br />

anderen aber nicht. Selbst die Datei test bliebe bestehen.<br />

5.3 Dateien anzeigen, kopieren, verschieben und<br />

umbenennen<br />

Gerade unter Linux kommt der Arbeit mit Dateien besondere Bedeutung<br />

zu. Die meisten Anwendungen verwenden Textdateien, um ihre Konfigurationsdaten<br />

zu speichern. Protokolle der einzelnen Applikationen wie<br />

Web-Server oder Datenbank sind ebenfalls in Textdateien gespeichert.<br />

Um diese zu betrachten, Sicherheitskopien anzulegen oder sie einfach an<br />

einen anderen Ort zu verschieben, dienen diverse Linux-Kommandos.


134 Kapitel 5<br />

less: Dateiinhalte anzeigen<br />

Grundform: less [Optionen] Dateiname<br />

Wichtige Tastaturbefehle:<br />

/ sucht in angezeigter Datei nach nächstem Vorkommen<br />

der Zeichenkette <br />

n wiederholt letzten Suchvorgang in Richtung des Dateiendes<br />

N wiederholt letzten Suchvorgang in Richtung der Dateianfangs<br />

q beendet die Anzeige des Dateiinhalts<br />

Das gängigste Hilfsprogramm zur Anzeige von Textdateien unter Linux<br />

ist less. Mit seiner Hilfe lassen sich Textdaten nicht nur betrachten, auch<br />

ein Scrollen sowie die Suche nach Zeichenfolgen ist möglich. Etwas ungewohnt<br />

für Einsteiger ist jedoch, dass less wie die meisten Linux-Utilities<br />

nicht über Menüs, sondern per Tastaturbefehle gesteuert wird.<br />

Nach dem Aufruf von less datei.name wird Ihnen der Inhalt der Datei<br />

angezeigt. In der letzten Zeile blendet less Statusinformationen ein. Hier<br />

sehen Sie, in welchem Bereich der Datei Sie sich befinden und wie viel<br />

Prozent des gesamten Dateiumfangs Sie gerade betrachten.<br />

5.17 Zusätzlich zum Inhalt einer Datei blendet less Statusinformationen ein.<br />

Zum Blättern in der Datei können Sie wie gewohnt die Cursor-Tasten<br />

verwenden. Um seitenweise zu blättern, verwenden Sie die Leertaste.


Die Befehle der Kommandozeile 135<br />

Einen schnellen Sprung an den Dateianfang führt ein Druck auf die Taste<br />

[G] aus, zum Dateiende gelangen Sie mithilfe von [ª]+[G]. Zum Beenden<br />

von less drücken Sie die Taste [Q].<br />

Nach Zeichenfolgen suchen<br />

Oft wollen Sie eine Datei nicht nur betrachten. Viel häufiger ist der Fall,<br />

dass Sie in einer Datei nach einem bestimmten Schlüsselwort suchen –<br />

beispielsweise, um die Einstellung einer bestimmten Option zu überprüfen.<br />

Unter less leiten Sie eine Suche durch einen vorwärts geneigten<br />

Schrägstrich „/“, den so genannten Slash, ein. Sie erreichen ihn auf der<br />

Tastatur, indem Sie gleichzeitig die Umschalttaste [ª] und die Taste [7]<br />

drücken. Dass Sie sich jetzt im Suchmodus befinden, merken Sie daran,<br />

dass statt den Informationen in der Statuszeile nun ein blinkender Cursor<br />

auf Ihre Eingabe wartet. Tragen Sie hier den gewünschten Suchbegriff ein<br />

und schicken Sie die Anfrage mit [¢] ab.<br />

5.18 Die Suchfunktion von less markiert alle im aktuellen Ausschnitt der Datei sichtbaren<br />

Fundstellen eines Suchbegriffs.<br />

In der Anzeige erscheinen daraufhin alle Fundorte des Suchbegriffs als<br />

hervorgehobener Text. Zusätzlich positioniert less die Anzeige so, dass die<br />

erste dargestellte Zeile der Datei die erste Fundstelle der gesuchten Zeichenkette<br />

enthält. Über die Taste [N] springen Sie zum nächsten gefundenen<br />

Eintrag, wobei die Bildschirmdarstellung stets angepasst wird. Um<br />

in der Liste der Fundstellen zurückzuspringen, verwenden Sie die Taste<br />

[ª]+[N].


136 Kapitel 5<br />

cp: Dateien und Verzeichnisse kopieren<br />

Grundform: cp [Optionen] Quelle Ziel<br />

Spezielle Optionen:<br />

-r kopiert rekursiv den Inhalt und alle Unterverzeichnisse<br />

eines Directorys<br />

-p behält beim Kopieren von Daten deren ursprünglichen<br />

Besitzer sowie die zugeordnete Gruppe bei<br />

Zum Kopieren einzelner Dateien sowie ganzer Verzeichnisbäume dient<br />

unter Linux der Befehl cp, eine Kurzform des englischen Worts „copy“.<br />

Ein wesentlicher Unterschied zu seinem Gegenstück unter Windows ist,<br />

dass cp stets die Angabe eines Ziels erfordert und nicht das Verzeichnis,<br />

in dem man sich gerade befindet, als Standardziel annimmt. Um beispielsweise<br />

die Datei php.ini aus dem Verzeichnis /etc ins gerade aktuelle<br />

Arbeitsverzeichnis zu kopieren, ist daher das Kommando cp /etc/php.ini.<br />

notwendig.<br />

5.19 Mittels cp lassen sich Dateien in quasi beliebige Verzeichnisse kopieren und<br />

gleichzeitig sogar umbenennen.<br />

Selbstverständlich ist es auch möglich, eine Datei in ein ganz anderes als<br />

das aktuelle Verzeichnis zu kopieren. In diesem Fall geben Sie einfach das<br />

gewünschte Zielverzeichnis als zweiten Parameter an. So kopiert der<br />

Befehl cp /etc/php.ini /tmp die Datei php.ini in das Verzeichnis /tmp. Handelt<br />

es sich bei dem als zweiten Parameter angegebenen Wert nicht um<br />

ein Verzeichnis, sondern um eine Datei, oder ist das Ziel noch nicht vor-


Die Befehle der Kommandozeile 137<br />

handen, so legt cp eine Datei mit dem angegebenen Namen an. Der<br />

Befehl cp /etc/php.ini /tmp/test.ini legt im Verzeichnis /tmp eine Datei mit<br />

dem Namen test.ini an, deren Inhalt dem der Originaldatei /etc/php.ini<br />

entspricht.<br />

Besitzer und zugeordnete Gruppe beibehalten<br />

Ein Nachteil dieser einfachen Form des Kopierens von Dateien ist, dass<br />

bei diesem Vorgang sowohl Besitzer wie auch zugeordnete Gruppe eines<br />

Files auf die Werte des Benutzers gesetzt werden, der den Kopiervorgang<br />

ausführt. Kopieren Sie also als Superuser root Dateien, dann ist die Wahrscheinlichkeit<br />

hoch, dass außer Ihnen später niemand mehr auf die Files<br />

zugreifen kann. Um dies zu verhindern, existiert die Option –p, die<br />

bewirkt, dass beim Kopiervorgang der ursprüngliche Besitzer und die<br />

zugeordnete Gruppe erhalten bleiben. Um also beispielsweise aus dem<br />

Stammverzeichnis des Anwenders testuser die Datei datei.name ins aktuelle<br />

Arbeitsverzeichnis zu kopieren, ohne Besitzer und zugeordnete<br />

Gruppe zu ändern, lautet der Befehl wie folgt:<br />

cp –p /home/testuser/datei.name .<br />

5.20 Wird cp mit der Option –p aufgerufen, behalten Dateien nach dem Kopiervorgang<br />

den ursprünglichen Besitzer und die zugeordnete Gruppe.<br />

Verzeichnisse oder deren Inhalte (rekursiv) kopieren<br />

Aber cp kann noch mehr. Auch das Kopieren ganzer Verzeichnisinhalte<br />

und sogar von Verzeichnisbäumen ist mit diesem Kommando realisierbar.<br />

Dabei müssen Sie allerdings genau darauf achten, welche Parameter<br />

Sie dem Befehl übergeben. Die folgenden Schreibweisen führen nämlich<br />

zu deutlich unterschiedlichen Resultaten:


138 Kapitel 5<br />

cp /etc /tmp<br />

cp /etc/* /tmp<br />

cp –r /etc/* /tmp<br />

cp –r /etc /tmp<br />

Die erste Version führt zu einer Fehlermeldung, da cp in diesem Fall zu<br />

wenig Informationen vorliegen, um den gewünschten Arbeitsmodus gesichert<br />

bestimmen zu können. Wie in der zweiten Zeile dargestellt aufgerufen<br />

kopiert cp alle Dateien nach /tmp, die sich direkt im Verzeichnis /etc<br />

befinden, nicht aber solche, die in weiteren Unterverzeichnissen von /etc<br />

vorhanden sind. Sollen auch diese Files mit übertragen werden, ist die<br />

Variante aus der dritten Beispielzeile zu wählen. Der Befehl in der letzten<br />

Beispielzeile schließlich bewirkt, dass in /tmp ein neues Verzeichnis mit<br />

dem Namen etc angelegt wird und erst in dieses die in /etc und darunter<br />

abgelegten files kopiert werden.<br />

In den letzten beiden Beispielen sehen Sie auch eine neue Option im Einsatz:<br />

-r. Sie bewirkt, dass nicht nur die im angegebenen Verzeichnis<br />

befindlichen Dateien, sondern auch die in eventuell vorhandenen Unterverzeichnissen<br />

liegenden Files beim Kopiervorgang berücksichtigt werden.<br />

Dieses so genannte rekursive Kopieren erleichtert es erheblich, ganze<br />

Verzeichnisbäume zu duplizieren.<br />

Vertrauen ist gut, Kontrolle ist besser Gerade wegen seiner<br />

Flexibilität ist der Befehl cp nicht nur sehr mächtig; sein Einsatz führt auch oft zu<br />

anderen Ergebnissen als sie der Anwender eigentlich erwartet. Kontrollieren Sie<br />

daher zumindest in der Anfangsphase stets, ob der Kopiervorgang tatsächlich so<br />

verlaufen ist, wie Sie es geplant hatten.<br />

mv: Dateien und Verzeichnisse verschieben<br />

Grundform: mv [Optionen] Quelle Ziel<br />

Spezielle Optionen:<br />

-b legt eine Backup-Kopie einer zu verschiebenden Datei<br />

an, sofern im angegebenen Zielverzeichnis bereits ein<br />

File gleichen Namens vorhanden ist<br />

Oft möchte man Daten nicht kopieren, sondern sie einfach an eine andere<br />

Stelle im Dateisystem verschieben. Dies lässt sich unter anderem über<br />

eine Kombination aus Kopier- und Löschvorgängen erreichen. Einfacher<br />

ist es allerdings, den dafür vorgesehenen Befehl mv, eine Kurzform von<br />

„move“, zu verwenden.


Die Befehle der Kommandozeile 139<br />

Wie bei allen dateibezogenen Operationen ist auch hier die Grundform<br />

eine einfache Angabe von Quelle und Ziel als Parameter des Kommandos.<br />

Genau wie beim Kopieren unterscheidet auch die Verschiebe-Operation<br />

zwischen einem bereits existierenden und einem nicht vorhandenen<br />

Ziel. Zudem ändert sich die Arbeitsweise je nachdem, ob das Ziel<br />

eine Datei oder ein Verzeichnis ist. Es ergeben sich folgende Kombinationen:<br />

5.21 Der Befehl mv kann zum Verschieben sowohl von Dateien wie auch von Verzeichnissen<br />

verwendet werden.<br />

Datei → existierende Datei<br />

Existiert die angegebene Zieldatei bereits, so wird sie beim Verschiebevorgang<br />

mit der Quelldatei überschrieben. Das Original wird gelöscht.<br />

Datei → nicht existierende Datei<br />

Ist die angegebene Zieldatei nicht vorhanden, so wird sie mit den von<br />

Ihnen vorgegebenen Namen angelegt. Die Ausgangsdatei wird gelöscht.<br />

Datei → existierendes Verzeichnis<br />

Die Ausgangsdatei wird unter Beibehaltung ihres Namens in das angegebene<br />

Zielverzeichnis verschoben. Die Originaldatei wird gelöscht.<br />

Datei → nicht existierendes Verzeichnis<br />

Diese Kombination ist nicht möglich. Der Move-Befehl hat keine Möglichkeit<br />

zu entscheiden, ob es sich beim angegebenen Ziel um ein Verzeichnis<br />

oder eine Datei handeln soll. Da als Ausgangspunkt des Vorgangs<br />

eine Datei angegeben ist, wird auch das Ziel als Datei angelegt.<br />

Verzeichnis → existierendes Verzeichnis<br />

Das Ausgangsverzeichnis wird inklusive seines Inhalts als neues Unterverzeichnis<br />

des Ziel-Directorys angelegt. Das Original-Verzeichnis wird<br />

gelöscht.


140 Kapitel 5<br />

Verzeichnis → nicht existierendes Verzeichnis<br />

Das Ausgangsverzeichnis wird unter dem angegebenen Zielnamen angelegt,<br />

die im Quell-Directory enthaltenen Dateien und Verzeichnisse ins<br />

Zielverzeichnis verschoben. Das Original-Directory wird gelöscht.<br />

Verzeichnis → vorhandene Datei<br />

Es leuchtet ein, dass diese Kombination nicht möglich ist. Theoretisch<br />

bestünde zwar die Möglichkeit, ein Directory anzulegen, das denselben<br />

Namen trägt wie die angegebene Zieldatei. Allerdings bietet das Dateisystem<br />

von Linux diese Möglichkeit nicht.<br />

Verzeichnis → nicht vorhandene Datei<br />

Da das Verschiebe-Programm selbstständig nicht erkennen kann, ob das<br />

angegebene Ziel ein Verzeichnis oder eine Datei sein soll, entscheidet es<br />

nach dem Quellparameter und legt ein Verzeichnis an.<br />

Einfaches Umbenennen per mv Der Move-Befehl kann auch<br />

dazu verwendet werden, einzelne Dateien umzubenennen. So ändert das Kommando<br />

mv datei.name neuer.name lediglich dazu, dass die bislang unter dem<br />

Namen datei.name abgelegte Datei nun den Namen neuer.name trägt.<br />

chmod: Datei- und Verzeichnisrechte ändern<br />

Grundform: chmod [Optionen] [Rechte] Ziel<br />

Spezielle Optionen:<br />

-R setzt rekursiv die Rechte aller zum angegebenen Zielfilter<br />

passenden Dateien<br />

Rechte-Format:<br />

numerisch Die gewünschten Zugriffsrechte auf die Datei werden als<br />

Zahlenkombination angegeben.<br />

über Kürzel Die Zugriffsrechte werden über Kürzel mit vorangestellten<br />

Vorzeichen gesetzt.<br />

Für jede Datei verwaltet Linux die Zugriffsrechte „Lesen“, „Schreiben“<br />

und „Ausführen“ getrennt nach Besitzer einer Datei, der der Datei zugeordneten<br />

Gruppe sowie allen übrigen Anwendern. Sie können diese<br />

Rechte in der Langform der Ausgabe eines Verzeichnisinhalts sehen, die<br />

per ls –l abrufbar ist.


Die Befehle der Kommandozeile 141<br />

Zur nachträglichen Änderung der Zugriffsrechte auf eine Datei dient das<br />

Kommando chmod, ein Kürzel für „Change Access Mode“. Es lässt sich<br />

in zwei Varianten aufrufen.<br />

Im ersten Fall geben Sie die gewünschten Zugriffsrechte als Ziffernfolge<br />

an, die das gewünschte Ergebnis beschreibt. Dabei gilt folgende Zuordnung<br />

zwischen gewünschtem Recht und der zugehörigen Zahl:<br />

Lesen 4<br />

Schreiben 2<br />

Ausführen 1<br />

Eine Kombination aus mehreren Rechten erfolgt durch einfache Addition<br />

der jeweiligen Zahlen. Soll beispielsweise ein Lesezugriff und zusätzlich das<br />

Ausführen der Datei möglich sein, so ist der anzugebende Wert 4+1 = 5.<br />

Da die Werte für jede Gruppe anzugeben sind, würde der Befehl zum Setzen<br />

von Lese- und Ausführen-Rechten auf die Datei datei.name wie folgt<br />

lauten:<br />

chmod 555 datei.name<br />

Der große Nachteil dieser Methode ist, dass sich mit ihrer Hilfe nicht<br />

gezielt einzelne Zugriffsrechte ändern lassen. Dieses Manko behebt die<br />

zweite Möglichkeit, die gewünschten Rechte anzugeben. Hierbei werden<br />

die einzelnen Rechte durch folgende Kürzel angegeben:<br />

Lesen r<br />

Schreiben w<br />

Ausführen x<br />

Das gewünschte Ziel spezifizieren Sie ebenfalls über ein Kürzel:<br />

Besitzer u<br />

Gruppe g<br />

Alle anderen o<br />

Das An- oder Abschalten erfolgt über ein dem Recht vorangestelltes Vorzeichen.<br />

Ein Plus aktiviert das jeweilige Recht, ein Minus entfernt es. Um<br />

beispielsweise das Schreibrecht für den Besitzer zu setzen und allen anderen<br />

Benutzern das Leserecht zu entziehen, lautet das Kommando so:<br />

chmod u+w,o-r datei.name


142 Kapitel 5<br />

5.22 Die zwei Aufrufvarianten des Befehls chmod erlauben das globale Setzen einzelner<br />

Rechte ebenso wie die direkte Modifizierung einzelner Rechte.<br />

Wollen Sie die Zugriffsrechte mehrerer Dateien auf einen Schlag setzen,<br />

dann verwenden Sie einfach die Platzhalterzeichen Stern „*“ und Fragezeichen<br />

„?“. Zusätzlich können Sie sich der Option –R bedienen. Sie<br />

bewirkt, dass die Zugriffsrechte aller passenden Dateien im aktuellen<br />

sowie den unter diesem befindlichen Verzeichnissen angepasst werden.<br />

chown: Besitzer und zugeordnete Gruppe ändern<br />

Grundform: chown [Optionen] [Besitzer][:Gruppe] Ziel<br />

Spezielle Optionen:<br />

-R ändert rekursiv alle zur angegebenen Zieldefinition passenden<br />

Dateien im aktuellen Verzeichnis sowie dessen<br />

Unterverzeichnissen<br />

Spezielle Aufrufvarianten:<br />

Besitzer Um nur den Besitzer einer Datei oder eines Verzeichnisses<br />

zu ändern, geben Sie nur diesen an.<br />

:Gruppe Um lediglich die Gruppe zu ändern, der eine Datei zugeordnet<br />

ist, geben Sie den Namen der Gruppe mit einem<br />

vorangestellten Doppelpunkt an.


Die Befehle der Kommandozeile 143<br />

Auch der Besitzer sowie die Gruppe, der eine Datei zugeordnet ist, lassen<br />

sich über ein eigenes Kommando ändern. Der Befehl chown, kurz für<br />

„Change Owner“, leistet diese Arbeit. Er ist zum Beispiel dann hilfreich,<br />

wenn Sie beim Kopieren den Parameter –p vergessen haben und nun<br />

nachträglich den Besitzer sowie die zugeordnete Gruppe einer oder mehrerer<br />

Dateien korrigieren möchten.<br />

Ähnlich wie bei chmod übergeben Sie ihm den gewünschten neuen Besitzer<br />

sowie die Gruppe und zusätzlich ein Namensmuster aller Dateien und<br />

Verzeichnisse, auf die sich die Änderung auswirken soll.<br />

Genau wie bei chmod erreichen Sie durch den optionalen Parameter –R,<br />

dass sich diese Änderungen nicht nur auf die Dateien im angegebenen<br />

Verzeichnis, sondern auch auf alle Dateien in Subdirectorys davon auswirkt.<br />

Um beispielsweise alle Dateien im aktuellen Verzeichnis und darunter,<br />

auf die das Suchmuster test* passt, dem Besitzer test und der Gruppe nutzer<br />

zuzuordnen, dient folgender Befehl:<br />

chown –R test:nutzer test*<br />

Beachten Sie, dass Besitzer und Gruppe durch einen Doppelpunkt<br />

getrennt werden müssen. Um nur den Besitzer, nicht aber die Gruppe zu<br />

ändern, geben Sie lediglich den Besitzernamen an:<br />

chown test datei.name<br />

Soll hingegen lediglich die Gruppe, der die Datei zugeordnet ist, nicht<br />

aber der Besitzer geändert werden, ist das Kommando in einer leicht<br />

abweichenden Form zu geben:<br />

chown :nutzer datei.name<br />

Beachten Sie, dass der Name der neuen Gruppe nach wie vor von dem<br />

vorangestellten Doppelpunkt eingeleitet wird. Nur so kann chown erkennen,<br />

dass es sich um die Angabe einer Gruppe und nicht um die eines<br />

Benutzerkontos handelt.


144 Kapitel 5<br />

5.23 Über die verschiedenen Aufrufvarianten von chown setzen Sie Besitzer und<br />

zugeordnete Gruppe einer Datei.<br />

5.4 Informationen über System und User<br />

Nun ist es zwar sicher interessant, sich kreuz und quer durch das Dateisystem<br />

bewegen und die diversen Files betrachten zu können. Mindestens<br />

von genau so großem Interesse ist es aber, Statusinformationen über die<br />

diversen Aspekte des Systems abzurufen. Die dazu notwendigen Befehle<br />

stellt Ihnen dieses Kapitel vor.


Die Befehle der Kommandozeile 145<br />

df: Verfügbare Kapazität auf den Festplatten ermitteln<br />

Grundform: df [Optionen] [Dateisystem]<br />

Spezielle Optionen:<br />

-h gibt die Größe des belegten und des freien Speicherplatzes<br />

in Kilo-, Mega- und Gigabyte statt in Byte aus<br />

-H ähnlich wie –h, verwendet aber zur Berechnung nicht den<br />

korrekten Faktor 1024 sondern 1000<br />

Eine für wohl jeden Anwender wichtige Information ist die über den<br />

belegten sowie den noch freien Speicherplatz auf den Festplatten des<br />

Systems. Der Befehl df, eine Abkürzung für „Disk Free“, liefert genau<br />

diese Daten. Ohne jegliche Parameter aufgerufen gibt df die Daten aller<br />

im Rechner vorgefundenen Partitionen aus.<br />

Die Anzeige von df verwendet standardmäßig die Anzahl der belegten<br />

sowie der noch verfügbaren Datenblöcke auf den Medien. Da diese Information<br />

oft erst über das Multiplizieren mit der realen Blockgröße zu<br />

einfach lesbaren Ergebnissen führt, bietet df zwei Optionen an, die dem<br />

Anwender die Arbeit abnehmen.<br />

Um die jeweiligen Werte in Kilo-, Mega- oder Gigabyte angezeigt zu<br />

bekommen, verwenden Sie die Option –h. Es verwendet zur Berechnung<br />

der Daten einen Teiler von 1024, berechnet also die im Computer-Umfeld<br />

korrekten Ergebnisse. Etwas anders arbeitet die Option –H. Sie verwendet<br />

als Teiler den Wert 1000, liefert also etwas höhere Werte zurück.<br />

5.24 Mithilfe von df erhalten Sie wertvolle Informationen über den Füllstand<br />

der Festplatten-Partitionen im HighEnd-Server.


146 Kapitel 5<br />

Zusätzlich können Sie die Ausgabe noch auf ein einzelnes Dateisystem<br />

einschränken, indem Sie entweder dessen Einhängepunkt (Mount-Point)<br />

oder den Namen seines physikalischen Geräts angeben.<br />

du: Von einem Verzeichnis belegten Plattenplatz ermitteln<br />

Grundform: du [Optionen] [Ziel]<br />

Spezielle Optionen:<br />

-h gibt die Größe des belegten Speicherplatzes in Kilo-,<br />

Mega- und Gigabyte statt in Byte aus<br />

-H ähnlich wie –h, verwendet aber zur Berechnung nicht den<br />

korrekten Faktor 1024 sondern 1000<br />

-s unterdrückt die Ausgabe der Informationen für Unterverzeichnisse<br />

des Zielpfads<br />

Ist die Festplatte an den Grenzen ihrer Kapazität angelangt, möchte man<br />

natürlich gerne den Verursacher finden. Diese Arbeit erleichtert der<br />

Befehl du, eine Abkürzung für „Disk Usage“. Es gibt für ein angegebenes<br />

Verzeichnis den von ihm belegten Speicherplatz aus – inklusive aller eventuell<br />

existierenden Sub-Directorys.<br />

Die dabei ausgegebene Liste kann, abhängig von der Zahl der vorhandenen<br />

Unterverzeichnisse, recht lang sein. Daher erlaubt es die Option –s, die<br />

Ausgabe auf die insgesamt belegte Menge einzuschränken. Zusätzlich können<br />

Sie mithilfe der bereits vom Befehl df bekannten Optionen –h und –H<br />

die Ausgabe statt in Bytes in Kilo-, Mega- und Gigabyte erfolgen lassen.<br />

5.25 Der Befehl du ermittelt, wie viel Speicherplatz von einem Verzeichnis und dessen<br />

Subdirectorys belegt wird.


Die Befehle der Kommandozeile 147<br />

users: Angemeldete Benutzer anzeigen<br />

Grundform: users<br />

Ein recht simples, doch oft hilfreiches Kommando ist users. Es gibt eine<br />

Liste der aktuell am HighEnd-Server angemeldeten Benutzer aus. Sollten<br />

Sie zum Beispiel die Befürchtung haben, dass sich unautorisierte Anwender<br />

auf dem Rechner zu schaffen machen, können Sie mithilfe von users<br />

überprüfen, ob außer den berechtigten Anwendern auch noch andere auf<br />

dem System zu Gange sind.<br />

Allerdings informiert Sie users nur über die gerade angemeldeten Anwender,<br />

nicht jedoch darüber, ob mit einem Konto innerhalb eines gewissen<br />

Zeitraums ein Login vorgenommen wurde.<br />

5.26 Der Befehl users gibt eine Liste der aktuell am HighEnd-Server angemeldeten<br />

Benutzer aus.<br />

id: Gruppenzugehörigkeit eines Benutzers ermitteln<br />

Grundform: id [Optionen] [Benutzerkonto]<br />

Spezielle Optionen:<br />

-g gibt nur die Gruppennummer der primären Gruppe aus<br />

-G gibt die Gruppennummern der weiteren Gruppen aus<br />

-u gibt nur die Benutzerkontonummer aus<br />

-n gibt statt der Nummern den Namen von Gruppe oder<br />

Benutzerkonto aus<br />

Wollen Sie mehr Informationen über ein Benutzerkonto erhalten, hilft<br />

Ihnen der Befehl id weiter. Er zeigt Ihnen zu einem angegebenen Benutzerkonto<br />

dessen Nummer sowie primäre und weitere Gruppenzugehörigkeiten<br />

an.<br />

Ohne Parameter aufgerufen liefert id die Informationen für die aktuell<br />

verwendete Benutzerkennung. Geben Sie als Parameter eine Benutzerkennung<br />

an, erhalten Sie die Informationen über das spezifizierte Konto.<br />

Weitere Einschränkungen sind über die Optionen –g, -G und –u möglich.<br />

Die erste Option bewirkt, dass lediglich die Nummer der primären<br />

Gruppe ausgegeben wird. Im zweiten Fall werden die Nummern aller


148 Kapitel 5<br />

weiteren Gruppen angezeigt, denen der Benutzer angehört. Über die<br />

letzte Option schließlich lassen Sie sich nur die Nummer des Benutzerkontos<br />

anzeigen.<br />

Können Sie mit den Nummern nicht viel anfangen, hilft die Option –n<br />

weiter. Sie bewirkt, dass statt Nummern die Namen der jeweiligen Gruppen<br />

oder Benutzerkonten ausgegeben werden.<br />

5.27 Zusätzliche Informationen über einen Benutzer liefert der Befehl id.<br />

top: Systemauslastung ermitteln<br />

Grundform: top [Optionen] [Parameter]<br />

Wichtige Tastaturbefehle:<br />

c schaltet die Anzeige zwischen Programmnamen und Kommandozeilen-Modus<br />

um<br />

M zeigt die Prozesse mit dem größten Speicherverbrauch<br />

an<br />

P zeigt die Prozesse mit dem größten Verbrauch an CPU-<br />

Zeit an<br />

q beendet das Programm<br />

Spezielle Optionen:<br />

-u zeigt nur die Prozesse an, die unter dem Konto des<br />

Benutzers laufen<br />

Reagiert der Server zu langsam auf Anfragen, beschweren sich die Besucher<br />

des Web-Auftritts über dahintröpfelnden Seitenaufbau, und reagiert<br />

die Datenbank nur noch widerwillig auf Anfragen, dann ist der Server<br />

höchstwahrscheinlich ausgelastet. Aufschluss über mögliche Verursacher<br />

gibt das Hilfsprogramm top.<br />

Für gewöhnlich wird es ohne Optionen oder Parameter aufgerufen und<br />

zeigt diejenigen Prozesse an, die die meisten CPU-Zyklen verbrauchen.<br />

Zusätzlich bietet das Programm im Kopf der Anzeige weitere Status-<br />

Informationen an.


Die Befehle der Kommandozeile 149<br />

5.28 Das Utility top liefert umfangreiche Informationen über die Auslastung Ihres<br />

HighEnd-Servers.<br />

Die Header-Informationen<br />

In der ersten Bildschirmzeile sehen Sie neben der Zeit, die der Server seit<br />

dem letzten Neustart online ist, die Zahl der aktuell angemeldeten Benutzer<br />

sowie die durchschnittliche Auslastung des Servers. Diese wird durch drei<br />

verschiedene Werte repräsentiert. Der erste davon zeigt die aktuelle Auslastung,<br />

der zweite die durchschnittliche Last während der letzten fünf Minuten<br />

und der letzte schließlich den Durchschnitt der letzten Stunde. Alle drei<br />

Werte sollten im Idealfall deutlich unter 1.00 liegen. Werte größer als 1 signalisieren,<br />

dass der Server unter zu hoher Last arbeitet, Werte größer als 5<br />

zeigen an, dass etwas definitiv nicht in Ordnung ist.<br />

Kurzfristige Lastspitzen sind normal Sollten Sie beim Aufruf<br />

von Top erhöhte Werte für die durchschnittliche Last der letzten Minuten oder<br />

Stunde sehen, ist das nicht gleich ein Grund zur Besorgnis. Arbeitsintensive Aufgaben<br />

wie beispielsweise die Auswertung von Protokolldateien kann dazu führen,<br />

dass die Last kurzfristig ansteigt. Nach Abschluss der Arbeiten sinkt die Last aber<br />

wieder auf einen normalen Pegel ab. Erst wenn die Last dauerhaft zu hoch ist,<br />

sollten Sie die Suche nach dem Übertäter beginnen.


150 Kapitel 5<br />

In der zweiten Zeile sehen Sie eine Zusammenfassung der aktuell laufenden<br />

Prozesse, Tasks genannt. Zuerst ist hier deren Gesamtzahl aufgeführt,<br />

gefolgt von der Zahl der aktiven Prozesse. Es folgen die momentan<br />

schlafenden und die angehaltenen Tasks. Am Ende der Zeile sehen Sie<br />

eine Angabe über so genannte Zombies. Sollte hier etwas anderes als eine<br />

Null stehen, heißt das, dass ein Prozess keine Rückmeldungen mehr an<br />

das System liefert, also wahrscheinlich abgestürzt ist.<br />

Die dritte Zeile gibt Aufschluss über die aktuelle Auslastung der CPU Ihres<br />

HighEnd-Servers. Hier sehen Sie, wie viel Prozent der CPU-Kapazität von<br />

Prozessen belegt wird, die vom Anwender oder dem System gestartet wurden.<br />

Der Prozentsatz bei der mit „nice“ beschrifteten Angabe informiert<br />

darüber, wie viel Leistung vom System zurück- oder hochgestufte Prozesse<br />

in Anspruch nehmen. Der Idle-Wert schließlich besagt, wie viel Leistung<br />

der CPU noch für weitere Prozesse zur Verfügung steht.<br />

Informationen über die Nutzung des dem System zur Verfügung stehenden<br />

Speichers können Sie den nächsten beiden Zeilen entnehmen. Die<br />

erste davon enthält die relevanten Daten für den im Rechner verbauten<br />

Hauptspeicher. Der Reihenfolge nach werden Ihnen gesamter Hauptspeicher,<br />

die davon genutzte Menge, der noch verbleibende Speicher sowie<br />

der für Puffer verwendete Bereich angezeigt. Die andere Zeile informiert<br />

über die Nutzung des Auslagerungsbereichs auf der Festplatte und gibt<br />

weitere Details über die Hauptspeichernutzung an. Die ersten drei Werte<br />

enthalten Gesamtgröße des Swap-Bereichs, Menge der ausgelagerten<br />

Daten und noch verfügbarer Speicherplatz. Der letzte Wert hingegen<br />

bezieht sich wieder auf den Hauptspeicher und zeigt an, wie viele Daten<br />

Linux in seinem internen Cache vorhält.<br />

Die Prozess-Übersicht<br />

Unter dem Kopfteil sehen Sie eine Prozessliste, die sich laufend ändert.<br />

Alle drei Sekunden ermittelt top die neue Rangfolge. Standardmäßig sortiert<br />

es die Liste dabei nach der von den Tasks verbrauchten CPU-Zeit.<br />

Über Tastaturkommandos haben Sie die Möglichkeit, die Menge der<br />

angezeigten Informationen zu beeinflussen sowie das zur Sortierung herangezogene<br />

Kriterium zu ändern.<br />

Die Prozessliste ist in mehrere Spalten aufgeteilt. In der ersten Spalte<br />

sehen Sie die Prozess-ID des jeweiligen Tasks. Die zweite Spalte gibt Aufschluss<br />

über den Besitzer, also auch über die Rechte, mit denen ein Prozess<br />

ausgestattet ist. Die dritte und vierte Spalte zeigen die Priorität eines<br />

Prozesses sowie dessen Nice-Status. Beide Werte können im Bereich von<br />

-20 bis +20 liegen, wobei nur das negative Vorzeichen angezeigt wird. Je<br />

niedriger der Wert, desto höher ist die Priorität des Tasks. Die mit VIRT,<br />

RES und SHR betitelten Spalten liefern verschiedene Informationen über


Die Befehle der Kommandozeile 151<br />

den Speicherverbrauch des Tasks. Unter VIRT finden Sie die Menge des<br />

virtuellen Speichers, den ein Prozess für sich reserviert hat. Der Wert<br />

unter RES gibt an, wie viel davon tatsächlich vom Prozess belegt wird.<br />

Unter SHR zeigt top an, wie groß der Speicher ist, den sich ein Prozess<br />

mit anderen Anwendungen teilt. Die Angaben unter %CPU und %MEM<br />

spiegeln den Anteil an den jeweils verfügbaren Gesamtmengen wider, die<br />

der jeweilige Prozess belegt. Die Spalte TIME nennt nicht etwa die Zeit,<br />

seit der ein Prozess schon läuft. Vielmehr ist hier die bislang vom Task<br />

verbrauchte CPU-Zeit aufgeführt. Unter COMMAND schließlich sehen<br />

Sie, welchem Programm Sie die einzelnen Werte zuordnen dürfen.<br />

5.29 Das Hilfsprogramm top kann die laufenden Prozesse auch nach der von ihnen<br />

belegten Speichermenge sortieren.<br />

Um die Auswertung zu erleichtern, bietet top einige Tastaturkommandos,<br />

mit deren Hilfe sich die Sortierung sowie die Detailtiefe der Anzeige<br />

beeinflussen lässt. Wollen Sie beispielsweise die Prozesse mit dem größten<br />

Verbrauch an Hauptspeicher sehen, drücken Sie die Taste [ª]+[M].<br />

Möchten Sie statt des Tasks die komplette Kommandozeile sehen, die zu<br />

seinem Aufruf geführt hat, drücken Sie [C]. Zum Beenden von top drücken<br />

Sie [Q].


152 Kapitel 5<br />

Prozessanzeige auf Tasks eines Users beschränken<br />

Vermuten Sie, dass eine hohe Last auf dem Server durch Tasks verursacht<br />

wird, die unter einem bestimmten Benutzerkonto laufen, können<br />

Sie top auf die Anzeige dieser Prozesse beschränken. Dazu übergeben Sie<br />

dem Hilfsprogramm die Option –u, gefolgt vom Namen des gewünschten<br />

Benutzerkontos. Um beispielsweise alle Tasks des vom Web-Server Apache<br />

verwendeten Benutzerkontos wwwrun anzeigen zu lassen, verwenden<br />

Sie folgenden Befehl:<br />

top –u wwwrun<br />

5.30 Auch die Beschränkung der Ausgabe auf die Prozesse eines einzelnen Nutzers<br />

ist möglich.<br />

ps: Laufende Prozesse anzeigen<br />

Grundform: ps [Optionen]<br />

Spezielle Optionen:<br />

a gibt den Status aller laufenden Prozesse aus<br />

x gibt auch den Status der Prozesse aus, die nicht von<br />

einer Kommandozeile aus gestartet wurden<br />

w gibt mehr Informationen zu den einzelnen Tasks aus<br />

Eine ähnliche Funktion wie top erfüllt das Hilfsprogramm ps, das der<br />

Anzeige des Prozess-Status dient. Im Gegensatz zu top liefert es jedoch<br />

keine ständig aktualisierte Ansicht, sondern gibt eine Liste der aktuell laufenden<br />

Tasks aus und beendet sich dann wieder.


Die Befehle der Kommandozeile 153<br />

Ohne jegliche Optionen aufgerufen zeigt ps eine Liste der vom aktuellen<br />

Anwender über seine Kommandozeilensitzung kontrollierten Prozesse<br />

an. Über den Parameter a, der im Gegensatz zu den meisten anderen<br />

Linux-Hilfsprogrammen nicht durch ein vorangestelltes Minuszeichen<br />

eingeleitet wird, erhalten Sie eine Übersicht aller Tasks, die von einer<br />

beliebigen Kommandozeile aus gestartet wurden. Mittels ps x gestartet<br />

zeigt das Utility auch die Prozesse an, die bereits während des Systemstarts<br />

in Aktion traten. Um noch weitere Informationen über die laufenden<br />

Tasks zu erhalten, verwenden Sie die Option w. Sie bewirkt, dass das<br />

den Task aufrufende Kommando in seiner Langform dargestellt wird.<br />

5.31 Die verschiedenen Optionen des Hilfsprogramms ps wirken sich direkt auf die<br />

ausgegebene Datenmenge aus.


154 Kapitel 5<br />

5.5 Nützliche Helferlein<br />

Auch unter Linux gibt es einige nützliche Hilfsprogramme, die zwar zum<br />

Teil nur selten benötigt werden, die man aber trotzdem kennen sollte.<br />

Einige davon stellt Ihnen dieser Abschnitt des Buchs vor.<br />

which: Speicherort eines Hilfsprogramms ermitteln<br />

Grundform: which [Optionen] Programmname<br />

Spezielle Optionen:<br />

-a zeigt nicht nur das erste gefundene, sondern alle dem<br />

angegebenen Namen entsprechenden Dateien an<br />

Gerade unter Linux kann es passieren, dass der Aufruf eines Programms<br />

nicht zum gewünschten Ergebnis führt. Schuld daran ist oft, dass mehrere<br />

unterschiedliche Versionen einer Anwendung in unterschiedlichen Verzeichnissen<br />

auf dem Rechner installiert sind, sich aber ausgerechnet eine<br />

veraltete im Suchpfad befindet. Außerdem kann es durchaus vorkommen,<br />

dass zwei unterschiedliche Pakete Hilfsprogramme gleichen Namens verwenden,<br />

die aber eine völlig unterschiedliche Funktion haben.<br />

Um festzustellen, welches Programm beim Absetzen eines Befehls auf der<br />

Kommandozeile wirklich aufgerufen wird, dient das Kommando which.<br />

Es durchsucht den Suchpfad des aktuellen Benutzerkontos nach Dateien,<br />

die dem ihm als Parameter übergebenen Namen entsprechen.<br />

Im Normalbetrieb ohne weitere Optionen beendet es die Suche bei der<br />

ersten Fundstelle und gibt die kompletten Pfadinformationen der gefundenen<br />

Datei aus. Wollen Sie, dass which Ihnen alle passenden Dateien<br />

auflistet, verwenden Sie die Option –a.<br />

Gibt which für einen funktionierenden Befehl keine Fundstelle aus, so<br />

handelt es sich bei dem gesuchten Kommando um eine interne Funktion<br />

des Kommandointerpreters.<br />

5.32 Das Utility which ermittelt den kompletten Aufrufpfad eines Hilfsprogramms –<br />

sofern es sich nicht um einen internen Befehl handelt.


Die Befehle der Kommandozeile 155<br />

find: Dateien nach verschiedenen Kriterien suchen<br />

Grundform: find <br />

Nützliche Kriterien:<br />

-name zeigt alle Dateien an, die dem nach –name angegebenen<br />

Suchmuster entsprechen<br />

-iname wie –name, aber ignoriert Groß- und Kleinschreibung<br />

-size zeigt alle Dateien an, deren Größe dem nach –size angegebenen<br />

Kriterium entsprechen<br />

Die Suche nach Dateien ist eine der häufigsten Arbeiten, die man auf dem<br />

HighEnd-Server erledigt. Sei es, dass man eine Konfigurationsdatei für<br />

eine Applikation sucht oder wissen möchte, wo man das Archiv mit dem<br />

dringend benötigten Modul für die Web-Applikation gespeichert hat. Für<br />

die Aufgabe ist das Hilfsprogramm find das passende Werkzeug. Seine<br />

Bedienung ist recht einfach: Als Parameter übergeben Sie find einen Verzeichnispfad,<br />

in dem es seine Suche beginnen soll. Zusätzlich teilen Sie<br />

dem Utility mit, nach welchem Kriterium es die Suche durchführen soll.<br />

Um beispielsweise alle Konfigurationsdateien unterhalb des Verzeichnisses<br />

/etc zu lokalisieren, die mit dem Buchstaben l beginnen, lautet der<br />

Befehl wie folgt:<br />

find /etc –name l*.conf<br />

Sind Sie sich nicht sicher, ob die gesuchte Datei mit einem großen oder<br />

einem kleinen L geschrieben wird, dann verwenden Sie einfach die Suchvariante,<br />

bei der die Schreibweise ignoriert wird:<br />

find /etc –iname l*.conf<br />

Sie können die Platzhalterzeichen Stern und Fragezeichen in der Suchmaske<br />

des Dateinamens beliebig oft verwenden. Beispielsweise liefert die<br />

Maske l*.c* auch die Dateien, die statt mit der Endung .conf mit dem<br />

Namenszusatz .cfg enden.<br />

5.33 Das Utility find ist der ultimative Helfer bei der Suche nach Dateien.


156 Kapitel 5<br />

Doch damit ist das Potenzial von find noch nicht erschöpft. Neben der<br />

Suche anhand von Namensmustern ist es auch in der Lage, Dateien aufzuspüren,<br />

die anderen Kriterien entsprechen. Oft ist es zum Beispiel<br />

schwierig, allein mithilfe von du zu ermitteln, welche Dateien denn nun<br />

genau durch übermäßige Größe wertvollen Speicherplatz auf der Festplatte<br />

des HighEnd-Servers belegen. Mit find finden Sie dies schnell heraus,<br />

indem Sie es nach Dateien suchen lassen, die eine bestimmte Größe<br />

überschreiten:<br />

find /var –size +1000k<br />

So aufgerufen sucht find nach allen Dateien, die mehr als 1000 Kilobyte<br />

Festplattenplatz belegen. Beachten Sie das Pluszeichen vor der Größenangabe.<br />

Fehlt es, sucht find nach allen Dateien, die genau 1000 Kilobyte<br />

belegen. Ein vorangestelltes Minuszeichen bewirkt die Ausgabe aller<br />

Dateien, deren Größe den Vorgabewert unterschreitet.<br />

5.34 Platzverschwendern auf der Spur: find ist auch in der Lage, die Größe einer<br />

Datei als Suchkriterium heranzuziehen.<br />

grep: Zeichenketten in Dateien finden<br />

Grundform: grep [Optionen] [Dateimaske]<br />

Spezielle Optionen:<br />

-i schaltet die Unterscheidung zwischen Groß- und Kleinschreibung<br />

ab<br />

-r aktiviert eine rekursive Suche durch alle Unterverzeichnisse


Die Befehle der Kommandozeile 157<br />

Fast ebenso häufig wie die Suche nach einer Datei, die einem bestimmten<br />

Namensmuster entspricht, ist die Suche nach beliebigen Dateien, die<br />

bestimmte Texte enthalten. Für diese Aufgabe ist das Utility grep der richtige<br />

Helfer. Aufgerufen mit dem zu suchenden Text sowie einer Dateimaske<br />

als Parameter liefert es eine Liste aller Files, die den Suchtext enthalten.<br />

Über die Option –i teilen Sie grep mit, dass es bei seiner Suche nicht zwischen<br />

Groß- und Kleinschreibung unterscheiden soll. Soll nicht nur im<br />

aktuellen Verzeichnis, sondern auch in dessen Unterverzeichnissen<br />

gesucht werden, geben Sie die Option –r an.<br />

Allerdings ist hierbei zu beachten, dass grep bei der rekursiven Suche nur<br />

in solche Directorys wechselt, auf die die angegebene Dateimaske passt.<br />

So führt ein Aufruf von grep –ri "strato" *.conf mit großer Wahrscheinlichkeit<br />

nicht zum gewünschten Ergebnis, da ziemlich sicher keine Verzeichnisse<br />

existieren, die der Maske *.conf entsprechen. In diesem Fall ist der<br />

generelle Aufruf grep –ri "strato" * die sicherere Wahl.<br />

5.35 Die Suche nach Dateien, die eine bestimmte Zeichenfolge enthalten, wird mit<br />

grep zum Kinderspiel.<br />

Lastintensive Suchvorgänge vermeiden Grep ist ein sehr<br />

leistungsfähiges Hilfsprogramm. Daher ist die Versuchung groß, es zu global einzusetzen<br />

– beispielsweise um vom Wurzelvezeichnis aus alle Dateien suchen zu<br />

lassen, die einen bestimmten Text enthalten.<br />

Mit einer derartigen Suche belasten Sie den Server erheblich. Schließlich muss<br />

grep für diese Aktion jede auf dem Server gespeicherte Datei von vorne bis hinten<br />

durchsuchen. Die damit verbundenen Dateioperationen erzeugen eine immense<br />

Last, die sogar zur kurzfristigen Nicht-Erreichbarkeit von Diensten wie Web- oder<br />

FTP-Server führen kann.


158 Kapitel 5<br />

su: Zu anderem Benutzerkonto umschalten<br />

Grundform: su [Optionen] <br />

Spezielle Optionen:<br />

- bewirkt den Aufruf einer Login-Shell als User root<br />

-m übernimmt die Umgebungsvariablen der aktuellen Sitzung<br />

in die neue Shell<br />

Ein wichtiges Kommando für Administratoren ist der Befehl su, eine<br />

Abkürzung für Switch User oder Substitute User. Mit seiner Hilfe können<br />

Sie sich in einer bestehenden Sitzung unter einem anderen Konto anmelden<br />

und mit dessen Rechten arbeiten. Die Arbeitsweise des Befehls unterscheidet<br />

sich je nachdem, ob Sie als normaler Anwender oder als Superuser<br />

root am HighEnd-Server angemeldet sind.<br />

su als Superuser verwenden<br />

Die einfachste Verwendung von su ist es, als Administrator schnell zum<br />

Konto eines normalen Benutzers zu wechseln – etwa um ein Problem mit<br />

dessen Rechten und Einstellungen nachzuvollziehen oder aber, um Konfigurationsdateien<br />

zu erstellen, die später von diesem Benutzerkonto aus<br />

weiter verwaltet werden können. Um sich beispielsweise als Benutzer<br />

test0123 anzumelden, genügt im Superuser-Modus folgender Befehl:<br />

su test0123<br />

Beachten Sie dabei, dass der Befehl su zwar das verwendete Konto, nicht<br />

aber das aktuelle Verzeichnis wechselt. Es kann daher passieren, dass Sie<br />

sich nach der Ausführung in einem Verzeichnis befinden, für das Sie keinerlei<br />

Rechte haben. Wechseln Sie in diesem Fall einfach mittels cd in das<br />

Heimatverzeichnis des Anwenders, unter dessen Konto Sie sich angemeldet<br />

haben.<br />

Eine Sonderform des Kommandos ist der Aufruf mit der Option -m. Sie<br />

bewirkt, dass alle gesetzten Umgebungvariablen in die neue Shell übernommen<br />

werden. Das ist besonders dann hilfreich, wenn Sie eigene Alias-<br />

Definitionen angelegt haben.<br />

su als normaler Anwender benutzen<br />

Auch für normale Benutzerkonten steht der Befehl su zur Verfügung. Der<br />

große Unterschied im Vergleich zum Einsatz als Superuser root besteht<br />

darin, dass in diesem Fall nicht einfach der Wechsel zum angegebenen<br />

Benutzerkonto stattfindet. Zusätzlich wird hier noch das Passwort zum<br />

gewünschten Account abgefragt.


Die Befehle der Kommandozeile 159<br />

Ein Sonderfall ist das Kommando su -. Auf diese Weise aufgerufen versucht<br />

su, Sie als Superuser root anzumelden. Das ist praktisch, wenn Sie<br />

dem Konto root aus Sicherheitsgründen keinen SSH-Zugriff auf den Server<br />

geben wollen. Sie melden sich dann einfach als normaler Benutzer an<br />

und wechseln anschließend in den Superuser-Modus.<br />

man: Hilfe zu Befehlen und Konfigurationsdateien<br />

Grundform: man [Sektion] <br />

Spezielle Optionen:<br />

-f gibt eine Kurzbeschreibung des gesuchten Befehls aus<br />

-k sucht in allen Kurzbeschreibungen nach der angegebenen<br />

Zeichenkette und gibt eine Liste der Fundstellen aus<br />

Bei der Arbeit auf der Kommandozeile Ihres HighEnd-Servers oder bei<br />

der Lektüre weiterführender Literatur werden Sie sicher schnell auf<br />

Linux-Befehle stoßen, die im Rahmen dieses Buchs nicht abgehandelt<br />

werden. Um deren Funktion sowie eventuelle Optionen und Parameter<br />

herauszufinden, bietet sich das Hilfsprogramm man an. Es bietet den<br />

Zugriff auf die zu den meisten Programmen als Textdatei abgelegten<br />

Hilfe-Informationen. Um zum Beispiel die Beschreibung des Befehls ls<br />

abzurufen, geben Sie einfach folgendes Kommando ein:<br />

man ls<br />

Wollen Sie nur eine kurze Beschreibung der Funktion eines Programms<br />

und nicht die komplette Bedienungsanleitung, benutzen Sie einfach die<br />

Option –f. Sie gibt zum gesuchten Befehl lediglich den Kurztext aus der<br />

Überschirft der Bedienungsanleitung aus.<br />

Interessiert es Sie, in welchen Beschreibungen zu Hilfsprogrammen ein<br />

bestimmter Suchbegriff vorkommt, hilft die Option –k weiter. Wollen Sie<br />

sich eine Liste aller Programmbeschreibungen ausgeben lassen, in denen<br />

zum Beispiel der Begriff unzip vorkommt, dann geben Sie einfach man –<br />

k unzip auf der Kommandozeile ein.<br />

5.6 Wichtige Hilfsprogramme<br />

Ohne Programme zur einfachen Navigation im Dateisystem oder zum<br />

Editieren von Dateien kommt kein Anwender aus. Das folgende Kapitel<br />

stellt einige Programme vor, die Ihnen die Arbeit auf der Kommandozeile<br />

erleichtern.


160 Kapitel 5<br />

vi: Der Texteditor<br />

Grundform: vi <br />

Wichtige Tastaturkommandos:<br />

[Esc] wechselt vom Editier- zurück in den Kommandomodus<br />

1 stellt im Kommandomodus die Schreibmarke auf den Zeilenanfang<br />

$ stellt im Kommandomodus die Schreibmarke auf das Zeilenende<br />

dd löscht die aktuelle Zeile<br />

gg bewegt die Schreibmarke an den Anfang der Datei<br />

G bewegt die Schreibmarke ans Ende der Datei<br />

i wechselt vom Kommando- in den Eingabemodus<br />

a wechselt vom Kommando- in den Anfügemodus<br />

r das aktuell unter der Schreibmarke befindliche Zeichen<br />

wird durch die nächste gedrückte Taste ersetzt<br />

R wechselt vom Kommando- in den Überschreiben-Modus<br />

X löscht das aktuell unter der Schreibmarke befindliche<br />

Zeichen<br />

: öffnet die Kommandozeile von vi zur Eingabe von Suchbefehlen<br />

:w schreibt die aktuelle Version der Datei auf die Platte<br />

:q! beendet vi, ohne eventuelle Änderungen zu speichern<br />

:x speichert die Änderungen und beendet v:<br />

Sicher, Textdateien lassen sich auch per FTP oder SCP auf den lokalen<br />

Rechner übertragen, dort bearbeiten und anschließend wieder zum High-<br />

End-Server senden. Doch vor allem für kleinere Änderungen, beispielsweise<br />

an einer Konfigurationsdatei, lohnt dieser Aufwand nicht.<br />

Auf dem HighEnd-Server ist bereits der Texteditor vi installiert. Bei ihm<br />

handelt es sich um ein sehr leistungsfähiges Werkzeug, das jedoch besonders<br />

Einsteiger fordert. Seine Bedienung orientiert sich nämlich nicht an<br />

einem der unter Windows verfügbaren Editoren, sondern fußt vielmehr<br />

auf einer Mischung aus Tastaturkommandos und regulären Ausdrücken.<br />

Aber keine Sorge, schon nach kurzer Eingewöhnungsphase lässt sich mit<br />

vi hervorragend arbeiten.<br />

Für einen ersten Test empfiehlt es sich, mit einer Datei zu arbeiten, die<br />

gefahrlos geändert werden kann. Das ist kein Problem, da vi eine als Parameter<br />

übergebene Datei selbstständig anlegt, sollte sie noch nicht vorhanden<br />

sein. Damit gleich etwas Text für Übungen vorhanden ist, können<br />

Sie aber auch eine bestehende Datei kopieren und diese verwenden. Für<br />

die nachfolgenden Beispiele verwenden wir eine Kopie der Datei /etc/php.


Die Befehle der Kommandozeile 161<br />

ini, die wir als test.txt ins aktuelle Verzeichnis kopieren und anschließend<br />

mit vi öffnen:<br />

cp /etc/php.ini test.txt<br />

vi test.txt<br />

Erster Kontakt mit vi<br />

Sie sehen nun – ähnlich der Anzeige von less – den Beginn der Datei,<br />

sowie in der letzten Zeile der Anzeige den Namen des aktuellen Dokuments<br />

und zwei Zahlen. Diese geben die Anzahl der Zeilen und die<br />

Menge der Zeichen im aktuellen Dokument an. Die Schreibmarke befindet<br />

sich in der linken oberen Ecke der Anzeige.<br />

5.36 Wolf im Schafspelz: Beim ersten Kontakt sieht der Textedit vi recht harmlos<br />

aus.<br />

Um die Schreibmarke zu bewegen, können Sie wie gewohnt die Cursor-<br />

Tasten Ihrer Tastatur verwenden. Blättern nach oben und unten ist kein<br />

Problem: Erreicht die Schreibmarke die vorletzte Anzeigezeile, scrollt der<br />

Text automatisch nach oben. Ungewöhnlich wird das Verhalten von vi<br />

allerdings, sobald Sie die Schreibmarke in einer Zeile bewegen. Beim<br />

Erreichen des Zeilenendes springt der Cursor nicht automatisch in die<br />

nächste Zeile, sondern verharrt auf dem letzten Zeichen.<br />

Zur schnellen Navigation innerhalb einer Datei bietet vi zwei Sprungbefehle,<br />

die die Schreibmarke an den Dateianfang oder das Dateiende<br />

positionieren. Drücken Sie [ª]+[G], gelangen Sie an das Ende des Texts.<br />

An den Beginn der Datei springen Sie durch zweimaliges Drücken der<br />

Taste [G].


162 Kapitel 5<br />

5.37 Nichts geht mehr: Bei vi bleibt der Cursor am Ende der Zeile „hängen“ und<br />

springt nicht automatisch in die nächste Zeile.<br />

Gehen Sie nun daran, Änderungen am Text vorzunehmen. Um eine<br />

beliebige Zeile zu löschen, drücken Sie einfach zweimal auf die Taste [D].<br />

Um ein einzelnes Zeichen zu löschen, betätigen Sie eine der Tasten [X]<br />

und [Entf]. Eine raffinierte Funktion ist das Überschreiben eines einzelnen<br />

Zeichens. Dazu positionieren Sie die Schreibmarke auf dem zu<br />

ändernden Zeichen und drücken dann [R]. Drücken Sie anschließend<br />

eine beliebige Taste und das Zeichen unter der Schreibmarke wird<br />

ersetzt. Wollen Sie längere Texte überschreiben, drücken Sie [ª]+[R].<br />

Damit gelangen Sie in den Überschreiben-Modus und können beliebige<br />

Texte eintippen, die den vorhandenen Text überschreiben. Um den<br />

Überschreiben-Modus zu verlassen, drücken sie die Taste [Esc].<br />

Ähnlich leicht ist der Aufruf des Einfüge-Modus. Hierzu drücken Sie einfach<br />

die Taste [I]. Die Zeichen, die Sie ab diesem Moment tippen, werden<br />

an der aktuellen Position der Schreibmarke in die Datei eingefügt.<br />

Das Verlassen des Einfüge-Modus geschieht wie beim Überschreiben<br />

mithilfe der Taste [Esc].<br />

Speichern oder Abbrechen<br />

Um die an der Datei vorgenommenen Änderungen zu speichern, müssen<br />

Sie sich zuerst im per [Esc] erreichbaren Kommandomodus befinden.<br />

Jetzt können Sie mithilfe des Doppelpunkts eine Befehlszeile abrufen, in<br />

der Ihnen einige Kurzkommandos zur Verfügung stehen.<br />

Durch die Eingabe von :q verlassen Sie die Datei – allerdings nur, wenn<br />

Sie bislang keine Änderungen vorgenommen haben. Anderenfalls warnt<br />

vi, dass seit dem letzten Schreibvorgang noch Änderungen vorgenommen<br />

wurden, und kehrt in den Kommandomodus zurück.


Die Befehle der Kommandozeile 163<br />

Wollen Sie die Änderungen nicht übernehmen, hilft das Kommando :q!<br />

weiter. Es bewirkt, dass vi die noch anstehenden Änderungen verwirft<br />

und sich beendet, ohne die Datei nochmals zu schreiben.<br />

Sollen die Änderungen hingegen übernommen werden, dann geben Sie<br />

das Kommando :w ein. Es bewirkt ein Schreiben des Pufferinhalts von vi<br />

auf die Festplatte.<br />

Wenn Sie die Änderungen nicht nur speichern, sondern den Editor<br />

anschließend auch gleich verlassen wollen, können Sie die Kommandos<br />

:w und :q nacheinander verwenden. Schneller geht es aber mit dem Befehl<br />

:x, der beide Aktionen automatisch durchführt.<br />

5.38 Sind noch Änderungen zu speichern, verweigert vi den einfachen Ausstieg.<br />

Suchen und Ersetzen<br />

Eine der am häufigsten genutzten Funktionen von Texteditoren ist das<br />

Suchen und Ersetzen von Wörtern oder ganzen Passagen. Auch vi hat<br />

entsprechende Funktionen. Diese sind allerdings nicht ganz so einfach zu<br />

benutzen, wie Sie das möglicherweise gewöhnt sind.<br />

Um die Suche nach einer Zeichenkette durchzuführen, müssen Sie bei vi<br />

eine ähnliche Syntax nutzen, wie Sie sie bereits bei less kennen gelernt<br />

haben. Zuerst wechseln Sie mithilfe des Doppelpunkts in den Kommandomodus<br />

und geben dort einen Vorwärts-Schrägstrich (Slash) ein, gefolgt<br />

vom zu suchenden Text.<br />

Die Suche erfolgt nun ab der Position, an der sich die Schreibmarke im<br />

Text befand, als die Suchfunktion aufgerufen wurde. Findet vi ein Vorkommen<br />

des Suchtexts, wird die Schreibmarke auf dem ersten Zeichen<br />

der Fundstelle positioniert.


164 Kapitel 5<br />

5.39 Gefunden: Die Schreibmarke wird auf dem ersten Zeichen des Suchtexts positioniert.<br />

Um zur nächsten Fundstelle zu gelangen, drücken Sie wie bei less die<br />

Taste [N]. Zur vorhergehenden Fundstelle gelangen Sie über die Tastenkombination<br />

[ª]+[N] zurück.<br />

Etwas komplizierter als Suchvorgänge gestaltet sich das Ersetzen von Zeichenketten.<br />

Der dazu notwendige Befehl wird durch das Kurzkommando<br />

s eingeleitet, gefolgt von Such- und Ersetzungstext, die mithilfe von Slashes<br />

getrennt werden. Um beispielsweise in der die Zeichenkette PHP durch<br />

Perl zu ersetzen, dient folgendes Kommando:<br />

:s/PHP/PHO/<br />

In dieser Form nützt das allerdings noch nicht viel, da dieses Kommando<br />

die Ersetzung lediglich für das erste Auftreten der Zeichenkette PHP in<br />

der Zeile vornimmt, in der sich die Schreibmarke gerade befindet, aber<br />

keineswegs für alle Fundstellen. Noch nicht einmal ein mehrfaches Auftreten<br />

des Suchbegriffs in der Zeile wird berücksichtigt. Um die Ersetzung<br />

im gesamten Text durchzuführen, muss der Befehl wie folgt lauten:<br />

:1,$:s/PHP/PHO/g<br />

Dieses Kommando heißt für vi in etwa: Vom Anfang bis zum Ende der<br />

Datei (1,$:) ist eine Suche durchzuführen (s), wobei das Wort PHP durch<br />

PHO zu ersetzen ist (/PHP/PHO/), auch wenn es mehrfach in einer Zeile<br />

auftritt (g).


Die Befehle der Kommandozeile 165<br />

5.40 Nicht einfach, aber machbar: Suchen und Ersetzen von Zeichenketten mit vi.<br />

mc: Der Norton-Commander-Clone<br />

Grundform: mc<br />

Wichtige Tasten:<br />

[ÿ] wechselt das aktive Verzeichnisfenster<br />

[F3] öffnet den Dateibetrachter<br />

[F4] startet den Texteditor<br />

[F5] kopiert die aktuell markierte Datei<br />

[F6] verschiebt die aktuell markierte Datei<br />

[F7] legt ein Verzeichnis an<br />

[F8] löscht eine Datei oder ein Verzeichnis<br />

[F10] beendet den Midnight Commander<br />

Zu Zeiten von MS-DOS war der Norton Commander eines der beliebtesten<br />

Werkzeuge, da er nicht nur das einfache Navigieren zwischen Verzeichnissen<br />

erlaubte, sondern auch die wichtigsten Funktionen zur Arbeit<br />

mit Dateien und Verzeichnissen integriert waren.<br />

Sein Nachfolger unter Linux ist der Midnight Commander, kurz mc. Er<br />

bietet dieselben Funktionen wie sein DOS-Pendant. Das wichtigste seiner<br />

Features ist die gleichzeitige Anzeige zweier Verzeichnisse. Zwischen<br />

diesen lassen sich Dateien mit wenigen Tastendrücken kopieren und verschieben.<br />

Darüber hinaus bietet der Midnight Commander einen inte-


166 Kapitel 5<br />

grierten Textdateibetrachter sowie einen Texteditor. Selbst das Anlegen<br />

von Verzeichnissen und das Löschen von Files und Directorys lässt sich<br />

mit seiner Hilfe komfortabel erledigen.<br />

5.41 Komfortabel durch das Dateisystem von Linux: Der Midnight Commander<br />

macht's möglich.<br />

screen: Mehrere Befehlszeilen in einer Sitzung verwalten<br />

Grundform: screen [Optionen]<br />

Wichtige Optionen:<br />

-S erzeugt einen virtuellen Arbeitsbereich mit dem Namen<br />

<br />

-r ruft den virtuellen Arbeitsbereich mit dem Namen <br />

auf<br />

-d erzwingt eine Freigabe eines durch einen anderen Anwender<br />

oder einen toten Task belegten Arbeitsbereichs<br />

-d –m startet den Arbeitsbereich im Hintergrund, kehrt also<br />

sofort zur aufrufenden Kommandozeile zurück<br />

-list gibt eine Liste der aktiven Arbeitsbereiche des aktuellen<br />

Benutzers aus<br />

Wichtige Tastaturbefehle:<br />

[Strg]+[A]+[D] kehrt auf die Haupt-Kommandozeile zurück<br />

[Strg]+[A]+[K] erzwingt das Beenden des aktuelle Arbeitsbereichs


Die Befehle der Kommandozeile 167<br />

Bei der Arbeit auf der Kommandozeile Ihres HighEnd-Servers werden Sie<br />

schnell feststellen, dass eine SSH-Sitzung oft nicht ausreicht. Allerdings<br />

erhöhen viele geöffnete Fenster auf dem lokalen Desktop nicht gerade die<br />

Übersicht. Abhilfe schafft das Utility screen. Mit seiner Hilfe richten Sie<br />

mehrere virtuelle Arbeitsbereiche auf dem HighEnd-Server ein, die Sie<br />

über eine einzige SSH-Sitzung verwalten.<br />

Der Aufruf ist denkbar einfach: Mit screen –S test richten Sie beispielsweise<br />

einen neuen Arbeitsbereich mit dem Namen test ein. Dabei schaltet<br />

screen gleich in den neuen Arbeitsbereich um. Hier können Sie wie auf<br />

einer normalen Kommandozeile arbeiten. Um wieder zur Hauptsitzung<br />

zurückzukehren, drücken Sie die Tastenkombination [Strg]+[A] und<br />

anschließend die Taste [D].<br />

Um den Arbeitsbereich anzulegen, ihn aber für eine spätere Nutzung<br />

zunächst im Hintergrund zu verstecken, verwenden Sie die leicht abgewandelte<br />

Form screen –S test –d –m. Bei dieser Variante bleiben Sie in der<br />

Hauptsitzung, während der von screen erzeugte Arbeitsbereich im Hintergrund<br />

auf seinen Einsatz wartet.<br />

Eine Liste der aktuell von Ihnen angelegten Arbeitsbereiche erhalten Sie<br />

mit dem Kommando screen –list. Es werden alle Arbeitsbereiche angezeigt,<br />

die von Ihrem Benutzerkonto angelegt wurden. Es ist nicht möglich,<br />

von anderen Benutzern erzeugte Arbeitsbereiche abzurufen.<br />

Einen Arbeitsbereich zu schließen, ist ebenfalls einfach: Rufen Sie den zu<br />

beendenen Arbeitsbereich mittels screen –r auf. Beenden Sie alle im<br />

Arbeitsbereich eventuell laufenden Anwendungen. Über das Kommando<br />

exit verlassen Sie den Arbeitsbereich und schließen ihn gleichzeitig. Sollte<br />

diese Variante einmal nicht funktionieren, können Sie einen Arbeitsbereich<br />

auch zwangsweise beenden. Auch dazu wechseln Sie zuerst zum<br />

betroffenen Arbeitsbereich und drücken dort die Tastenkombination<br />

[Strg]+[A], gefolgt von der Taste [K].


168 Kapitel 5<br />

5.42 Mit virtuellen Arbeitsflächen lassen sich viele Aufgaben erledigen, ohne dass<br />

mehrere SSH-Verbindungen zum HighEnd-Server nötig sind.<br />

wget: Dateitransfer auf der Kommandozeile<br />

Grundform: wget [Optionen] <br />

Spezielle Optionen:<br />

--referer=url erlaubt die Angabe eines Referrers für Seiten, die eigentlich<br />

keine direkten Downloads erlauben<br />

Gerade zur Installation von Web-Log, Content Management System<br />

oder anderer zum Ablauf auf dem HighEnd-Server bestimmter Software<br />

ist es unerlässlich, diese zunächst auf den Server zu übertragen. Dazu<br />

kann man entweder den Umweg über den heimischen Rechner nehmen<br />

oder aber den Download gleich direkt auf dem Server durchführen. Das<br />

Werkzeug dazu ist bereits installiert und hört auf den Namen wget.<br />

Mit wget lassen sich sowohl Downloads von Web-Servern per HTTP wie<br />

auch der Zugriff auf per FTP erreichbare Files durchführen. Dazu ist<br />

lediglich die jeweilige URL der gewünschten Datei als Parameter anzugeben.<br />

Dies funktioniert auch für Download-Umleiter, die nicht direkt auf<br />

eine Datei verweisen, sondern beispielsweise eine zwischengeschaltete<br />

PHP-Datei verwenden.<br />

Dabei müssen Sie allerdings darauf achten, alle Sonderzeichen wie das so<br />

genannte Kaufmanns-Und („&“) durch einen vorangestellten Backslash<br />

(„\“) für Linux aufzubereiten. Normalerweise interpretiert Linux dieses<br />

Zeichen nämlich als Anweisung, das vorangehende Kommando im Hintergrund<br />

auszuführen.


Die Befehle der Kommandozeile 169<br />

5.43 Mit wget übertragen Sie Dateien direkt von Web- oder FTP-Servern auf Ihren<br />

HighEnd-Server.<br />

Ein Sonderfall sind Web-Angebote, die einen Download nur dann gestatten,<br />

wenn dieser über einen Besuch der zugehörigen Web-Seite erfolgt.<br />

Um dies zu umgehen, bietet wget die Option --referer an, über die Sie den<br />

Namen der betreffenden Web-Seite als Referrer übergeben können.<br />

5.7 Archive entpacken und selbst erstellen<br />

Auch unter Linux sind Archive das Mittel der Wahl, wenn es darum geht,<br />

große Datenmengen kompakt zu sichern oder zu übertragen. Genau wie<br />

unter Windows existieren unter Linux mehrere Archiv-Formate und<br />

selbst für die für Windows-Anwender gewohnten Archiv-Typen Zip und<br />

Rar gibt es zumindest Entpack-Programme. Wie Sie diese und das Standard-Archivprogramm<br />

tar einsetzen, erfahren Sie in diesem Abschnitt des<br />

Buchs.<br />

tar: Das Universal-Archivprogramm<br />

Grundform: tar [Optionen] [Quelldaten]<br />

Wichtige Optionen:<br />

c gibt an, dass ein Archiv erstellt werden soll<br />

x gibt an, dass ein Archiv zu entpacken ist<br />

f gibt die Datei an, auf die eine gewünschte Operation<br />

angewendet werden soll<br />

j gibt an, dass das Archiv mit dem bzip2-Verfahren geoder<br />

entpackt werden soll<br />

z gibt an, dass das Verfahren mit dem gzip-Verfahren geoder<br />

entpackt werden soll<br />

v aktiviert die Ausgabe von Detailinformationen


170 Kapitel 5<br />

Das Standardprogramm zum Erstellen von Archiven unter Linux ist tar.<br />

Sein Name leitet sich ab von „Tape Archive“ und wie dieser schon vermuten<br />

lässt, war der ursprüngliche Einsatzzweck von tar die Sicherung<br />

von Daten auf Magnetbändern. Eine der Besonderheiten von tar ist, dass<br />

es selbst keinerlei Komprimierung der Ausgangsdaten durchführt. Es<br />

dient lediglich dazu, eine beliebige Anzahl von Dateien und Verzeichnissen<br />

in einer einzigen, großen Datei zusammenzuführen – oder aus einer<br />

solchen Datei die Ursprungsdaten wiederherzustellen. Moderne Linux-<br />

Distributionen kommen mit einer deutlich verbesserten Version von tar,<br />

die in der Lage ist, die zu archivierenden Daten auch über die unter Linux<br />

verfügbaren Packprogramme zu komprimieren.<br />

Einfache Tar-Archive erstellen<br />

Um erfolgreich ein Archiv mit tar zu erstellen, müssen Sie diesem mindestens<br />

drei Dinge mitteilen. Erstens, dass Sie ein Archiv erstellen wollen. Dies<br />

geschieht über die Option c, eine Abkürzung für „Create“. Zweitens, in welcher<br />

Datei das Archiv abgelegt werden soll. Dazu verwenden Sie die Option<br />

f, gefolgt vom gewünschten Archivnamen – beispielsweise test.tar. Und<br />

schließlich müssen Sie tar noch mitteilen, welche Dateien in dem Archiv<br />

gesichert werden sollen. Dazu geben Sie entweder die einzelnen Dateinamen<br />

oder den Namen eines Verzeichnisses als weitere Parameter an.<br />

Das hört sich komplizierter an als es ist. Um zum Beispiel den Inhalt des<br />

Directorys /var/test/strato in ein Archiv mit dem Namen test.tar zu packen,<br />

geben Sie dieses Kommando ein:<br />

tar cf test.tar /var/test/strato<br />

Beachten Sie, dass in diesem Fall der komplette Pfad mit im Archiv hinterlegt<br />

wird. Wenn Sie das Archiv entpacken, wird also die komplette Verzeichnisstruktur<br />

var/test/strato unterhalb des aktuellen Directorys angelegt.<br />

Wollen Sie, dass nur der letzte Teil des Pfads im Archiv gespeichert<br />

wird, dann wechseln Sie in das Verzeichnis /var/test und lassen das Archiv<br />

an der gewünschten Stelle erzeugen:<br />

tar cf /home/user/test.tar strato/<br />

Auf diese Weise legen Sie das Archiv der im Verzeichnisbaum unterhalb<br />

von strato gespeicherten Daten unter /home/user/test.tar an.<br />

5.44 Ein reines Archiv ohne Komprimierung der Daten ist schnell erzeugt.


Die Befehle der Kommandozeile 171<br />

Wollen Sie etwas mehr Informationen darüber erhalten, was während der<br />

Erzeugung des Archivs vor sich geht, erweitern Sie die Kommandozeile<br />

um die Option v. Dieser so genannte Verbode-Modus zeigt während des<br />

Erstellens des Archivs die einzelnen aufgenommenen Dateien und Verzeichnisse<br />

an:<br />

tar cvf /home/user/test.tar strato/<br />

Achten Sie unbedingt darauf, dass die Option f stets an letzter Stelle der<br />

Optionen stehen muss, da der nachfolgende Parameter als Dateiname des<br />

Zielarchivs interpretiert wird.<br />

Gepackte Archive erstellen<br />

Da die Archivierung von Daten im ungepackten Format recht ineffektiv<br />

ist, bieten neuere Versionen von tar die Möglichkeit, die unter Linux<br />

üblichen Packer gzip und bzip2 zu integrieren. Dies geschieht über die<br />

Optionen z für gzip und j für bzip2. Ein mit gzip gepacktes Archiv erstellen<br />

Sie beispielsweise so:<br />

tar czf /home/user/test.tar.gz strato/<br />

Sie sollten es sich zur Gewohnheit machen, zusätzlich gepackte Archive<br />

mit einer passenden Dateiendung zu versehen. Linux ist zwar nicht auf<br />

diese angewiesen und auch die jeweiligen Anwendungen benötigen zum<br />

Entpacken der Daten die Erweiterung nicht. Es erleichtert aber die Übersicht<br />

und hilft Ihnen, beim Entpacken auf Anhieb die richtigen Optionen<br />

zu verwenden. Bei mit gzip gepackten Archiven sind die Dateinamenserweiterungen<br />

tar.gz oder tgz üblich, für mit bzip2 gepackte Archive wird<br />

in der Regel tar.bz2 verwendet. Ein mit bzip2 gepacktes Archiv erstellen<br />

Sie mit folgendem Kommando:<br />

tar cjf /home/user/test.tar.bz2 strato/<br />

5.45 Deutlich zu sehen: Der Einsatz von Packprogrammen erzeugt kleinere Dateien,<br />

wobei die Resultate von bzip2 besser sind als die von gzip.


172 Kapitel 5<br />

Performance-Fresser bzip2 Rein von der Packdichte her gesehen<br />

leistet bzip2 deutlich bessere Arbeit als das ältere gzip. Allerdings müssen Sie<br />

sich den gesparten Speicherplatz auf der Festplatte mit einem Nachteil erkaufen:<br />

bzip2 ist sehr rechenintensiv und reißt während des Packvorgangs den größten Teil<br />

der verfügbaren CPU-Leistung an sich. Das kann zu Performance-Problemen Ihres<br />

Web-Angebots führen. Angesichts der reichlich bemessenen Kapazität der Festplatten<br />

in den HighEnd-Servern sollten Sie daher lieber gzip den Vorzug geben.<br />

Archive entpacken<br />

Das Entpacken von Archiven, die mit tar erstellt wurden, ist dem Packen<br />

recht ähnlich. Es ist jetzt lediglich statt der Option c die Option x zu verwenden.<br />

Sie müssen auch das zu verwendende Packprogramm angeben,<br />

da tar dieses nicht selbstständig ermittelt.<br />

Um die erstellten Beispieldateien zu entpacken, lauten die Befehle daher:<br />

tar xf /home/user/test.tar<br />

tar xzf /home/user/test.tar.gz<br />

tar xjf /home/user/test.tar.bz2<br />

5.46 Archive sind genau so leicht entpackt, wie sie erstellt wurden.<br />

unzip: Archiv-Brücke in die Windows-Welt<br />

Grundform: unzip [Optionen] <br />

Wichtige Optionen:<br />

-d dir legt das Verzeichnis dir an und entpackt die im Archiv<br />

enthaltenen Daten in dieses Directory<br />

-q unterdrückt die Ausgabe der Liste der entpackten Dateien<br />

auf dem Bildschirm<br />

Gerade die plattformunabhängigen Programmiersprachen wie PHP oder<br />

Perl führen dazu, dass Tools und Module für Web-Angebote nicht nur<br />

unter Linux, sondern auch unter Windows entwickelt werden. Unter Windows<br />

ist Zip das gebräuchlichste Archivformat, weshalb es die meisten<br />

unter diesem Betriebssystem arbeitenden Programmierer verwenden.


Die Befehle der Kommandozeile 173<br />

Ein mit Zip gepacktes Archiv unter Linux zu entpacken ist dank des<br />

Hilfsprogramms unzip kein Problem. Der Aufruf ist denkbar einfach: Sie<br />

geben lediglich den Namen des zu entpackenden Archivs als Parameter<br />

an. Sollen die entpackten Daten nicht im aktuellen Verzeichnis, sondern<br />

an einer anderen Stelle abgelegt werden, übergeben Sie zusätzlich die<br />

Option –d, gefolgt vom gewünschten Zielverzeichnis. Existiert dieses<br />

Directory nicht, legt unzip es automatisch an. Um das Archiv test.zip nach<br />

/home/user/ziptest zu entpacken, verwenden Sie diesen Befehl:<br />

unzip –d /home/user/ziptest test.zip<br />

Während des Entpackens gibt unzip eine Liste der dekomprimierten<br />

Dateien auf dem Bildschirm aus. Dieses Verhalten können Sie ändern,<br />

indem Sie zusätzlich die Option –q an unzip übergeben.<br />

unrar: Entpacker für RAR-Archive<br />

Grundform: unrar [Optionen] <br />

Wichtige Optionen:<br />

e entpackt die im Archiv enthaltenen Daten im aktuellen<br />

Verzeichnis<br />

x entpackt die im Archiv enthaltenen Daten mit dem im<br />

Archiv angegebenen absoluten Pfad<br />

Unter Windows erfreut sich das Packprogramm RAR zunehmender<br />

Beliebtheit, da es kleinere Archive produziert als Zip. Auch mit diesem<br />

Programm erstellte Archive lassen sich unter Linux entpacken. Das dazu<br />

notwendige Utility heißt unrar. Sein Aufruf ist ebenfalls einfach und beinhaltet<br />

zwei Parameter.<br />

Der erste legt fest, ob die im Archiv enthaltenen Daten im aktuellen Verzeichnis<br />

oder unter dem im Archiv gespeicherten absoluten Pfad abgelegt<br />

werden. Für ein Entpacken im aktuellen Verzeichnis übergeben Sie die<br />

Option e an das Utility, anderenfalls ein x. Der zweite zu übergebende<br />

Parameter ist der Name des Archivs, das entpackt werden soll. Um beispielsweise<br />

das im Verzeichnis /home/user abgelegte Archiv test.rar im Verzeichnis<br />

/test zu entpacken, verwenden Sie folgende Kommandos:<br />

cd /test<br />

unrar e /home/user/test.rar<br />

Es kann sein, dass das Entpackprogramm für RAR-Archive noch nicht<br />

auf Ihrem HighEnd-Server installiert ist. In diesem Fall müssen Sie es<br />

zunächst einrichten. Wie Sie dies tun, erfahren Sie in Kapitel 6.


174 Kapitel 5<br />

5.8 Tipps und Tricks für die Kommandozeile<br />

Mit den in diesen Kapiteln erwähnten Befehlen und Programmen sind<br />

Sie für die meisten auf der Kommandozeile zu erledigenden Arbeiten gut<br />

gerüstet. Es gibt aber noch ein paar Drehs und Kniffe, mit denen Sie sich<br />

die Arbeit zusätzlich erleichtern können.<br />

Die Befehlshistorie der Kommandozeile nutzen<br />

Eine Komfortfunktion des Kommandointerpreters von Linux ist es, sich<br />

die vom Anwender eingegebenen Befehle zu merken. Die gespeicherten<br />

Anweisungen lassen sich jederzeit mithilfe der Cursor-Tasten wieder<br />

abrufen. Drücken Sie einfach auf einer leeren Eingabezeile die Tasten<br />

zum Bewegen der Schreibmarke nach oben und unten. Sie blättern durch<br />

die Befehle, die Sie im Lauf Ihrer Sitzung mit dem HighEnd-Server eingegeben<br />

haben. Um einen zuvor benutzten Befehl zu wiederholen, drücken<br />

Sie einfach die Eingabetaste, sobald das gewünschte Kommando<br />

angezeigt wird.<br />

Blättern in Bildschirminhalten<br />

Nicht nur für die auf der Kommandozeile eingegebenen Befehle, auch für<br />

die auf dem Bildschirm ausgegebenen Daten legt Linux einen Puffer an,<br />

in dem Sie blättern können. Dazu dienen die Tastenkombinationen [ª]+<br />

[Bild½] und [ª]+[Bild¼]. Mit Ihrer Hilfe können Sie beispielsweise die<br />

Ausgaben von Befehlen wie unzip oder ps kontrollieren, die normalerweise<br />

deutlich mehr Daten liefern als auf einem Bildschirm Platz haben.<br />

Ausgabeumleitung per Redirect<br />

Eine Alternative zum Blättern im Bildschirmpuffer ist es, die Ausgaben<br />

der jeweiligen Programme direkt in eine Datei umzuleiten und das Ergebnis<br />

anschließend in Ruhe, beispielsweise mit less, zu betrachten. Das dazu<br />

notwendige Befehlsformat ist recht simpel. Geben Sie einfach hinter dem<br />

eigentlichen Programmaufruf das Zeichen >, gefolgt vom Namen der<br />

gewünschten Zieldatei an. Zur Umleitung der Ausgabe von ps in die Datei<br />

/home/user/ps.out lautet der Befehl wie folgt:<br />

ps ax > /home/user/ps.out<br />

Auf ähnliche Weise lassen sich die meisten Programmausgaben in eine<br />

Datei umleiten. Es gibt allerdings Programme, die ihre Ausgaben nicht<br />

über die Standard-Ausgabeleitungen schicken, sondern den Bildschirm<br />

direkt adressieren. In diesem Fall gibt es leider keine Möglichkeit, die<br />

Daten in eine Datei umzuleiten.


Die Befehle der Kommandozeile 175<br />

Ausgabeumleitung per Pipe<br />

Oft will man die Ausgaben eines Programms gar nicht manuell durchforsten,<br />

sondern einem anderen Programm zur weiteren Verarbeitung übergeben.<br />

Auch dies lässt sich realisieren, und zwar mit einer Ausgabeumleitung<br />

in eine so genannte „Pipe“. Die Syntax ähnelt der beim Redirect<br />

beschriebenen mit dem Unterschied, dass statt des Umleitungspfeils nun<br />

das Pipe-Zeichen | zum Einsatz kommt. So lässt sich zum Beispiel die<br />

Ausgabe von ps mithilfe von grep daraufhin überprüfen, ob der Web-Server<br />

noch läuft. Dazu ist zu prüfen, ob in der Ausgabe von ps die Zeichenkette<br />

httpd2 enthalten ist:<br />

ps ax | grep httpd2<br />

Auch mehrfache Umleitungen sind mit Pipes kein Problem. Wollen Sie<br />

zum Beispiel nicht wissen, ob der Web-Server läuft, sondern wie viele seiner<br />

Tasks gerade aktiv ist, hilft folgender Befehl:<br />

ps ax | grep httpd2 | wc –l<br />

Der hier aufgeführte Befehl dient übrigens nur zur Demonstration. Sie<br />

erreichen dasselbe Ergebnis schneller über das Kommando ps ax | grep –<br />

c httpd2.<br />

5.47 Auch mehrfache Ausgabeumleitungen sind mit Pipes kein Problem.


176 Kapitel 6<br />

6 Administration<br />

über die Kommandozeile<br />

Einige Verwaltungsfunktionen wie beispielsweise die Aktualisierung des<br />

Betriebssystems lassen sich nur über die Kommandozeile durchführen.<br />

Dazu stehen Ihnen verschiedene Werkzeuge sowie spezielle Befehle zur<br />

Verfügung. Wie Sie diese effektiv nutzen, erfahren Sie in diesem Kapitel.<br />

6.1 Verwaltung per YAST<br />

Den größten Teil der Verwaltung von SUSE Linux können Sie mithilfe<br />

des Programms Yast erledigen. Der Name steht für „Yet Another Setup<br />

Tool“, was die Funktion recht gut beschreibt. Hier finden Sie die wichtigsten<br />

Optionen zur Konfiguration und Wartung Ihres Systems. Um Yast<br />

effektiv nutzen zu können, müssen Sie als root am HighEnd-Server angemeldet<br />

sein. Der Aufruf von Yast erfolgt durch die Eingabe des Befehls<br />

yast auf der Kommandozeile.<br />

6.1 Das Hauptmenü von Yast zur Verwaltung von Servern mit SUSE Linux.


Administration über die Kommandozeile 177<br />

Online-Update durchführen<br />

Gleich beim ersten Aufruf von Yast sollten Sie einen Online-Update ausführen.<br />

Dazu bewegen Sie die Markierung mithilfe der Cursor-Tasten<br />

zunächst nach rechts in das Auswahlfeld und dort auf den Punkt Online-<br />

Update. Nach der Bestätigung Ihrer Wahl mit [¢] gelangen Sie zu einer<br />

Übersicht, der Sie entnehmen können, von welchem Server die Updates<br />

bezogen werden sollen.<br />

6.2 Mit dieser Einstellung des Update-Servers verursacht der Online-Update<br />

Traffic, der Ihnen berechnet wird.<br />

Kontrollieren Sie, dass hier der von STRATO zur Verfügung gestellte<br />

Update-Server eingestellt ist. Dieser ist am Pfad ftp://ftp.serverkompetenz.<br />

de/pub/linux/suse erkennbar. Nur wenn Sie Ihre Updates von diesem Server<br />

beziehen, stellen Sie sicher, dass der dabei anfallende Traffic nicht auf<br />

Ihr Freivolumen angerechnet wird.<br />

Ist ein anderer Server eingestellt, dann bewegen Sie die Markierung mithilfe<br />

der Taste [ÿ] zur Auswahl Neuer Server und drücken die Taste [¢].<br />

Es erscheint zunächst eine Auswahlmaske, in der Sie als URL-Typ FTP<br />

wählen. Dazu drücken Sie einfach die Tastenkombination [Alt]+[F].<br />

Über die Tastenkombination [Alt]+[O] gelangen Sie anschließend zur<br />

eigentlichen Eingabemaske für die Server-Parameter, in die Sie die Werte<br />

aus dem folgenden Bildschirmfoto eintragen:


178 Kapitel 6<br />

6.3 Mit diesen Einstellungen sprechen Sie den Update-Server von STRATO an.<br />

Nachdem Sie Ihre Angaben mit [Alt]+[O] bestätigt haben, bewegen Sie<br />

die Markierung auf den Punkt [Weiter] und drücken [¢]. Yast holt nun<br />

die Informationen über verfügbare Updates und zeigt Ihnen anschließend<br />

eine Liste der gefundenen Aktualisierungen für Ihren HighEnd-Server<br />

an. Zur Installation ausgewählte Pakete sind mit einem Plus oder einem<br />

Größer-als-Zeichen markiert.<br />

Es genügt, diese Auswahl mit der Tastenkombination [Alt]+[O] zu bestätigen.<br />

Yast beginnt dann sofort damit, die ausgewählten Pakete zu übertragen.<br />

Nach dem Ende des Downloads erfolgt automatisch die Installation<br />

der Aktualisierungen. Während der Ausführung informiert Sie Yast<br />

laufend über den Fortschritt der einzelnen Aktionen. Gelegentlich kann<br />

es vorkommen, dass Ihnen Informationen zu Besonderheiten angezeigt<br />

werden. Diese Hinweise müssen Sie quittieren, da der Update-Vorgang<br />

angehalten wird, so lange die Meldungen angezeigt werden.<br />

Neuer Kernel erfordert Neustart Sogar unter Linux gibt es<br />

Situationen, in denen ein Rechner-Neustart unvermeidlich ist. Wurde während<br />

des Updates ein neuer Kernel eingerichtet, sollten Sie Ihren HighEnd-Server so<br />

schnell wie möglich neu starten. Nur so ist gewährleistet, dass die enthaltenen<br />

aktualisierten Module und Treiber für die Hardware Ihres HighEnd-Servers verwendet<br />

werden.


Administration über die Kommandozeile 179<br />

Einzelne Pakete installieren<br />

Obwohl die HighEnd-Server funktionsfähig vorkonfiguriert geliefert werden,<br />

kann es vorkommen, dass eine von Ihnen eingerichtete Software weitere<br />

Pakete benötigt. Diese installieren Sie über den Punkt Software installieren<br />

oder löschen. Es erscheint eine Übersicht der verfügbaren Pakete.<br />

Bereits auf Ihrem HighEnd-Server vorhandene Programme sind dabei<br />

mit einem „i“ gekennzeichnet. Um Software zur Installation auszuwählen,<br />

drücken Sie [Alt]+[F], gefolgt von [Alt]+[S]. Sie gelangen zur Suchfunktion<br />

von Yast. Hier tragen Sie den Suchbegriff ein, zum Beispiel usb,<br />

um nach allen Paketen zu suchen, die mit dem Thema USB zu tun haben.<br />

6.4 Über die Suchfunktion lassen sich Zusatzpakete schnell finden.<br />

Nach dem Absenden per [¢] zeigt Yast alle zum Suchbegriff passenden<br />

Pakete an. In der angezeigten Liste können Sie die Markierung mit den<br />

Tasten zur Cursor-Steuerung bewegen, mithilfe der Leertaste den Status<br />

der einzelnen Pakete ändern. Ein Plus signalisiert, dass ein Paket zur<br />

Installation ausgewählt wurde.<br />

Haben Sie alle gewünschten Pakete gewählt, starten Sie deren Installation<br />

über die Tastenkombination [Alt]+[B]. Dieser Vorgang läuft in den meisten<br />

Fällen automatisch ab und Sie gelangen wieder zum Hauptmenü von<br />

Yast.<br />

Gelegentlich kann es vorkommen, dass ein gewähltes Paket die Installation<br />

weiterer Pakete erfordert. In diesem Fall blendet Yast einen Hinweis<br />

ein, der die zusätzlich benötigten Pakete anzeigt. Da diese von Yast auto-


180 Kapitel 6<br />

matisch zur Installation markiert wurden, können Sie die Meldung einfach<br />

mittels [Alt]+[O] quittieren. Das Einrichten der einzelnen Pakete<br />

erfolgt dann automatisch.<br />

Online-Update nach jeder Installation Eine Eigenheit von<br />

SUSE Linux ist es, dass während einer nachträglichen Installation nicht die aktuellste<br />

Version eines Pakets eingerichtet wird. Stattdessen wird die zum Zeitpunkt<br />

der Installation des Basisbetriebssystems vorhandene Version verwendet. Es ist<br />

daher ratsam, nach jeder Installation neuer Pakete einen Online-Update durchzuführen.<br />

So gewährleisten Sie, dass die Software auf Ihrem HighEnd-Server stets<br />

auf dem aktuellsten Stand ist.<br />

Pakete entfernen<br />

Um Pakete von Ihrem HighEnd-Server zu entfernen – beispielsweise weil<br />

sie wegen eines Software-Wechsels nicht mehr benötigt werden –, gehen<br />

Sie ganz ähnlich vor wie bei der Installation zusätzlicher Pakete. Wählen<br />

Sie zunächst in Yast die Option Software installieren oder löschen. Im nächsten<br />

Schritt stellen Sie über die Tastenkombination [Alt]+[F], gefolgt von<br />

[Alt]+[P] die Anzeige auf die Liste der installierten Pakete um. Um ein<br />

Paket zu entfernen, bewegen Sie die Markierung mit den Tasten zur Cursor-Steuerung<br />

auf das betreffende Paket. Anschließend betätigen Sie die<br />

Leertaste so oft, dass als Statussymbol vor dem Paketnamen ein Minuszeichen<br />

angezeigt wird.<br />

6.5 Das Minuszeichen ist der Indikator dafür, dass ein Paket zu entfernen ist.<br />

Haben Sie alle zu entfernenden Pakete entsprechend markiert, starten Sie<br />

den Löschvorgang über die Tastenkombination [Alt]+[B]. Der Rest der


Administration über die Kommandozeile 181<br />

De-Installation läuft wieder automatisch ab und Sie gelangen zurück in<br />

das Hauptmenü von Yast.<br />

6.2 Die Arbeit mit dem Paketmanager RPM<br />

So komfortabel Yast ist, es gibt auch einen Nachteil: Mit seiner Hilfe lassen<br />

sich nur Pakete einrichten, die SUSE in den Umfang der jeweiligen<br />

Distribution aufgenommen hat. Zwar sind dort schon die meisten und<br />

wichtigsten Programme und Tools enthalten, aber eben nicht alle. Oft<br />

sind zusätzliche Software-Pakete, aber im so genannten RPM-Format<br />

verfügbar. Dabei handelt es sich um ein spezielles Archiv-Format. Sein<br />

großer Vorteil ist, dass beim Entpacken der Archive die einzelnen<br />

Bestandteile gleich an die richtigen Stellen im Dateisystem Ihres High-<br />

End-Servers kopiert werden. Das zur Arbeit mit RPM-Archiven notwendige<br />

Hilfsprogramm heißt rpm.<br />

Bei RPM-Paketen auf die Linux-Distribution achten Da beim<br />

Entpacken von RPM-Paketen die enthaltenen Dateien direkt an ihren Zielort im<br />

Dateisystem kopiert werden, macht es einen großen Unterschied, ob ein RPM-<br />

Archiv für SUSE Linux oder für eine der anderen Distributionen erstellt wurde.<br />

Achten Sie daher darauf, nur RPM-Pakete zu verwenden, die explizit für SUSE<br />

Linux in der von Ihnen verwendeten Version erstellt wurden. Bei anderen Paketen<br />

ist nicht gewährleistet, dass sie einwandfrei funktionieren.<br />

Pakete mit RPM installieren<br />

Um ein vorhandenes RPM-Archiv auf Ihrem HighEnd-Server einzurichten,<br />

verwenden Sie das Kommando rpm -Uvh . Damit erreichen<br />

Sie, dass das RPM-Paket entpackt und die darin enthaltenen<br />

Dateien an die korrekten Stellen im Dateisystem übertragen werden.<br />

Über den Parameter –U teilen Sie rpm mit, dass Sie eventuell vorhandene<br />

ältere Versionen des Pakets durch die neuere Version ersetzen möchten.<br />

In diesem Fall sorgt rpm dafür, dass alle alten Versionen während der<br />

Installation des neuen Archivs entfernt werden. Bereits vorhandene Konfigurationsdateien<br />

der älteren Versionen bleiben bei diesem Vorgang<br />

erhalten.<br />

Der Parameter –v bewirkt, dass rpm während seiner Arbeit detaillierte<br />

Informationen ausgibt. Im Fall eines Fehlers hilft Ihnen das, die Ursache<br />

schnell zu lokalisieren.<br />

Durch Angabe des Parameters –h erreichen Sie, dass rpm zusätzlich einen<br />

Fortschrittsanzeiger in Form eines Balkens ausgibt. Damit sind Sie stets<br />

über den Fortschritt des aktuellen Vorgangs informiert.


182 Kapitel 6<br />

Liste der installierten RPM-Pakete abrufen<br />

Mit rpm können Sie sich auch eine Liste der installierten RPM-Pakete<br />

ausgeben lassen. Das dazu notwendige Kommando lautet rpm –qa. Allerdings<br />

erhalten Sie dann eine sehr lange Liste, die zudem nicht alphabetisch<br />

sortiert ist. Die Suche nach einem bestimmten Paket ist so nicht sonderlich<br />

komfortabel. Abhilfe schaffen Sie durch zwei erweiterte Aufrufe.<br />

Wollen Sie sich eine alphabetisch sortierte Liste der installierten RPM-<br />

Pakete ausgeben lassen, so leiten Sie die Ausgabe von rpm einfach per<br />

Pipe an das Hilfsprogramm sort weiter:<br />

rpm –qa | sort<br />

Auch diese Liste füllt mehrere Bildschirmseiten. Um nach jeder Bildschirmseite<br />

eine Pause der Ausgabe zu erzwingen, können Sie eine weitere<br />

Pipe-Umleitung einsetzen:<br />

rpm –qa | sort | more<br />

Durch die Umleitung zum Hilfsprogramm more stoppt die Anzeige,<br />

sobald eine Bildschirmseite ausgegeben wurde. Die nächste Seite rufen<br />

Sie durch drücken der Leertaste ab.<br />

6.6 Die Hilfsprogramme sort und more machen die Ausgabe der Paketliste übersichtlicher.<br />

Wissen Sie bereits, nach welchem Paket Sie suchen, können Sie die Ausgabe<br />

von rpm –qa weiter eingrenzen, indem Sie einen zusätzlichen Suchfilter<br />

als Parameter angeben. So gibt das folgende Kommando ausschließlich<br />

die Pakete aus, in deren Namen die Zeichenkette „php“ enthalten ist:<br />

rpm –qa "*php*"


Administration über die Kommandozeile 183<br />

RPM-Pakete entfernen<br />

Auch zur De-Installation von RPM-Paketen lässt sich rpm verwenden.<br />

Die dafür zuständige Option ist –e, gefolgt vom Namen des zu löschenden<br />

Pakets. Dabei müssen Sie nicht den gesamten Namen angeben, wie er<br />

von der Paketliste geliefert wird. Es genügt der Basisname des Pakets. Um<br />

zum Beispiel den nur selten benötigten Binär-Rechner bc zu entfernen,<br />

verwenden Sie folgendes Kommando:<br />

rpm –e bc<br />

Bauen andere Pakete auf dem zu löschenden Paket auf, warnt Sie rpm und<br />

verweigert das Entfernen des angegebenen Pakets. In diesem Fall sollten<br />

Sie das Paket besser auf dem System behalten. Grundsätzlich gilt:<br />

Löschen Sie Pakete nur, wenn Sie sich ganz sicher sind, dass sie nicht<br />

mehr benötigt werden.<br />

6.3 Die Arbeit mit APT (Debian)<br />

Unter Debian Linux wird zur Installation von Paketen nicht rpm verwendet,<br />

sondern das Hilfsprogramm apt-get. Es bietet im Vergleich zu rpm<br />

eine deutlich erweiterte Funktionalität. Besonders eine Fähigkeit hat ihm<br />

die Sympathie vieler Administratoren eingebracht: apt-get erkennt bei der<br />

Installation eines Pakets, dass weitere Pakete benötigt werden und richtet<br />

diese automatisch ein.<br />

System-Update mit APT<br />

Mit dem Advanced Package Tool apt-get führen Sie einen System-Update<br />

schnell und problemlos durch. Dazu müssen Sie zuerst mittels apt-get<br />

update eine aktuelle Paketliste von einem der Quell-Server beziehen. Über<br />

apt-get upgrade führen Sie anschließend die eigentliche Aktualisierung<br />

durch.<br />

Dieses Verfahren eignet sich gut dazu, automatisiert angewendet zu werden.<br />

Über einen Cron-Job gesteuert lässt sich so dafür sorgen, dass ihr<br />

HighEnd-Server stets auf dem aktuellen Software-Stand ist.


184 Kapitel 6<br />

6.7 Das Advanced Package Tool apt bei der System-Aktualisierung.<br />

Einzelne Pakete mit APT installieren<br />

Als weitere Funktion erlaubt apt die Installation einzelner Pakete. Dazu<br />

verwenden Sie die Syntax apt-get install . Anders als beim<br />

Verfahren mithilfe von Yast richtet apt stets die aktuellste verfügbare Version<br />

eines Pakets ein. Ein nachträglicher Update des Systems ist daher<br />

nicht erforderlich. Zusätzlich prüft es, ob das angeforderte Paket zusätzlich<br />

weitere Pakete benötigt und richtet diese ebenfalls ein.


Administration über die Kommandozeile 185<br />

6.8 Bei der Installation von Paketen prüft apt vorhandene Abhängigkeiten und richtet<br />

zusätzlich benötigte Pakete auf Wunsch automatisch ein.<br />

Pakete mit APT entfernen<br />

Auch zum Entfernen von Paketen ist apt-get in der Lage. Dazu dient das<br />

Kommando apt-get remove . Genau wie bei der Installation<br />

prüft es auch hier, ob eventuell andere Pakete vom zu löschenden abhängig<br />

sind. Diese lassen sich auf Wunsch gleich mit dem gewählten Paket<br />

vom Rechner entfernen – sofern dabei nicht weitere Abhängigkeitskonflikte<br />

auftreten.<br />

6.9 Auch beim Entfernen von Paketen zeigt sich apt komfortabel und bietet das<br />

Löschen abhängiger Pakete an.<br />

6.4 Benutzerverwaltung<br />

Es gibt Fälle, in denen es sinnvoll oder sogar unumgänglich ist, Benutzerkonten<br />

nicht per ViSAS oder Confixx zu verwalten, sondern direkt auf der<br />

Kommandozeile anzulegen. Ein Beispiel dafür ist etwa das Erzeugen<br />

eines zusätzlichen Benutzerkontos mit Root-Rechten. Aber auch sonst ist<br />

es nützlich zu wissen, mit welchen Hilfsprogrammen sich die Rechte einzelner<br />

Konten einschränken oder erweitern lassen.


186 Kapitel 6<br />

Konten nur in Ausnahmefällen direkt anlegen Auch wenn die<br />

Hilfsprogramme von Linux mächtige Funktionen zur Verwaltung von Benutzerkonten<br />

bieten, sollten Sie dem Management über ViSAS oder Confixx den Vorzug<br />

geben. Beachten Sie, dass über die Kommandozeile angelegte Konten nicht mit<br />

den Verwaltungswerkzeugen ViSAS und Confixx administriert werden können –<br />

der umgekehrte Weg ist aber möglich.<br />

Benutzerverwaltung mit Yast<br />

Yast bietet eine integrierte Oberfläche zur Verwaltung von Benutzerkonten.<br />

Sie erreichen sie über den Menüpunkt Sicherheit und Benutzer, indem<br />

Sie dort den Eintrag Benutzer bearbeiten und anlegen wählen. Sie gelangen<br />

zur Übersicht der Benutzer.<br />

6.10 In der Benutzerliste finden sich Einträge, die nicht von ViSAS stammen.<br />

Neben den bereits in ViSAS angelegten Benutzerkonten sehen Sie hier<br />

weitere Einträge, die Sie nicht verändern sollten. Sie werden für den Mail-<br />

Server und andere interne Dienste benötigt. Um einen neuen Benutzer<br />

anzulegen, drücken Sie die Tastenkombination [Alt]+[H]. In die daraufhin<br />

angezeigte Maske sind zumindest der Benutzername und das zugehörige<br />

Passwort einzutragen, die restlichen Angaben sind optional.


Administration über die Kommandozeile 187<br />

Über die Tastenkombination [Alt]+[D] gelangen Sie zu den erweiterten<br />

Einstellungen des Benutzerkontos. Hier können Sie dem Nutzer sowohl<br />

ein anderes als das standardmäßig eingestellte Heimatverzeichnis zuweisen<br />

wie auch seine Login-Shell ändern. Besonders dem letzten Punkt sollten<br />

Sie Aufmerksamkeit schenken. Ist als Login-Shell /bin/bash eingestellt,<br />

erhält das Konto automatisch das Recht, per SSH auf den Server zuzugreifen.<br />

Soll mit dem Konto nur ein Zugriff per FTP möglich sein, stellen<br />

Sie die Login-Shell auf /bin/false um.<br />

6.11 Mit /bin/false als Login-Shell ist mit einem Benutzerkonto nur ein FTP-Zugriff<br />

auf den HighEnd-Server möglich.<br />

Um ein per Yast erstelltes Benutzerkonto wieder zu löschen, bewegen Sie<br />

in der Übersicht die Markierung mit Hilfe der Tasten zur Cursor-Steuerung<br />

auf den jeweiligen Eintrag und drücken anschließend die Tastenkombination<br />

[Alt]+[L]. Yast fragt nun nach, ob auch das zum Konto<br />

gehörige Heimat-Verzeichnis entfernt werden soll. Über die Tastenkombination<br />

[Alt]+[J] bestätigen Sie, dass das Konto entfernt werden soll.<br />

Damit sind die Daten aber noch nicht wirklich entfernt. Dies geschieht<br />

erst, wenn Sie die Benutzerverwaltung mithilfe von [Alt]+[B] verlassen.


188 Kapitel 6<br />

6.12 Zusätzlich zum Benutzerkonto können Sie per Yast auch das zugehörige Heimatverzeichnis<br />

und die dort abgelegten Daten löschen.<br />

User anlegen per useradd<br />

Grundform: useradd [Optionen] <br />

Spezielle Optionen:<br />

-d erlaubt es, ein anderes als das Standard-Heimatverzeichnis<br />

für das Konto anzugeben<br />

-m legt automatisch ein Benutzerverzeichnis zum erzeugten<br />

Konto an<br />

-s setzt die Login-Shell für das Konto auf den als <br />

angegebenen Wert<br />

Alle Funktionen, die Ihnen Yast bietet, können Sie mithilfe des Befehls<br />

useradd auch direkt auf der Kommandozeile durchführen. Um wie im<br />

Beispiel für die Benutzerverwaltung per Yast gezeigt das Konto admin mit<br />

der Login-Shell /bin/false zu erzeugen und dabei gleich das Heimatverzeichnis<br />

/home/admin anzulegen, dient folgender Aufruf:<br />

useradd –m –d /home/admin –s /bin/false admin


Administration über die Kommandozeile 189<br />

Benutzerkonto modifizieren mit usermod<br />

Grundform: usermod [Optionen] <br />

Spezielle Optionen:<br />

-d setzt das Heimatverzeichnis für das angegebene Benutzerkonto<br />

auf <br />

-s setzt die Login-Shell für das angegebene Konto auf den<br />

Wert von <br />

Selbstverständlich können Sie die Einstellungen für ein Konto auch nachträglich<br />

ändern. Das Hilfsprogramm für diese Aufgabe heißt usermod. Seine<br />

Parameter sind identisch mit den bei useradd genannten. So lässt sich das<br />

Heimatverzeichnis für das Konto admin auf /home/adminneu und die Login-<br />

Shell auf /bin/bash setzen, indem Sie folgenden Befehl verwenden:<br />

usermod –d /home/adminneu –s /bin/bash admin<br />

Benutzerkonto löschen mit userdel<br />

Grundform: userdel [Optionen] <br />

Spezielle Optionen:<br />

-r löscht auch Heimatverzeichnis und Mails, die zum angegebenen<br />

Konto gehören<br />

-f erzwingt das Löschen von Dateien, selbst wenn diese zu<br />

einem anderen Benutzerkonto gehören<br />

Um ein Konto wieder zu löschen, verwenden Sie den Befehl userdel. Mithilfe<br />

der zusätzlichen Option –r sorgen Sie dafür, dass die zum Konto<br />

gehörenden Mails sowie das Heimatverzeichnis gelöscht werden. Dies gilt<br />

allerdings nur für Dateien, die im Heimatverzeichnis abgelegt sind und<br />

deren Besitzer dem zu löschenden Konto entspricht. Um auch Dateien zu<br />

entfernen, die einem anderen Benutzerkonto zugeordnet sind, geben Sie<br />

zusätzlich den Paramenter –f an. Zur kompletten Löschung des Kontos<br />

admin dient also folgender Befehl:<br />

userdel –rf admin


190 Kapitel 7<br />

7 Den<br />

Server sichern<br />

Bislang ging es hauptsächlich um reine Verwaltungstätigkeiten. Doch<br />

einen Server selbstständig verwalten beinhaltet mehr. Ein wichtiger Teil<br />

der Arbeit ist es, den HighEnd-Server gegen Angriffe zu sichern und die<br />

auf dem Server gespeicherten Daten vor Verlust zu schützen. Diese Themen<br />

behandelt das folgende Kapitel.<br />

7.1 Die SUSE-Firewall<br />

Ein wichtiger Helfer gegen Angriffe auf den Server ist der Einsatz einer<br />

Firewall. Sie sorgt dafür, dass nur zu authorisierten Diensten des Servers<br />

eine Verbindung aufgebaut werden kann und wehrt so den größten Teil<br />

der Attacken ab, die gegen ungesicherte Dienste des HighEnd-Servers<br />

gerichtet sind.<br />

Firewall-Einstellungen per Yast<br />

Unter Linux wird eine Firewall mithilfe des Paketfilters iptables realisiert,<br />

der die ein- und ausgehenden Datenströme untersucht. Er ist in der Lage,<br />

den Datenverkehr zu kanalisieren, zu manipulieren und auch zu unterdrücken.<br />

Dazu verwendet er ein recht komplexes Regelwerk, mit dem Sie<br />

sich aber nicht beschäftigen müssen. Unter SUSE Linux lassen sich die<br />

grundlegenden Einstellungen des Paketfilters über Yast vornehmen.<br />

Dazu wählen Sie im Menü den Punkt Sicherheit und Benutzer und dort<br />

Firewall. Sie gelangen zu einem Menü, in dem Sie zunächst die von der<br />

Firewall zu überwachenden Netzwerkschnittstellen angeben. Wichtig ist<br />

hierbei ausschließlich das als Externe Schnittstelle bezeichnete Interface.<br />

Stellen Sie dort die Vorgabe von keine auf eth0 um. Dazu drücken Sie<br />

zuerst [Alt]+[E] und anschließend die Taste für Cursor-Bewegung nach<br />

unten, um das Auswahlmenü zu öffnen. Wählen Sie dort den Eintrag eth0<br />

und bestätigen Sie Ihre Wahl mit [¢]. Mittels [Alt]+[W] gelangen Sie zu<br />

der Firewall-Maske.


Den Server sichern 191<br />

7.1 Für die korrekte Funktion der Firewall muss als externe Schnittstelle das Netzwerk-Interface<br />

eth0 angegeben werden.<br />

Hier müssen Sie die Protokolle angeben, die zu Diensten gehören, die aus<br />

dem Internet heraus erreichbar sein sollen. Die wichtigsten sind bereits<br />

vorgegeben und lassen sich durch einfaches „Ankreuzen“ mithilfe der<br />

Leertaste aktivieren. Im Einzelnen sind dies:<br />

� HTTP: Dieser Dienst muss aktiviert sein, um einen Web-Server auf<br />

Ihrem HighEnd-Server betreiben zu können.<br />

� HTTPS: Diesen Dienst müssen Sie freigeben, wenn Sie zusätzlich zu<br />

einem normalen Web-Server auch einen über gesicherte Verbindung<br />

erreichbaren Web-Server betreiben.<br />

� SMTP: Dient dem Austausch von E-Mail-Nachrichten zwischen<br />

zwei Mail-Servern. Wenn auf Ihrem HighEnd-Server der Mail-Server<br />

Ihrer Domain arbeitet, müssen Sie diesen Dienst freischalten.<br />

� POP3/POP3 mit SSL: Sollen Nutzer in der Lage sein, Mail von<br />

einem laufenden Mail-Server abzuholen, muss der Dienst POP3 freigeschaltet<br />

sein. Für eine verschlüsselte Übertragung ist zusätzlich<br />

POP3 mit SSL freizugeben.<br />

� IMAP/IMAP mit SSL: IMAP ist ebenfalls ein Protokoll zur Abholung<br />

von Mail vom Mail-Server. Es wird allerdings nicht so häufig<br />

verwendet wie POP3 und kann daher oft deaktiviert bleiben. Wollen<br />

Ihre Nutzer per IMAP Mail abholen, können Sie die Standardvariante<br />

sowie die per SSL gesicherte Übertragung auch nachträglich noch aktivieren.


192 Kapitel 7<br />

� Secure Shell (SSH): Diesen Dienst benötigen Sie unbedingt, um<br />

eine Verbindung zur Kommandozeile Ihres Servers herzustellen.<br />

Schalten Sie ihn auf jeden Fall frei.<br />

� Telnet: Hierbei handelt es sich um eine Alternative zu SSH, die ohne<br />

Verschlüsselung arbeitet, und daher nicht benutzt werden sollte. Diesen<br />

Dienst sollten Sie keinesfalls freischalten.<br />

� Remote Synchronisation (Rsync): Der Rsync-Dienst dient zum<br />

Abgleich der Daten zweier Verzeichnisbäume auf unterschiedlichen<br />

Servern. In der Regel werden Sie diesen Dienst nicht benötigen und<br />

können ihn daher deaktiviert lassen.<br />

7.2 Mit diesen Minimaleinstellungen schützen Sie Ihren HighEnd-Server, ohne die<br />

wichtigsten Dienste wie Web- und Mail-Server zu behindern.<br />

Über Weiter gelangen Sie zu einer weiteren Maske, in der Sie spezielle<br />

Funktionen der Firewall ein- oder ausschalten können. Die Voreinstellungen<br />

sind für einen einzelnen Server ausgelegt und können einfach<br />

übernommen werden. Gleiches gilt für die nachfolgend dargestellten Protokollierungsoptionen.<br />

Die dort unter Optionen zur Fehlerbehebung aufgeführten<br />

Optionen sollten Sie nur aktivieren, wenn tatsächlich Probleme<br />

mit der Firewall auftreten.<br />

Nachdem Sie diese Maske quittiert haben, erscheint ein abschließendes<br />

Hinweisfenster, das Sie über die bevorstehende Aktivierung der Firewall<br />

in Kenntnis setzt. Wenn Sie sich sicher sind, alle Einstellungen korrekt<br />

vorgenommen zu haben, bestätigen Sie auch dieses Fenster.


Den Server sichern 193<br />

Firewall-Einstellungen immer prüfen Wenn Sie nach Abschluss<br />

der Firewall-Konfiguration noch Zugriff auf die Kommandozeile haben,<br />

dann heißt das nicht, dass alle anderen Dienste auch wirklich verfügbar sind. Prüfen<br />

Sie daher, ob auch Web- und Mail-Server noch zur Verfügung stehen.<br />

Erweiterte Firewall-Einstellungen<br />

Dass die gängigsten Dienste über Yast direkt freischaltbar sind, ist sicher<br />

komfortabel. Aber schon im Normalbetrieb benötigt der HighEnd-Server<br />

zusätzliche Ports. So ist zum Beispiel für ViSAS der Port 22222 freizuschalten,<br />

soll das Verwaltungswerkzeug weiterhin zur Verfügung stehen.<br />

Auch für den Zugriff per FTP oder die Administration von MySQL vom<br />

lokalen Rechner aus werden zusätzliche freigeschaltete Ports benötigt.<br />

Dafür sind die erweiterten Einstellungen der SUSE Firewall zuständig.<br />

Sie erreichen diese über die Maske, in der Sie zuvor die vorgegebenen<br />

Dienste freischalten konnten. Hier drücken Sie [Alt]+[E] und gelangen<br />

so zu den Einstellungen für Experten. Geben Sie hier die zusätzlich freizugebenden<br />

Ports durch Leerzeichen getrennt an. Für FTP und den<br />

Zugriff auf ViSAS sind dies beispielsweise 21 und 22222.<br />

7.3 Durch die Freigabe der Ports 21 und 22222 ermöglichen Sie den Zugang per FTP<br />

und schalten den Zugriff auf ViSAS wieder frei.<br />

Weitere wichtige Dienste, die Sie auf diesem Weg eventuell freischalten<br />

sollten, finden Sie in der folgenden Tabelle.


194 Kapitel 7<br />

Dienst Portnummer Funktion<br />

DNS (domain) 53 Auf diesem Port tauschen die DNS-Server Daten<br />

miteinander aus. Läuft auf Ihrem HighEnd-Server<br />

der DNS-Server für Ihre Domain, müssen Sie diesen<br />

Port freigeben.<br />

NNTP 119 Network News Transfer Protocol, wird zum Versand<br />

von Usenet-News verwendet.<br />

SNMP 161 Simple Network Management Protocol zur Abfrage<br />

von Status-Informationen über den Server.<br />

IRC 194 Internet Relay Chat, wird für den Betrieb eines<br />

IRC-Servers auf Ihrem HighEnd-Server benötigt.<br />

MySQL 3306 Wenn Sie eine Verbindung zu einem auf dem<br />

HighEnd-Server laufenden MySQL-Server aufbauen<br />

möchten, benötigen Sie diesen Port.<br />

Andere Anwendungen, wie beispielsweise Spiele-Server, nutzen oft Ports,<br />

die eigentlich anderweitig belegt sind. Die für diese Programme freizugebenden<br />

Ports entnehmen Sie bitte der Dokumentation der jeweiligen<br />

Software.<br />

Einblick in die Arbeit von iptables<br />

Wenn Sie gerne einmal sehen möchten, welche Arbeit Ihnen die SUSE<br />

Firewall abnimmt, können Sie mithilfe des Programms iptables-save einen<br />

Blick auf die Konfiguration des Paketfilters werfen. Ohne Parameter aufgerufen<br />

gibt iptables-save die kompletten Einstellungen von iptables aus.<br />

Dies können Sie auch dazu nutzen, die aktuellen Einstellungen zu speichern.<br />

Dazu leiten Sie die Ausgabe von iptables-save einfach in eine Datei<br />

um:<br />

iptables-save > firewall.set<br />

Die so gespeicherten Einstellungen können Sie verwenden, um sie bei<br />

Bedarf wieder zu laden. Das dazu notwendige Kommando heißt iptablesrestore<br />

und erwartet seine Parameter normalerweise über die Tastatur.<br />

Über eine weitere Umleitung führen Sie dem Programm stattdessen die<br />

zuvor gesicherten Firewall-Settings zu:<br />

iptables-restore < firewall.set


Den Server sichern 195<br />

7.2 Systemdienste aktivieren und deaktivieren<br />

Durch den Einsatz der Firewall ist der HighEnd-Server zwar geschützt,<br />

trotzdem macht es Sinn, nicht benötigte Dienste abzuschalten und dauerhaft<br />

aus der Autostart-Liste zu entfernen. Im Gegenzug sollten Sie die<br />

Firewall in die Autostart-Liste aufnehmen.<br />

Laufende Systemdienste ermitteln<br />

Um die beim Start Ihres HighEnd-Servers automatisch ausgeführten<br />

Dienste zu ermitteln, können Sie wieder Yast verwenden. Sie finden die<br />

Option im Menü System unter Runlevel-Editor. Hier zeigt Ihnen Yast alle<br />

vorhandenen automatisch gestarteten Dienste und deren jeweiligen Status<br />

an.<br />

7.4 Über den Runlevel-Editor erfahren Sie, welche Dienste beim Systemstart automatisch<br />

aktiviert werden.<br />

Eine Alternative zu der Methode über Yast ist das Hilfsprogramm chkconfig.<br />

Ohne Parameter aufgerufen liefert es eine zusammengefasste Liste der<br />

Prozesse mit ihrem jeweiligen Status. Über die Option –l erhalten Sie eine<br />

ausführliche Übersicht.<br />

Systemdienste aus Autostart-Liste entfernen<br />

Um einen Dienst aus der Autostart-Liste zu entfernen, markieren Sie ihn<br />

in der von Yast angezeigten Übersicht mithilfe der Tasten zum Bewegen<br />

der Schreibmarke und drücken anschließend die Tastenkombination


196 Kapitel 7<br />

[Alt]+[D]. Es erscheint ein Hinweis, der über den Erfolg des Kommandos<br />

informiert. Nachdem Sie diesen quittiert haben, wechselt der Statusanzeiger<br />

in der Spalte Aktiviert von Ja auf Nein.<br />

7.5 Yast informiert über das erfolgreiche Abschalten eines Dienstes.<br />

Alternativ zur Methode über Yast können Sie auch den Befehl chkconfig<br />

in Verbindung mit dem Parameter –d verwenden, gefolgt vom Namen des<br />

zu deaktivierenden Dienstes. Um beispielsweise den Hotplug-Service<br />

manuell abzuschalten, verwenden Sie folgendes Kommando:<br />

chkconfig –d hotplug<br />

Systemdienste zur Autostart-Liste hinzufügen<br />

Wollen Sie einen bislang deaktivierten Dienst zur Autostart-Liste hinzufügen,<br />

ist das Verfahren ähnlich dem beim Entfernen. Markieren Sie in<br />

der Liste des Runlevel-Editors mithilfe der Cursor-Tasten den gewünschten<br />

Eintrag und drücken Sie dann gleichzeitig die Tasten [Alt] und [K].<br />

Yast startet daraufhin den Dienst. Hängt dieser von anderen zu startenden<br />

Diensten ab, blendet Yast ein Hinweisfenster ein, das Sie quittieren<br />

müssen.


Den Server sichern 197<br />

7.6 Beim Starten von Diensten überprüft Yast, ob diese von anderen Diensten<br />

abhängen, die ebenfalls gestartet werden müssen.<br />

Um einen Dienst über die Kommandozeile dauerhaft in die Autostartliste<br />

aufzunehmen, benutzen Sie die Option –a des Hilfsprogramms chkconfig.<br />

Für den Hotplug-Dienst lautet die notwendige Befehlszeile wie folgt:<br />

chkconfig –a hotplug<br />

Systemdienste manuell starten und stoppen<br />

Für jeden Systemdienst existiert ein eigenes Skript, mit dessen Hilfe sich<br />

der Dienst starten und stoppen sowie dessen aktueller Status erfragen<br />

lässt. Sie finden diese System-Skripts unter SUSE Linux im Verzeichnis<br />

/etc/init.d. Jedes dieser Skripts lässt sich in der Regel mit den drei folgenden<br />

Optionen aufrufen:<br />

� start: Startet den angegebenen Dienst, sofern dieser nicht bereits<br />

läuft.<br />

� stop: Beendet den angegebenen Dienst, sofern er gerade aktiv ist.<br />

� status: Gibt den aktuellen Status des angegebenen Dienstes aus.<br />

� restart: Beendet einen aktiven Dienst und startet ihn gleich darauf<br />

wieder. Diese Variante eignet sich gut, um geänderte Konfigurationen<br />

zu übernehmen.


198 Kapitel 7<br />

7.7 Im Verzeichnis /etc/init.d finden sich die Skripts der während des Systemstarts<br />

zu aktivierenden Dienste.<br />

Um beispielsweise zu erfahren, ob der Web-Server gerade läuft oder<br />

nicht, geben Sie auf der Kommandozeile folgenden Befehl ein:<br />

/etc/init.d/apache status<br />

Unter SUSE Linux geht es sogar noch etwas einfacher, da hier zu jedem<br />

der in /etc/init.d abgelegten Skripts ein Pendant mit dem vorangestellten<br />

Kürzel rc im Suchpfad existiert. Unter SUSE Linux können Sie also statt<br />

der obigen auch die nachfolgende Schreibweise verwenden:<br />

rcapache status<br />

7.3 Der Super-Dämon Xinetd<br />

Während die Skripts in /etc/inet.d dafür verantwortlich sind, ständig laufende<br />

Dienste zu starten, gibt es auch Dienste, die nur auf Anforderung<br />

aktiviert werden. Dazu gehört zum Beispiel der FTP-Server vsftpd, der im<br />

Auslieferungszustand auf Ihrem HighEnd-Server eingerichtet ist. Er wird<br />

erst aktiv, wenn eine Anfrage auf dem Port 21 für FTP-Übertragungen<br />

erkannt wird.<br />

Zuständig für diese automatische Ausführung von Diensten ist der so<br />

genannte Super-Dämon xinetd. Über Konfigurationsdateien im Verzeichnis<br />

/etc/xinetd.d gesteuert, lauscht er an diversen Ports und startet gegebenenfalls<br />

die definierten Programme.


Den Server sichern 199<br />

7.8 Neben diversen anderen Diensten ist xinetd auch für den Start des FTP-Servers<br />

verantwortlich.<br />

Der Vorteil dieses Verfahrens ist, dass selten genutzte Anwendungen<br />

nicht ständig im Speicher gehalten werden müssen – das RAM also anderen<br />

Programmen zur Verfügung steht. Der Nachteil besteht darin, dass<br />

xinetd in der Vergangenheit oft Ziel von Angriffen war und von vielen<br />

Administratoren daher bevorzugt deaktiviert wird.<br />

Dienste unter xinetd aktivieren und deaktivieren<br />

Einen von xinetd gestarteten Dienst zu deaktivieren ist schnell erledigt.<br />

Wechseln Sie einfach in das Verzeichnis /etc/xinetd.d und öffnen Sie dort<br />

die zum Dienst gehörende Datei mit dem Editor. Suchen Sie nach einer<br />

Zeile, die den Text disable = no enthält und ändern Sie diese auf disable =<br />

yes. Alternativ kann die Zeile auch bereits den Text disable = yes enthalten,<br />

aber mit einer Raute („#“) als Kommentarzeichen versehen sein. In diesem<br />

Fall entfernen Sie das Kommentarzeichen. Speichern Sie die Datei<br />

und starten Sie xinetd über das Kommando rcxinetd restart neu.<br />

xinetd komplett deaktivieren und wieder aktivieren<br />

Im Originalzustand ist xinetd auf Ihrem HighEnd-Server nur für den Start<br />

des FTP-Servers notwendig. Da Sie diesen dank seines geringen Speicherverbrauchs<br />

und der vernachlässigbaren CPU-Last auch als Standalone-<br />

Programm verwenden können, ist es eine gute Idee, xinetd komplett und<br />

dauerhaft abzuschalten. Dies erreichen Sie mit folgenden Kommandos:


200 Kapitel 7<br />

rcxinetd stop<br />

chkconfig –d xinetd<br />

Sollten Sie den Super-Dämon später für eine andere Anwendung doch<br />

wieder benötigen, geht das Aktivieren genau so flott von der Hand:<br />

chkconfig –a xinetd<br />

rcxinetd start<br />

Beachten Sie, dass diese Anweisungen für SUSE Linux gelten.<br />

7.4 Der FTP-Server vsftpd<br />

Wie schon erwähnt kann es sinnvoll sein, den FTP-Server vsftpd als eigenständigen,<br />

dauerhaft geladenen Dämon zu betreiben. Zusätzlich bietet er<br />

auch die Möglichkeit, die von den Anwendern genutzte Bandbreite zu<br />

limitieren.<br />

vsftpd als Standalone-Server ausführen<br />

Um vsftpd als eigenständigen Server-Prozess ausführen zu lassen, müssen<br />

Sie zunächst dessen Konfigurationsdatei anpassen. Öffnen Sie dazu die<br />

Datei /etc/vsftpd.conf im Editor und fügen Sie gleich am Anfang folgende<br />

Zeile ein:<br />

listen=YES<br />

Achten Sie dabei auf die Schreibweise, speziell die Groß- und Kleinschreibung<br />

sind wichtig. Speichern Sie die Datei und wechseln Sie in das<br />

Verzeichnis /etc/init.d. Dort erstellen Sie mit dem Editor die Datei vsftpd<br />

mit folgendem Inhalt:<br />

#! /bin/sh<br />

# /etc/init.d/vsftpd<br />

#<br />

### BEGIN INIT INFO<br />

# Provides: vsftpd<br />

# Required-Start: $syslog $network<br />

# X-UnitedLinux-Should-Start:<br />

# Required-Stop: $syslog $network<br />

# X-UnitedLinux-Should-Stop:<br />

# Default-Start: 3 5<br />

# Default-Stop: 0 1 2 6<br />

# Short-Description: startet den VSFTP-Server<br />

# Description: startet den VSFTP-Server<br />

### END INIT INFO


Den Server sichern 201<br />

# Check for missing binaries (stale symlinks should not hap<br />

pen)<br />

VSFTPD_BIN=/usr/sbin/vsftpd<br />

test -x $VSFTPD_BIN || exit 5<br />

# Check for existence of needed config file<br />

VSFTPD_CONFIG=/etc/vsftpd.conf<br />

test -r $VSFTPD_CONFIG || exit 6<br />

. /etc/rc.status<br />

rc_reset<br />

case "$1" in<br />

start)<br />

echo -n "Starting ftp server"<br />

startproc $VSFTPD_BIN<br />

rc_status -v<br />

;;<br />

stop)<br />

echo -n "Shutting down ftp-server"<br />

killproc -TERM $VSFTPD_BIN<br />

rc_status -v<br />

;;<br />

restart)<br />

$0 stop<br />

$0 start<br />

rc_status<br />

;;<br />

status)<br />

echo -n "Checking for active ftp-server"<br />

checkproc $VSFTPD_BIN<br />

rc_status -v<br />

;;<br />

*)<br />

echo "Usage: $0 {start|stop|status|restart}"<br />

exit 1<br />

;;<br />

esac<br />

rc_exit


202 Kapitel 7<br />

Achtung: Die Kommentare am Anfang sind wichtig, übernehmen Sie diese<br />

bitte so wie angegeben in die Datei. Anderenfalls funktioniert das im Folgenden<br />

beschriebene Integrieren von vsftpd in die Autostart-Liste nicht.<br />

Als nächstes geben Sie dem Skript die notwendigen Rechte und nutzen<br />

chkconfig, um es in die Autostart-Liste aufzunehmen:<br />

chmod 755 vsftpd<br />

chkconfig –a vsftpd<br />

Jetzt können Sie den FTP-Server starten. Unter SUSE Linux ist es praktisch,<br />

zusätzlich auch einen symbolischen Link auf die Datei /usr/sbin/rcvsftpd<br />

zu erzeugen. So können Sie später auch den FTP-Server mit den<br />

gewohnten Kurzbefehlen bedienen.<br />

ln –s /etc/init.d/vsftpd /usr/sbin/rcvsftpd<br />

rcvsftpd start<br />

rcvsftpd status<br />

7.9 Mit wenigen Befehlen ist der FTP-Server in die Autostart-Liste aufgenommen<br />

und gestartet.<br />

Bandbreite für FTP-Nutzer limitieren<br />

Ein großes Problem ist speziell bei vielen gleichzeitigen FTP-Sitzungen<br />

die von diesen verbrauchte Bandbreite. Um zu verhindern, dass dank vieler<br />

paralleler FTP-Downloads die Performance Ihres Web-Auftritts leidet,<br />

sollten Sie die von vsftpd gebotenen Features zur Begrenzung der<br />

FTP-Transfers nutzen.<br />

So lässt sich über das Schlüsselwort local_max_rate festlegen, wie viele<br />

Bytes pro Sekunde vsftpd maximal an die Gegenstelle einer Verbindung<br />

überträgt. Für ein an das Download-Volumen eines DSL-1000-Anschlusses<br />

angepasstes Transferlimit von vsftpd tragen Sie folgende Zeile in<br />

die Konfigurationsdatei /etc/vsftpd.conf ein:


Den Server sichern 203<br />

local_max_rate=100000<br />

Damit gewähren Sie den Anwendern sogar etwas mehr Bandbreite als<br />

DSL-1000 eigentlich leistet. Nun könnten aber Nutzer mit besserer<br />

Anbindung auf die Idee kommen, einfach mehrere parallele Downloads<br />

zu starten. Diese Lücke stopfen Sie durch folgenden Eintrag:<br />

max_per_ip=1<br />

Diese Einstellung erlaubt nur eine FTP-Sitzung je IP-Adresse. So kann<br />

kein Nutzer mehr als eine Verbindung zu Ihrem FTP-Server aufbauen.<br />

Um auch die Gesamtzahl der gleichzeitig per FTP arbeitenden Anwender<br />

zu begrenzen, dient ein weiteres Schlüsselwort:<br />

max_clients=10<br />

Verwenden Sie diese Einstellung, dann sind nur zehn gleichzeitige FTP-<br />

Sitzungen auf Ihrem Server möglich.<br />

Vergessen Sie nicht, nach der Durchführung der Änderungen den Server<br />

mit rcvsftpd restart neu zu starten. Nur durch einen Neustart des FTP-Servers<br />

wird dieser veranlasst, die neue Konfiguration zu verwenden.<br />

7.5 Verfahren zur Datensicherung<br />

Ein wichtiger Punkt beim Betrieb Ihres HighEnd-Servers ist die Sicherung<br />

der darauf gespeicherten Daten. Dies betrifft sowohl die Dateien der<br />

einzelnen Web-Auftritte wie auch die auf dem Server angelegten Datenbanken.<br />

Unter Linux stehen Ihnen verschiedene Verfahren zur Verfügung,<br />

die sich auch in Kombination einsetzen lassen.<br />

Einfache Datenkopie per rsync<br />

Die großzügig dimensionierte Festplattenkapazität der HighEnd-Server<br />

bietet Ihnen genügend Platz, um als erste Maßnahme zur Datensicherung<br />

eine lokale Kopie der Informationen anzulegen. Ein für diese Aufgabe<br />

hervorragend geeignetes Tool ist rsync. Es wurde dafür konzipiert, den<br />

Inhalt zweier Verzeichnisse abzugleichen. Dabei verwendet es ein optimiertes<br />

Verfahren, bei dem nur die festgestellten Unterschiede und nicht<br />

jedes Mal die ganzen Dateien übertragen werden. Daher ist es nicht nur<br />

schnell, es belastet auch die CPU nicht übermäßig. Um eine Kopie der<br />

Verzeichnisse mit den wichtigsten Daten mithilfe von rsync anzulegen,<br />

legen Sie zunächst ein Verzeichnis an, das die Sicherheitskopien aufnehmen<br />

soll:<br />

mkdir /backup


204 Kapitel 7<br />

Um nun beispielsweise den kompletten Inhalt des Verzeichnisses /home<br />

dort als Kopie abzulegen, verwenden Sie folgenden Befehl:<br />

rsync –az /home /backup<br />

Achten Sie darauf, nach dem Namen des Quellverzeichnisses keinen<br />

abschließenden Slash („/“) anzugeben. Bei Angabe dieses Zeichens<br />

kopiert rsync lediglich die Inhalte des Quellverzeichnisses, legt aber kein<br />

eigenes Verzeichnis mit dem Namen des Quell-Directorys an. Um Sicherheitskopien<br />

mehrerer Verzeichnisse in /backup unterzubringen, ist aber<br />

genau das erforderlich.<br />

Mit einigen Optionen können Sie die Arbeit von rsync sowohl beschleunigen<br />

wie auch optimieren. So ist es zum Beispiel oft nicht wichtig, auch die<br />

Protokolldateien zu sichern. Um diese von der Sicherung auszuschließen,<br />

verwenden Sie folgenden Befehl:<br />

rsync –az –exclude=*log /home /backup<br />

Gelegentlich kann es vorkommen, dass im Quellverzeichnis Daten<br />

gelöscht wurden. Normalerweise berücksichtigt rsync gelöschte Dateien<br />

nicht, mit dem Effekt, dass diese in der Sicherheitskopie noch vorhanden<br />

sind. Um dieses Verhalten zu ändern und die im Quellverzeichnis<br />

gelöschten Daten auch aus der Sicherheitskopie zu entfernen, verwenden<br />

Sie diese Form des Befehls:<br />

rsync –az –-delete –-delete-after /home /backup<br />

Die Option --delete-after bewirkt, dass der Löschvorgang erst nach dem<br />

Anlegen der Sicherheitskopie erfolgt anstatt davor. So stellen Sie sicher,<br />

dass die Daten korrekt kopiert wurden, bevor alte Informationen entfernt<br />

werden.<br />

Sicherung der Konfiguration nicht vergessen Neben den im<br />

Verzeichnisbaum unterhalb von /home abgelegten Daten der Web-Auftritte sollten<br />

Sie auch den Inhalt der Verzeichnisse unter /etc regelmäßig sichern. Hier finden<br />

sich nämlich die Konfigurationen der meisten auf dem Server laufenden Dienste.<br />

Datenbanken sichern per mysqldump<br />

Ein bei der Datensicherung oft vergessener Punkt ist, die Inhalte der<br />

MySQL-Datenbanken mit einzubeziehen. Dabei steht mit mysqldump ein<br />

leistungsfähiges Werkzeug zur Verfügung, das es erlaubt, den Inhalt beliebiger<br />

MySQL-Datenbanken in einer Textdatei zu sichern. Um alle in<br />

MySQL angelegten Datenbanken in der Datei /backup/mysql/mysql.dbs zu<br />

speichern, genügt folgende Befehlsfolge:


Den Server sichern 205<br />

mkdir –p /backup/mysql<br />

cd /backup/mysql<br />

mysqldump –AaCceQ –uroot –p -r mysql.dbs<br />

Dabei müssen Sie durch das Passwort des Superusers root ersetzen.<br />

Die so gesicherten Inhalte können Sie mit einem einfachen Befehl<br />

wieder zurückspielen:<br />

mysql –uroot –p < /backup/mysql/mysql.dbs<br />

Archive der Sicherheitskopien erstellen<br />

Sowohl die Sicherheitskopien von Verzeichnissen, aber ganz besonders<br />

die Sicherung der Datenbanken bestehen zum großen Teil aus Daten, die<br />

sich gut komprimieren lassen. Es liegt also nahe, mit tar gepackte Archive<br />

der Sicherheitskopien zu erstellen. Durch geschickte Kombination mit<br />

weiteren Befehlen der Kommandozeile lässt sich so auch das Vorhalten<br />

mehrerer Sicherheitskopien realisieren. Um für jeden Tag der Woche ein<br />

eigenes Archiv der Heimatverzeichnisse sowie der Datenbanken zu erstellen,<br />

genügen folgende Befehle:<br />

cd /backup<br />

tar cjf homedirs.`date +%a`.tar.bz2 home<br />

tar cjf mysqldbs.`date +%a`.tar.bz2 mysql<br />

Beachten Sie die Zeichenfolge ‚date +%a‘ im Namen des zu erzeugenden<br />

Archivs. Sie bewirkt, dass die Kurzform des aktuellen Wochentags in den<br />

Archivnamen eingefügt wird. So entstehen beispielsweise an einem Dienstag<br />

die Archive homedirs.Tue.tar.bz2 und mysqldbs.Tue.tar.bz2.<br />

7.10 Mit wenigen Befehlen legen Sie Archive der wichtigsten Daten auf Tagesbasis<br />

an.<br />

Dateien auf den Backup-Space übertragen<br />

Eine Kopie der Daten auf dem Server selbst ist praktisch, aber keineswegs<br />

sicher. Bei einem Ausfall der Festplatte sind die Daten trotzdem komplett<br />

verloren. Es bietet sich daher an, die Sicherheitskopien auch auf dem von


206 Kapitel 7<br />

STRATO bereitgestellten Backupspace abzulegen. Am einfachsten geht<br />

das mit dem Kommandozeilen-Tool ftp. Dabei handelt es sich um einen<br />

vollwertigen FTP-Client, der auch in der Lage ist, automatische Übertragungen<br />

zu einem entfernten FTP-Server vorzunehmen. Um die wie in<br />

Abschnitt 7.5.3 beschrieben erzeugten Archive auf den Backupspace zu<br />

übertragen, genügt folgendes Kommando:<br />

cd /backup<br />

ftp –u ftp://:@backup.serverkompetenz.de/<br />

*`date +%a`*<br />

Beachten Sie, dass Sie für und die Benutzerkennung<br />

angeben müssen, die Ihnen im Kundenservicebereich bei der Freischaltung<br />

des Backupspace zugeteilt wurde (siehe Kapitel 1.3).<br />

Das Backup-Skript<br />

Da es nicht sonderlich komfortabel ist, die einzelnen Schritte jedes Mal<br />

manuell durchzuführen, bietet es sich an, die Aufgaben von einem Shell-<br />

Skript erledigen zu lassen. Dieses legen Sie am besten mit folgendem<br />

Inhalt als backup.sh im Verzeichnis /root/bin ab:<br />

#!/bin/bash<br />

MYUSER=mysqluser<br />

MYPASS=mysqlpass<br />

FUSER=ftpuser<br />

FPASS=ftppass<br />

mkdir –p /backup/mysql<br />

WOTAG=`date +%a`<br />

rsync –az –-delete -–delete-after /home /backup<br />

rsync –az –-delete -–delete-after /etc /backup<br />

cd /backup/mysql<br />

mysqldump –AaCceQ –u$MYUSER –p$MYPASS -r mysql.dbs<br />

cd /backup<br />

tar cjf etc_dirs.$WOTAG.tar.bz2 etc<br />

tar cjf homedirs.$WOTAG.tar.bz2 home<br />

tar cjf mysqldbs.$WOTAG.tar.bz2 mysql<br />

ftp –u ftp://$FUSER:$FPASS@backup.serverkompetenz.<br />

de *$WOTAG*<br />

Beachten Sie, dass Sie die Werte hinter den Variablen MYUSER und<br />

MYPASS auf die für den Root-Zugang zu MySQL notwendigen Benutzereinstellungen<br />

setzen. Analog verwenden Sie bitte für FUSER und<br />

FPASS die Benutzerkennung für den Backupspace (siehe Kapitel 1.3).


Den Server sichern 207<br />

Das Skript legt für jeden Wochentag ein eigenes Backup-Archiv an, das<br />

die Konfigurationsdateien aus /etc, die Heimatverzeichnisse unter /home<br />

und die MySQL-Datenbanken enthält. Anschließend überträgt es die neu<br />

angelegten Archive auf den Backupspace. Da es dabei die Daten der Vorwoche<br />

jeweils überschreibt, sollten auch keine Probleme mit dem verfügbaren<br />

Speicherplatz auf dem HighEnd-Server und dem Backupspace auftreten.<br />

Backup-Erstellung automatisieren<br />

Was jetzt noch fehlt, ist ein automatischer Aufruf des Backup-Skripts zu<br />

einer Tageszeit, zu der der Besucherandrang möglichst niedrig ist. Für<br />

diese Aufgabe bietet sich der Scheduler cron an. Gesteuert über die Datei<br />

/etc/crontab überprüft er jede Minute, ob abzuarbeitende Jobs anstehen<br />

und führt diese gegebenenfalls aus.<br />

Um das Backup-Skript aus Abschnitt 7.5.5 automatisch jeden Morgen<br />

um 3:00 Uhr ausführen zu lassen, öffnen Sie die Datei /etc/crontab mit<br />

einem Editor und fügen an deren Ende folgende Zeile ein:<br />

00 3 * * * root /root/bin/backup.sh<br />

Dabei geben die ersten fünf Parameter den Zeitpunkt an, zu dem ein<br />

Befehl auszuführen ist. Die erste Stelle gibt die Minute an, an zweiter<br />

Position folgt die Stunde. In der dritten Spalte lässt sich ein Tag des<br />

Monats definieren, an dem der Befehl ausgeführt werden soll, die vierte<br />

Stelle gibt den Monat an. Über den fünften Wert können Sie schließlich<br />

festlegen, an welchem Wochentag das Kommando ausgeführt werden<br />

soll. Ein Stern an der jeweiligen Position gibt an, dass der Wert beliebig<br />

sein kann. Es folgt der Name des Benutzers, mit dessen Rechten ein<br />

Befehl ausgeführt werden soll. Danach ist der Befehl oder das Skript<br />

anzugeben.<br />

Wollen Sie zum Beispiel nur einmal wöchentlich am Montagmorgen eine<br />

Sicherung durchführen, dann ändern Sie den Eintrag in /etc/crontab wie<br />

folgt:<br />

00 3 * * 1 root /root/bin/backup.sh<br />

7.6 RecoveryManager einsetzen<br />

Niemand denkt gerne daran, dass auch Server einmal ausfallen. Wenn<br />

das doch einmal passiert, hilft der RecoveryManager weiter. Er bietet<br />

Zugriff auf die Daten der Festplatte Ihres Servers, erlaubt es, Sicherungen<br />

durchzuführen oder Backups zurückzuspielen.


208 Kapitel 7<br />

RecoveryManager starten<br />

Den RecoveryManager aktivieren Sie über den Kundenservicebereich.<br />

Über die Menüpunkte Serverkonfiguration und RecoveryManager gelangen<br />

Sie zu einer Auswahlmaske. Um den RecoveryManager zu starten, stellen<br />

Sie zunächst im Drop-Down-Menü den Bootmodus von der Vorgabe<br />

Normaler Boot auf Starten des Rettungssystems um. Zusätzlich setzen Sie das<br />

Häkchen auf Maschine resetten und klicken anschließend auf Weiter.<br />

7.11 Mit diesen Einstellungen starten Sie den RecoveryManager.<br />

Sie erhalten nun eine Informationsseite angezeigt, auf der auch das Passwort<br />

zur Anmeldung am vom RecoveryManager bereitgestellten Betriebssystem<br />

aufgeführt ist. Notieren Sie sich dieses Passwort unbedingt, bevor<br />

Sie fortfahren.<br />

Am RecoveryManager anmelden<br />

Nachdem Sie über den Kundenservicebereich den Start des Recovery-<br />

Managers veranlasst haben, dauert es eine Weile, bis dieser eingerichtet<br />

und das System neu gestartet ist. Zur Anmeldung am RecoveryManager<br />

verwenden Sie am besten PuTTY (siehe Kapitel 4.3). Als Benutzernamen<br />

verwenden Sie root, als Passwort das, welches Ihnen bei der Anforderung<br />

des RecoveryManagers angezeigt wurde (siehe Abschnitt 7.6.1).<br />

Sie bekommen die Begrüßungsmeldung des RecoveryManagers angezeigt.<br />

Dabei handelt es sich um ein Minimal-Linux, das Ihnen die wichtigsten<br />

Funktionen zur Wiederherstellung Ihres Servers zur Verfügung stellt.


Den Server sichern 209<br />

7.12 Nur die ungewohnte Begrüßung zeigt, dass Sie sich beim RecoveryManager<br />

angemeldet haben.<br />

Die Festplatte des HighEnd-Servers einbinden<br />

Direkt nach dem Login bietet Ihnen der RecoveryManager noch keinen<br />

Zugriff auf die Festplatte Ihres HighEnd-Servers. Ihre erste Aufgabe ist es<br />

daher, diese in das Dateisystem des RecoveryManagers einzubinden.<br />

Dazu legen Sie zunächst einen Einhängepunkt an:<br />

mkdir /mount<br />

Um herauszufinden, auf welcher Partition der Festplatte die Daten untergebracht<br />

sind, benutzen Sie am besten den Partitionsmanager parted.<br />

Nach dessen Aufruf erhalten Sie über die Eingabe des Befehls print eine<br />

Liste der auf der Festplatte angelegten Partitionen. Auf der größten<br />

davon finden sich höchstwahrscheinlich Ihre Daten. Mit dem Befehl quit<br />

verlassen Sie den Partitionseditor.<br />

Die auf diesem Weg ermittelte Partition binden Sie über den Befehl<br />

mount in das Dateisystem des RecoveryManagers ein:<br />

mount /dev/hda3 /mount<br />

Wechseln Sie anschließend in das Verzeichnis /mount. Sie finden dort die<br />

Verzeichnisse Ihres HighEnd-Servers und die darin enthaltenen Daten.<br />

Sie können nun über einen einfachen Befehl dafür sorgen, dass Sie statt<br />

mit den Hilfsprogrammen des RecoveryManagers wieder mit den auf<br />

dem HighEnd-Server installierten Programmen arbeiten können:<br />

chroot /mount<br />

Damit bewirken Sie, dass eine neue Kommandozeile geöffnet wird, in der<br />

nur noch die in /mount vorhandenen Verzeichnisse sichtbar sind. Als<br />

Nebeneffekt davon verweisen die Systempfade nun wieder auf die Programme<br />

des HighEnd-Servers. Um diese Umgebung zu verlassen, geben<br />

Sie einfach exit auf der Kommandozeile ein. Für den Moment ist es<br />

jedoch praktischer, in der Chroot-Umgebung zu bleiben. Von hier aus<br />

können Sie, wie in den vorangegangenen Abschnitten beschrieben, Backups<br />

einrichten oder auch die Daten wiederherstellen.


210 Kapitel 7<br />

7.13 Aus dieser Übersicht ist erkennbar, dass sich die Daten der Web-Auftritte auf<br />

der Partition /dev/hda3 befinden.<br />

Daten wiederherstellen<br />

Um die Daten Ihres HighEnd-Servers wiederherzustellen, holen Sie zunächst<br />

die auf dem Backupspace gesicherten Daten zurück. Auch das<br />

lässt sich mit einem einzigen Kommando erledigen:<br />

ftp @backup.serverkompetenz.de:backup/*<br />

Nachdem Sie diesen Befehl abgeschickt haben, werden Sie zur Eingabe<br />

Ihres Passworts für den Backupspace aufgefordert. Anschließend werden<br />

alle vorhandenen Backup-Dateien in das aktuelle Verzeichnis auf dem<br />

HighEnd-Server übertragen. Sie können nun die gewünschten Archive<br />

mithilfe des Archivprogramms tar entpacken (siehe Kapitel 5.7.1).<br />

7.7 Verzeichnisschutz und mehr mit .htaccess<br />

Ging es bislang vor allem darum, den Server an sich und die auf ihm enthaltenen<br />

Daten zu schützen, soll im Folgenden ein weiterer Punkt behandelt<br />

werden, der viele Anwender beschäftigt: Wie schützt man Teile des<br />

eigenen Web-Auftritts vor unbefugten Zugriffen? Zu diesen schützenswerten<br />

Bereichen gehören beispielsweise Auswertungen über die Nutzung<br />

der Web-Site oder auch Seiten, die nur bestimmten Anwendern<br />

zugänglich sein sollen. Ein einfaches Mittel zum Schutz von Inhalten, die<br />

per Web-Browser zugänglich sein sollen, ist der Einsatz der Datei .htaccess


Den Server sichern 211<br />

in den zu schützenden Verzeichnissen. Zusätzlich erlaubt Ihnen diese<br />

Datei unter anderem, Variablen für PHP zu setzen.<br />

Verzeichnisse schützen<br />

Bei der Datei .htaccess handelt es sich um eine Steuerdatei, die vom Web-<br />

Server Apache ausgewertet wird und diverse Konfigurationseinstellungen<br />

enthalten kann – unter anderem auch solche zum Schutz von Verzeichnisinhalten.<br />

Um diese Funktion zu realisieren, wechseln Sie in das zu schützende<br />

Verzeichnis und legen dort eine Datei mit dem Namen .htaccess und<br />

folgendem Inhalt an:<br />

AuthType Basic<br />

AuthName "Secure Area"<br />

AuthUserFile /home/user/.htusers<br />

Require user gast gast1 gast2<br />

7.14 Beim Zugriff auf einen geschützten Bereich fragt der Web-Server Benutzername<br />

und Passwort ab.<br />

Die Bedeutung dieser Befehle ist schnell erklärt. Über AuthType Basic teilen<br />

Sie dem Web-Server mit, dass das aktuelle Verzeichnis und seine<br />

Unterverzeichnisse zu schützen sind und entsprechende Befehle folgen.<br />

Mit AuthName weisen Sie dem Bereich einen Namen zu. Dieser wird dem<br />

Anwender als Überschrift während der Abfrage der Benutzerdaten angezeigt<br />

und sollte daher den Bereich möglichst treffend beschreiben. Über<br />

AuthUserFile legen Sie fest, aus welcher Datei der Web-Server die Informationen<br />

über zugelassene Benutzer des geschützten Bereichs beziehen<br />

soll. Die abschließende Zeile legt fest, welche in der zuvor definierten<br />

Datei enthaltenen User Zugriff auf die Inhalte erhalten.


212 Kapitel 7<br />

Stellt sich nur noch die Frage, wie Sie die Datei .htusers erzeugen, die den<br />

Benutzernamen und das Passwort enthält. Dazu dient das Hilfsprogramm<br />

htpasswd2. Um eine neue Passwortdatei zu erzeugen, rufen Sie es<br />

folgendermaßen auf:<br />

htpasswd2 –bc passdatei username passwort<br />

So aufgerufen erzeugt htpasswd2 die Datei passdatei im aktuellen Verzeichnis<br />

und legt die Informationen für den Benutzer username mit dem<br />

Kennwort passwort an. Um einen weiteren Anwender zu dieser Datei hinzuzufügen,<br />

lautet die Syntax sehr ähnlich:<br />

htpasswd2 –b passdatei user2 pass2<br />

Beachten Sie, dass in diesem Fall statt der Option –bc aus dem ersten Beispiel<br />

nur noch die Option –b zum Einsatz kommt. Würden Sie hier wieder<br />

–bc angeben, würde die Datei passdatei nicht erweitert, sondern einfach<br />

überschrieben. Die Zugangsdaten der bislang angelegten Benutzer wären<br />

damit verloren.<br />

PHP-Werte über .htaccess setzen<br />

Eine weitere Möglichkeit, die Ihnen der Einsatz von .htaccess bietet, ist die<br />

Manipulation von PHP-Variablen. Das ist zum Beispiel dann sinnvoll,<br />

wenn Sie die meisten Web-Auftritte mit der Default-Einstellung register_<br />

globals=off betreiben wollen, zugleich aber eine bestimmte PHP-Anwendung<br />

erfordert, dass dieser Wert auf on gestellt ist. In diesem Fall tragen<br />

Sie in die Datei .htaccess einfach Folgendes ein:<br />

php_value register_globals 1<br />

Ab sofort werden für alle PHP-Skripts, die im Verzeichnis mit der Datei<br />

.htaccess und in Verzeichnissen unterhalb davon liegen, mit der Einstellung<br />

register_globals=on arbeiten.<br />

Dieses Verfahren lässt sich auch für andere Konfigurationseinstellungen<br />

von PHP verwenden. Dabei ist zu beachten, dass nicht alle Werte über<br />

.htaccess gesetzt werden können. Eine Liste der über .htaccess beeinflussbaren<br />

Werte finden Sie unter der URL http://www.php.net/manual/en/ini.<br />

php#ini.list. Alle Einstellungen, die dort mit PHP_INI_ALL oder PHP_<br />

INI_PERDIR gekennzeichnet sind, können mithilfe der Einstellungen<br />

in der Datei .htaccess manipuliert werden. Über dieses Verfahren können<br />

Sie beispielsweise die Limits für den maximal von PHP belegten<br />

Hauptspeicher kurzfristig erhöhen oder größere Uploads als normalerweise<br />

vorgegeben erlauben.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!