Inhaltsverzeichnis - Strato
Inhaltsverzeichnis - Strato
Inhaltsverzeichnis - Strato
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.