Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
1 Einleitung
2 Die Installation
3 Erste Schritte
4 Linux als Workstation für Einsteiger
5 Der Kernel
6 Die Grundlagen aus Anwendersicht
7 Die Shell
8 Reguläre Ausdrücke
9 Konsolentools
10 Die Editoren
11 Shellskriptprogrammierung mit der bash
12 Die C-Shell
13 Benutzerverwaltung
14 Grundlegende Verwaltungsaufgaben
15 Netzwerkgrundlagen
16 Anwendersoftware für das Netzwerk
17 Netzwerkdienste
18 Mailserver unter Linux
19 LAMP
20 DNS-Server
21 Secure Shell
22 Die grafische Oberfläche
23 Window-Manager und Desktops
24 X11-Programme
25 Multimedia und Spiele
26 Prozesse und IPC
27 Bootstrap und Shutdown
28 Dateisysteme
29 Virtualisierung und Emulatoren
30 Softwareentwicklung
31 Crashkurs in C und Perl
32 Einführung in die Sicherheit
33 Netzwerksicherheit überwachen
A Lösungen zu den einzelnen Aufgaben
B Kommandoreferenz
C X11-InputDevices
D MBR
E Die Buch-DVDs
F Glossar
G Literatur
Stichwort

Download:
- ZIP, ca. 15,7 MB
Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Linux von Johannes Pl&ouml;tner, Steffen Wendzel
Das umfassende Handbuch
Buch: Linux

Linux
geb., mit 2 DVDs
1302 S., 39,90 Euro
Galileo Computing
ISBN 978-3-8362-1704-0
Pfeil 13 Benutzerverwaltung
  Pfeil 13.1 Benutzer in Unix
    Pfeil 13.1.1 UID und GID
    Pfeil 13.1.2 Die Datei /etc/passwd
    Pfeil 13.1.3 Die Shadowsuite
  Pfeil 13.2 Benutzer anlegen, ändern und löschen
    Pfeil 13.2.1 Benutzer anlegen
    Pfeil 13.2.2 Benutzer ändern
    Pfeil 13.2.3 Benutzer löschen
  Pfeil 13.3 Benutzer und Gruppen
    Pfeil 13.3.1 Gruppen anlegen
    Pfeil 13.3.2 Benutzer zu Gruppen hinzufügen
    Pfeil 13.3.3 Gruppenpasswörter und die Datei /etc/gshadow
    Pfeil 13.3.4 Gruppenadministratoren
    Pfeil 13.3.5 Gruppen löschen
  Pfeil 13.4 Als anderer Benutzer arbeiten
    Pfeil 13.4.1 Der Systemadministrator als User
    Pfeil 13.4.2 su
    Pfeil 13.4.3 sudo
    Pfeil 13.4.4 SetUID/SetGID
  Pfeil 13.5 NIS/NIS+
    Pfeil 13.5.1 Die Funktion
    Pfeil 13.5.2 Konfiguration der NIS-Clients
    Pfeil 13.5.3 Konfiguration des NIS-Servers
    Pfeil 13.5.4 Testen der Konfiguration
    Pfeil 13.5.5 Sicherheit
  Pfeil 13.6 LDAP
    Pfeil 13.6.1 So funktioniert es
    Pfeil 13.6.2 Einen LDAP-Server konfigurieren
    Pfeil 13.6.3 Einträge hinzufügen, verändern und löschen
    Pfeil 13.6.4 Die Benutzerverwaltung mit LDAP
  Pfeil 13.7 Zusammenfassung
  Pfeil 13.8 Aufgaben


Galileo Computing - Zum Seitenanfang

13.6 LDAP  Zur nächsten ÜberschriftZur vorigen Überschrift

In modernen Rechnernetzen und vor allem in heterogenen Umgebungen wird auch oft das Lightweight Directory Access Protocol (LDAP) eingesetzt. LDAP ist wie NIS ein Verzeichnisdienst, der jedoch nicht auf RPC basiert. Im Vergleich zu einer normalen relationalen SQL-Datenbank hat LDAP folgende Vorteile:

  • Optimiert auf Lesen
    LDAP ist für den lesenden Zugriff optimiert. Mit anderen Worten kann das Schreiben von Daten relativ lange dauern.
  • Erweiterte Suchfunktionen
    Um den lesenden Zugriff auf die Daten weiter zu optimieren, stellt LDAP verschiedene, sehr flexible Suchfunktionen zur Verfügung.
  • Erweiterbare Datenstrukturen
    LDAP erlaubt es, seine zugrunde liegenden Datenstrukturen – sogenannte Schemata – zu erweitern und so den Bedürfnissen des Dienstbetreibers gerecht zu werden.
  • Standardkompatibilität
    LDAP ist ein in verschiedenen RFCs spezifiziertes Protokoll, wodurch die Interoperabilität zwischen verschiedenen Implementierungen gewährleistet wird. [Hier besteht auch ein Gegensatz zu SQL: Zwar ist die SQL-Syntax auf verschiedenen Datenbanken fast gleich, jedoch gibt es Unterschiede bei komplexen Details wie Stored Procedures etc.]
  • Verteilte Daten
    Die Daten eines LDAP-Baums können im Netzwerk verteilt gespeichert werden. LDAP nutzt außerdem verschiedenste Replizierungstechniken, um die Daten im Netzwerk zu verteilen und vor allem konsistent zu halten. Außerdem ist LDAP so sehr gut skalierbar.

Flexible Datenbank

LDAP eignet sich nun aber nicht nur zur Speicherung von Benutzerdaten. Aufgrund der flexiblen Struktur und der Ausrichtung auf statische, selten veränderte Daten können jegliche Informationen in einem LDAP-Baum [Ein LDAP-Verzeichnisdienst ist hierarchisch aufgebaut und besitzt somit eine Baumstruktur: Er besteht aus einer Wurzel, einigen Verzweigungen und vielen Blättern.] gespeichert werden. Eine häufige Anwendung sind zum Beispiel Telefonlisten – es bietet sich an, auch weitere benutzerdefinierte Informationen in einer LDAP-Datenbank zu speichern, wenn man sie schon zur Benutzerverwaltung nutzt – oder auch eine Übersicht über verschiedene Rechner. Ein paar Beispiele für häufig in LDAP-Datenbanken gespeicherte Daten sind:

  • Benutzer und Gruppen
  • IP-Dienste und -Protokolle
  • NIS-Netzwerkgruppen
  • Boot-Informationen
  • Mountpunkte für Dateisysteme
  • IP-Hosts und -Netzwerke
  • RFC-822-konforme Mail-Aliase

Galileo Computing - Zum Seitenanfang

13.6.1 So funktioniert es  Zur nächsten ÜberschriftZur vorigen Überschrift

Bevor wir eine Beispielkonfiguration zur Benutzerverwaltung betrachten, wollen wir zuerst die Funktionsweise von LDAP anhand der OpenLDAP-Implementierung erläutern. OpenLDAP ist auf Linux und BSD standardmäßig verfügbar und kann auch auf anderen Unix-Systemen eingerichtet werden.

Ein eindeutiger Name

Ein Eintrag (engl. entry) in einem LDAP-Verzeichnis besteht aus Attributen (engl. attributes) und wird durch einen eindeutigen Namen (engl. distinguished name, dn) identifiziert.

cn=Sebastian,ou=members,dc=doomed-reality,dc=org

Listing 13.32  Beispiel für den distinguished name (dn) eines Eintrags

Welche Attribute ein Eintrag haben kann, wird von dessen Objektklasse(n) bestimmt. Diese Objektklassen sind wiederum in Schemata definiert. Dort ist festgelegt, wie die Attribute einer Objektklasse heißen, welche Werte zulässig sind und ob das Attribut notwendig oder optional ist. Jeder Eintrag in der Datenbank besteht dann aus den Attributen der Klassen dieses Eintrags.

Die Attribute eines Eintrags besitzen einen bestimmten Namen und entsprechend einen oder mehrere Werte. So steht zum Beispiel der Attributname cn als Abkürzung für common name und erlaubt als Argument eine normale Zeichenkette – im Regelfall den Namen einer Person. Im Gegensatz dazu steht mail für email-address und erlaubt eine Mail-Adresse der Form johannes.ploetner@gmx.de. Aber auch binäre Daten wie die Bilddaten eines Benutzers für das Feld jpegPhoto sind möglich.


Galileo Computing - Zum Seitenanfang

13.6.2 Einen LDAP-Server konfigurieren  Zur nächsten ÜberschriftZur vorigen Überschrift

Die Konfiguration eines LDAP-Servers beginnt mit der Definition der Wurzel des Verzeichnisbaums. Diese base dn wird als dc (engl. domain component) bezeichnet und setzt sich im Normalfall aus den Komponenten der Domain des zu verwaltenden Rechnernetzes zusammen. In der Konfigurationsdatei des OpenLDAP-Servers, der /etc/ldap/slapd.conf, sieht die Angabe dieses Suffixes wie folgt aus:

...
# Beispiel für die Domain doomed-reality.org
suffix          "dc=doomed-reality,dc=org"
...

Listing 13.33  Konfiguration der Wurzel des LDAP-Verzeichnisbaums

Attribute definieren

Außerdem wichtig für die Konfiguration eines LDAP-Servers sind die verwendeten Schemata. Die in den Schemadateien definierten Objektklassen beinhalten schließlich die möglichen und notwendigen Attribute für eine Objektklasse. Diese Schemata bindet man über eine include-Anweisung in derselben Konfigurationsdatei ein:

...
# Schema and objectClass definitions
include         /etc/ldap/schema/core.schema
include         /etc/ldap/schema/cosine.schema
include         /etc/ldap/schema/nis.schema
include         /etc/ldap/schema/inetorgperson.schema
include         /etc/ldap/schema/misc.schema
...

Listing 13.34  Einbindung der Schemata

Diese Schemata kann man nun beliebig erweitern und auch eigene Definitionen hier einbinden. Wir werden später ein Beispiel betrachten, bei dem wir eine Datei samba.schema einbinden, um so einem Samba-Server zu erlauben, Benutzerdaten auf unserem LDAP-Server zu speichern. Mit diesen Benutzerdaten können sich dann Anwender auf Windows-PCs einloggen und sich über Samba an einer NT-Domäne anmelden. Samba selbst prüft dann die Gültigkeit des Benutzername-/Passwort-Paares über LDAP.

Man darf dabei jedoch nicht vergessen, dass ein LDAP-Server in erster Linie eine Datenbank ist. Daher bietet der Server nur ein Interface – eben das Lightweight Directory Access Protocol – zum Zugriff auf die Daten. Zugreifen müssen entsprechende Programme nun jedoch selbst: Ein E-Mail-Client könnte zum Beispiel ein Adressbuch auf LDAP-Basis bereitstellen. Dazu bräuchte er nur die Attribute von Einträgen der Objektklasse inetOrgPerson (wie zum Beispiel das Attribut mail und das Attribut cn, das bei Personen den vollen Namen beinhaltet) auszulesen und über ein komfortables Interface bereitzustellen.

Dagegen könnte ein Login-Dienst wie SSH oder der normale Unix-Login das vom Benutzer eingegebene Passwort mit dem im userPassword gespeicherten Hashwert vergleichen und so entscheiden können, ob das Passwort richtig und der Login damit erfolgreich war.

Zugriffsrechte definieren

Um entsprechende Zugriffe zu kontrollieren, braucht man natürlich noch ein Rechtesystem, das Zugriffe auf Datensätze zulässt oder verweigert. Die Zugriffsrechte auf einzelne Datensätze und Funktionen werden ebenfalls in der /etc/ldap/slapd.conf konfiguriert:

access to attrs=userPassword
by dn="cn=admin,dc=doomed-reality,dc=org" write
by anonymous auth
by self write
by * none
access to *
by dn="cn=admin,dc=doomed-reality,dc=org" write
by * read

Listing 13.35  Beispiel für die Zugriffskontrolle

Der erste Block definiert hier den Zugriff auf das Attribut userPassword: Der Benutzer cn=admin,dc=doomed-reality,dc=org hat als Administrator Schreibrechte auf dieses Attribut. Im Gegensatz dazu hat ein anonymer, also noch nicht authentifizierter Nutzer das Recht, sich anzumelden. Ein User (self) darf sein eigenes Passwort noch ändern, alle anderen Zugriffe sind jedoch verboten. Als Nächstes wird der Zugriff auf alle anderen Elemente definiert: Wieder darf admin schreiben und der Rest der Welt nur lesen.

Natürlich gibt es zur Konfiguration eines LDAP-Servers noch viel mehr zu sagen. Gerade in größeren Netzwerken möchte man die anfallende Last vielleicht auf mehrere Server verteilen und daher den Datenbestand entweder replizieren oder erst zer- und dann verteilen. Prinzipiell kann man mit OpenLDAP und anderen LDAP-Implementierungen noch viel mehr machen, jedoch gehen diese Features deutlich über den Umfang dieses Linux-Buches hinaus. Für ein kleines Setup sollten die hier vermittelten Informationen jedoch ausreichen.


Galileo Computing - Zum Seitenanfang

13.6.3 Einträge hinzufügen, verändern und löschen  Zur nächsten ÜberschriftZur vorigen Überschrift

Für LDAP gibt es die verschiedensten Benutzerschnittstellen – vorstellen wollen wir Ihnen zwei: die Schnittstelle ldap-utils für die Kommandozeile und das Webinterface phpldapadmin. Das Webinterface ist dabei die intuitivere Variante der Bedienung: An der linken Seite kann man den Verzeichnisbaum durchsuchen und in jeder Ebene neue Elemente hinzufügen oder vorhandene Elemente zum Editieren oder Löschen aufrufen.

LDAP-Verzeichnis organisieren

Die Bedienung ist dabei selbsterklärend, sofern man das Prinzip von LDAP halbwegs verstanden hat. Möchte man nämlich einen neuen Eintrag in den Verzeichnisbaum einfügen, so wird man zuerst nach der Objektklasse des neuen Objekts gefragt. Möchte man seine Daten dabei in verschiedene Verzeichnisse gliedern, so wird man auf der ersten Ebene meist eine organisational unit (ou) anlegen wollen. Als Nächstes wird man nach den für die Objektklasse unbedingt notwendigen Attributen gefragt. Bei einer ou ist dies nur deren Name, bei der Objektklasse posixAccount sind das jedoch die wichtigen bekannten Daten wie der Benutzername, die UID/GID, das Home-Verzeichnis, die Shell.

Abbildung 13.2  Das Webinterface phpldapadmin

Das LDAP- Datenformat

Kommandozeilentools wie ldapmodify oder ldapadd bieten diesen Komfort nicht. Dort gibt man die Daten eines neuen Datensatzes im LDIF-Format (LDAP Data Interchange Format) an, einem einfachen, für Menschen lesbaren Textformat. Vergisst man ein notwendiges Attribut für einen neuen Eintrag, so kann dieser eben nicht eingefügt werden.

dn: uid=cdp_xe,ou=Mitglieder,dc=doomed-reality,dc=org
uid: cdp_xe
givenName: Steffen
sn: Wendzel
cn: Steffen Wendzel
userPassword: {SHA}s3SUjNlV4lEhEY4W4Uya7ut0sxE=
loginShell: /bin/bash
uidNumber: 2001
gidNumber: 100
homeDirectory: /home/cdp_xe
shadowMin: –1
shadowMax: 999999
shadowWarning: 7
shadowInactive: –1
shadowExpire: –1
shadowFlag: 0
objectClass: top
objectClass: person
objectClass: posixAccount
objectClass: shadowAccount
objectClass: inetOrgPerson

Listing 13.36  Ein vollständiges LDIF-Beispiel für einen Benutzereintrag

Bekannte Eigenschaften

Im obigen Beispiel kann man sehr gut sehen, dass für einen Eintrag der eindeutige Name (dn) gleichzeitig seinen Platz im Netz festlegt: Auf dem Server dc=doomed-reality,dc=org ist der Benutzer uid= cdp_xe unterhalb des Knotens ou=Mitglieder platziert. Des Weiteren ist ebenfalls sehr gut zu erkennen, dass der Eintrag mehreren Objektklassen angehört, deren Attribute ebenfalls mit sinnvollen Werten [Im Falle eines Benutzereintrags kennen Sie diese Felder natürlich bereits aus den Dateien /etc/passwd und /etc/shadow. Dabei wird auch bei LDAP das Passwort nicht im Klartext, sondern verschlüsselt abgespeichert.] belegt sind.

Speichert man diese Werte in einer Datei, so kann man mittels des Programms ldapadd den Datensatz auf dem Server wie folgt speichern:

# ldapadd -x -w pass -D "cn=admin,dc=..." -f new.ldif
adding new entry "uid=cdp_xe,ou=Mitglieder, dc=...org"

Listing 13.37  Einen Benutzer mit ldapadd hinzufügen

Dieser Aufruf loggt sich mit der Benutzerkennung cn=admin,dc= doomed-reality,dc=org und dem Passwort pass auf dem lokalen Server ohne eine geschützte Verbindung ein (-x, kann, falls keine Verschlüsselung verwendet wird, auch weggelassen werden). Die einzufügenden Daten finden sich schließlich in der Datei new.ldif.

Einträge verändern

Möchte man nun Einträge verändern, so nutzt man das Programm ldapmodify. Intern ist ldapadd im Übrigen auch nur ein Frontend zu ldapmodify mit dem Parameter -a. Zu unserem bekannten und einfachen LDIF-Format kommt nun noch die Aktion hinzu, die durch das Attribut changetype: definiert wird. Es gibt an, ob man Einträge hinzufügen [Diese Aktion wird beim Aufruf des Programms über ldapadd automatisch angenommen.] (add), verändern (modify) oder löschen (delete) will. Beim Ändern muss man zusätzlich über das Schlüsselwort replace: das zu ändernde Attribut angeben:

dn: uid=doomed,dc=doomed-reality,dc=org
changetype: modify
replace: uidNumber
uidNumber: 1000
-
add: mail
mail: johannes.ploetner@gmx.de
-
delete: jpegPhoto
-

Listing 13.38  Änderungen an einem Eintrag

In diesem Beispiel wird, wie unschwer zu erkennen ist, das Attribut uidNumber auf den Wert »1000« verändert, das Attribut mail mit dem entsprechenden Wert hinzugefügt und das Attribut jpegPhoto gelöscht. Die Änderung macht man nun ganz analog zu ldapadd wirksam:

# ldapmodify -x -w pass -D "cn=admin,dc=...,dc=org"

-f test.ldif
modifying entry "uid=doomed,ou=Mitglieder,dc=...=org"

Listing 13.39  Die Änderungen durchführen

Man muss sich also wieder auf dem Server einloggen und die Datei mit den Änderungen hochspielen. Als eine kurze Einführung in die Administration eines LDAP-Servers soll dies erst einmal genügen. Schließlich wollen wir in diesem Kapitel den Fokus auf die Benutzerverwaltung legen.


Galileo Computing - Zum Seitenanfang

13.6.4 Die Benutzerverwaltung mit LDAP  topZur vorigen Überschrift

Sie wissen nun, was ein LDAP-Server ist, wie die Grundlagen der Konfiguration aussehen und haben zwei Beispiele für dessen Administration kennengelernt. Ein wichtiger Punkt fehlt in unserer Betrachtung jedoch noch: Wie konfiguriert man einen Client, sodass der zur Authentifizierung nicht nur die lokalen /etc/passwd- und /etc/shadow-Dateien, sondern auch einen LDAP-Server nutzt?

PAM ...

Die Antwort hierfür lautet PAM (Pluggable Authentication Module). Eigentlich alle neueren Login-Dienste setzen auf PAM als Interface zur Verifikation von Benutzerauthentifizierungen auf. Vereinfacht gesagt nimmt PAM das eingegebene Passwort und nutzt intern verschiedenste Datenbanken und Dienste, um den Login zu bestätigen. Mit pam_ldap.so steht auch ein Plugin für den Support von LDAP bereit, sodass ein Login über diesen Dienst einfach zu konfigurieren ist.

Die Datei /etc/nsswitch.conf

Als Erstes müssen Sie die unterschiedlichen Varianten zur Authentifizierung festlegen und schließlich differenzieren, in welcher Reihenfolge diese abgearbeitet werden sollen. Diesen Zweck erfüllt die /etc/nsswitch.conf, die nicht nur für die Benutzerverwaltung den Zugriff auf bestimmte Daten über traditionelle Unix-Dateien, sondern auch verschiedene Netzwerkdienste koordiniert.

Möchte man bei einem Login zuerst die normalen Unix-Dateien und dann erst den LDAP-Server fragen, so sollte man die Datei wie folgt ändern:

passwd: files ldap
group:  files ldap
shadow: files ldap
...

Listing 13.40  Die angepasste /etc/nsswitch.conf-Datei

Mit dieser Änderung fügen Sie offensichtlich Support für LDAP hinzu, der aktiv wird, wenn ein Benutzername nicht in einer der normalen Dateien gefunden wurde. Oft findet man in der /etc/nsswitch.conf anstelle des files-Schlüsselworts das Wort compat: Dieses dient nur dazu, Benutzernamen, die mit einem + beginnen, wie früher üblich über NIS abzuwickeln – jedoch wird man in einem Netzwerk kaum LDAP und NIS parallel einsetzen, weshalb man ruhig auch files statt compat schreiben kann.

Diese Konfiguration regelt jedoch nur den Zugriff auf die Benutzerdaten über die Standardbibliothek glibc:

# getent passwd
root:x:0:0:root:/root:/bin/bash
...
cdp:x:2001:100:Steffen Wendzel:/home/cdp:/bin/bash

Listing 13.41  Alle bekannten Benutzer mit getent ausgeben

... und die glibc

So kann man sich zum Beispiel mit dem Befehl getent alle bekannten Benutzer anzeigen lassen. Nach der Änderung an der /etc/nsswitch.conf zeigt das Programm nicht nur alle Benutzer aus der /etc/passwd, sondern zusätzlich auch noch die auf dem LDAP-Server eingetragenen an. Die Login-Dienste via PAM müssen jedoch gesondert konfiguriert werden.

Die Konfiguration von PAM

Für jeden Dienst, der die PAM-Funktionalität in Anspruch nimmt, ist in der Regel eine eigene Konfigurationsdatei mit dem Namen des Dienstes im /etc/pam.d-Ver- zeichnis angelegt. Dort kann man dann verschiedene Einstellungen zu den unterschiedlichen Aktionen auth, account, password und session vornehmen.

Verschiedene Dienstklassen

Die Unterschiede sind dabei nicht besonders relevant: auth beschreibt zum Beispiel die Funktion, die Identität bestimmter Benutzer sicherzustellen, und ist damit sehr eng mit dem passwort-Dienst verbunden. Über account-Dienste kann überprüft werden, ob zum Beispiel das Passwort eines Benutzers abgelaufen ist oder ob dieser Berechtigungen für einen bestimmten Dienst hat. Analog umfasst der ses- sion-Dienst bestimmte Sitzungsdienste wie das Mounten des Home-Verzeichnisses.

Natürlich muss man nicht jede Datei editieren, die sich in diesem Verzeichnis befindet. Die meisten Anwender binden nur die folgenden Standardkonfigurationsdateien ein, die wie folgt zu editieren sind:

  • common-auth
auth sufficient pam_ldap.so
auth required pam_unix.so nullok use_first_pass

Listing 13.42  [Die Datei /etc/pam.d/common-auth]

  • common-account
account sufficient pam_ldap.so
account required pam_unix.so use_first_pass

Listing 13.43  [Die Datei /etc/pam.d/common-account]

  • common-session
session sufficient pam_ldap.so
session required pam_unix.so use_first_pass

Listing 13.44  [Die Datei /etc/pam.d/common-session]

  • common-password
password sufficient pam_ldap.so
password required pam_unix.so use_first_pass

Listing 13.45  [Die Datei /etc/pam.d/common-password]

Automatisches Home-Verzeichnis

Das Problem bei neuen LDAP-Benutzern ist meist, dass sie auf den einzelnen Maschinen noch kein Home-Verzeichnis haben. Jedoch hilft PAM auch in diesem Fall, da über eine entsprechende session-Direktive automatisch ein Home-Verzeichnis angelegt wird, wenn sich ein »wohnungsloser« Benutzer einloggt:

session required pam_mkhomedir.so  skel=/etc/skel

umask=0022

Listing 13.46  Automatisch ein Home-Verzeichnis anlegen

Mit diesen Änderungen ist unser einfaches LDAP-Setup schon komplett. Für weitere und ausführlichere Informationen sei an dieser Stelle auf das Internet (zum Beispiel die Webseite www.openldap.org) und auf die Vielzahl der Bücher verwiesen, die über LDAP geschrieben wurden.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






 <<   zurück
  Zum Katalog
Zum Katalog: Linux, Ausgabe 2011






Linux, Ausgabe 2011
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Linux-Server






 Linux-Server


Zum Katalog: Linux Hochverfügbarkeit






 Linux Hoch-
 verfügbarkeit


Zum Katalog: LPIC-1






 LPIC-1


Zum Katalog: Debian GNU/Linux






 Debian GNU/Linux


Zum Katalog: openSUSE 11.2






 openSUSE 11.2


Zum Katalog: Shell-Programmierung






 Shell-Programmierung


Zum Katalog: Ubuntu GNU/Linux






 Ubuntu GNU/Linux


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2011
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de