Dieses Buch stellt Programmiermethoden in der Linux-Umgebung vor, einschließlich Linux-Systembefehlen, Shell-Skripten, Programmiersprachen (Gawk, Perl), Systemkernel, Sicherheitssystem, X Window usw. Es ist reich an Inhalten und umfassend in der Diskussion , das alle Aspekte des Linux-Systems abdeckt. Die mit diesem Buch gelieferte CD enthält die neueste Version des RedHat-Linux-Systems und die Installationsmethode sowie eine große Menge Programmcode in diesem Buch, was das Lesen erheblich erleichtert und eine umfassende Referenz für Techniker bietet, die es verwenden und verwenden werden Linux-Systeme.
Inhalt Vorwort Kapitel 1 Einführung in das Linux-System Kapitel 1 Einführung in Linux…1
1.1 Der Ursprung von Linux 1
1.2 Das GNU-Projekt 1 der Free Software Foundation
1.3 Linux-Aussprache 2
1.4 Funktionen von Linux 2
1.5 Grundlegende Hardwareanforderungen 3
1.6 So erhalten Sie Linux 3
1.6.1 Laden Sie Linux 3 aus dem Internet herunter
1.6.2 Bezug von Linux 3 von CD
1.7 Linux-bezogene Websites und News-Diskussionsgruppen 6
1.8 Nachteile von Linux 7
Kapitel 2 Shell und allgemeine Befehle 8
2.1 An- und Abmelden8
2.2 Shell des Linux-Systems 8
2.3 Allgemeine Shell-Befehle 9
2.3.1 Kontopasswort ändern 9
2.3.2 Online-Hilfe 9
2.3.3 Remote-Anmeldung 9
2.3.4 Datei- oder Verzeichnisverarbeitung 9
2.3.5 Arbeitsverzeichnis ändern 10
2.3.6 Datei 10 kopieren
2.3.7 Datei- und Verzeichnisnamen verschieben oder ändern 10
2.3.8 Ein neues Verzeichnis erstellen10
2.3.9 Verzeichnis löschen 11
2.3.10 Dateien löschen 11
2.3.11 Den aktuellen Verzeichnisspeicherort auflisten 11
2.3.12 Dateiinhalt anzeigen 11
2.3.13 Dateiinhalte nach Seiten anzeigen 11
2.3.14 Überprüfen Sie den vom Verzeichnis 11 belegten Speicherplatz
2.3.15 Dateiübertragung 11
2.3.16 Dateiberechtigungen festlegen 12
2.3.17 Überprüfen Sie den Namen der Arbeitsgruppe, zu der Sie gehören13
2.3.18 Ändern des Datei- oder Verzeichnis-Arbeitsgruppeneigentums 13
2.3.19 Ändern Sie den Zeitpunkt der letzten Änderung einer Datei oder eines Verzeichnisses13
2.3.20 Links zu Dateien 13
2.3.21 Suche nach Zeichenfolgen in Dateien 14
2.3.22 Den Pfad einer Datei oder eines Befehls durchsuchen 14
2.3.23 Vergleichen des Inhalts von Dateien oder Verzeichnissen14
2.3.24 Dateiausdruck 14
2.3.25 Drucken allgemeiner Dokumente 14
2.3.26 Drucken von troff-Dateien 14
2.3.27 Druckersteuerbefehl 14
2.3.28 Prozesskontrolle 15
2.3.29 Shell-Variable 16
2.3.30 Umgebungsvariablen 16
2.3.31 Alias 16
2.3.32 Historische Befehle 17
2.3.33 Dateikomprimierung 17
2.3.34 Verwendung von Pipeline-Befehlen 17
2.3.35 Ein-/Ausgabesteuerung 18
2.3.36 Benutzer im System anzeigen 18
2.3.37 Benutzernamen ändern18
2.3.38 Benutzername 18 anzeigen
2.3.39 Benutzer aller Workstations auf dem aktuellen System anzeigen 19
2.3.40 Chatten mit einem Benutzer auf einer Workstation 19
2.3.41 Überprüfen Sie, ob das Remote-System normal ist 19
2.3.42 Einführung in die Nutzung von E-Mail 19
Kapitel 3 Netzwerkfunktionen von Linux-Systemen 21
3.1 Von Linux 21 unterstützte Netzwerkprotokolle
3.1.1 TCP/IP 21
3.1.2 TCP/IP-Version 6 21
3.1.3 IPX/SPX 21
3.1.4 AppleTalk Protocol Suite 21
3.1.5 Wide Area Network 22
3.1.6 ISDN 22
3.1.7 PPP, SLIP und PLIP 22
3.1.8 Amateurfunk 22
3.1.9 Geldautomat 22
3.2 Dateifreigabe und Druckfreigabe unter Linux-System 22
3.2.1 Machintosh-Umgebung 22
3.2.2 Windows-Umgebung 22
3.2.3 Novell-Umgebung 23
3.2.4 UNIX-Umgebung 23
3.3 Internet-/Intranet-Funktionen in Linux-Systemen 23
3.3.1 E-Mail 23
3.3.2 Webserver 24
3.3.3 Webbrowser 24
3.3.4 FTP-Server und -Client 24
3.3.5 Nachrichtendienst 24
3.3.6 Domain Name System 24
3.3.7 DHCP und Bootp 24
3.3.8 NIS 24
3.4 Remote-Ausführung von Anwendungen unter Linux-System 24
3.4.1 Telnet 25
3.4.2 Fernbefehle 25
3.4.3 X Fenster 25
3.5 Netzwerkverbindungsfunktion des Linux-Systems 25
3.5.1 Router 25
3.5.2 Brücke 25
3.5.3 IP-Masquerading 25
3.5.4 IP-Statistik 26
3.5.5 IP-Aliase 26
3.5.6 Durchflussbegrenzer 26
3.5.7 Firewall 26
3.5.8 Port-Download 26
3.5.9 Lastverteilung 26
3.5.10 EQL 27
3.5.11 Proxyserver 27
3.5.12 Dial-on-Demand 27
3.5.13 Pipes, Mobile IP und Virtual Personal Networks 27
3.6 Netzwerkmanagement in Linux-Systemen 27
3.6.1 Netzwerkverwaltungsanwendungen unter Linux-System 27
3.6.2 SNMP 28
3.7 Unternehmens-Linux-Netzwerk 28
3.7.1 Hochverfügbarkeit 28
3.7.2 RAID 28
3.7.3 Redundante Netzwerke 28
Kapitel 4 Einführung in die Linux-Systemverwaltung 29
4.1 Root-Konto 29
4.2 Starten und Herunterfahren des Systems 29
4.2.1 Booten von Diskette 29
4.2.2 Beginnend mit LILO 29
4.2.3 Herunterfahren des Linux-Systems 30
4.3 Mounten des Dateisystems 30
4.3.1 Diskette 30 einhängen
4.3.2 Neues Dateisystem erstellen 30
4.3.3 Unmounten des Dateisystems 31
4.4 Überprüfung des Dateisystems 31
4.5 Dateien als Auslagerungsbereiche nutzen 31
4.6 System- und Dateisicherung 32
4.7 Einrichten des Systems 33
4.7.1 Systemnamen 33 festlegen
4.7.2 Verwendung der Wartungsdiskette 33
4.7.3 Passwort des Root-Kontos zurücksetzen 33
4.7.4 Anmeldeinformationen festlegen 33
Teil 2 Linux High-Level Language und Management-Programmierung Kapitel 5 Shell-Programmierung 35
5.1 Shells erstellen und ausführen 35
5.1.1 Shell erstellen 35
5.1.2 Ausführen der Shell 35
5.2 Shell-Variablen verwenden36
5.2.1 Zuweisen von Werten zu Variablen 36
5.2.2 Den Wert einer Variablen lesen 37
5.2.3 Positionsvariablen und andere Systemvariablen 37
5.2.4 Die Rolle von Anführungszeichen 37
5.3 Numerische Bedienbefehle 38
5.4 Bedingter Ausdruck 40
5.4.1 wenn Ausdruck 40
5.4.2 Fallausdruck 41
5.5 Schleifenanweisung 42
5.5.1 für Aussage 43
5.5.2 while-Anweisung 43
5.5.3 bis Aussage 44
5.6 Schaltbefehl 44
5.7 Select-Anweisung 45
5.8 Wiederholen Sie Aussage 46
5.9 Unterfunktion 46
Kapitel 6 Gawk-Sprachprogrammierung 48
6.1 Hauptfunktionen von gawk 48
6.2 So führen Sie das Gawk-Programm aus 48
6.3 Dateien, Aufzeichnungen und Felder 48
6.4 Muster und Aktionen 49
6.5 Vergleichsoperationen und numerische Operationen 50
6.6 Interne Funktionen 50
6.6.1 Zufallszahlen und mathematische Funktionen 51
6.6.2 Stringinterne Funktionen 51
6.6.3 Interne Funktionen von Ein- und Ausgang 52
6.7 Strings und Zahlen52
6.8 Formatierte Ausgabe 52
6.9 Feldtrennzeichen ändern 54
6.10 Metazeichen 54
6.11 Aufruf des Gawk-Programms 55
6.12 ANFANG und ENDE 55
6.13 Variable 56
6.14 Integrierte Variablen 56
6.15 Kontrollstruktur 57
6.15.1 wenn Ausdruck 57
6.15.2 while-Schleife 57
6.15.3 für Schleife 58
6.15.4 weiter und Ausgang 58
6.16 Array 58
6.17 Benutzerdefinierte Funktionen 58
6.18 Mehrere Beispiele 59
Kapitel 7 Perl-Sprachprogrammierung 60
7.1 Was ist Perl 60?
7.2 Aktueller Status von Perl 60
7.3 Erster Versuch mit Perl 60
7.4 Perl-Variablen 60
7.4.1 Skalar 60
7.4.2 Array 63
7.4.3 Verwandte Arrays 65
7.5 Dateihandles und Dateioperationen 65
7.6 Schleifenstruktur 66
7.6.1 foreach-Schleife 66
7.6.2 Beurteilungsvorgang 66
7.6.3 für Schleife 67
7.6.4 while- und Until-Schleifen 67
7.7 Bedingte Struktur 67
7.8 Zeichenübereinstimmung 68
7.9 Ersatz und Übersetzung 69
7.9.1 Austausch 69
7.9.2 Übersetzung 70
7.10 Teilprozess 70
7.10.1 Definition des Teilprozesses 70
7.10.2 Parameter 70
7.10.3 Rückgabewert 70
7.11 Vollständiges Beispiel eines Perl-Programms 71
Teil 3 Linux-Systemkernanalyse Kapitel 8 Einführung in den Linux-Kernel 73
8.1 Systeminitialisierung 73
8.2 Systembetrieb 73
8.3 Verschiedene vom Kernel bereitgestellte Systemaufrufe 74
8.3.1 Grundkonzepte von Prozessen und grundlegende Datenstrukturen des Systems 74
8.3.2 Prozesse erzeugen und zerstören 74
8.3.3 Programm 74 ausführen
8.4 Zugriff auf Dateisysteme 75
Kapitel 9 Systemprozesse 76
9.1 Was ist ein Prozess 76
9.2 Struktur der Prozesse 76
9.3 Prozessplanung 78
9.4 Von Prozessen verwendete Dateien 79
9.5 Von Prozessen genutzter virtueller Speicher 80
9.6 Prozesse erstellen 81
9.7 Prozesszeit und Timer 81
9.7.1 Echtzeituhr 81
9.7.2 Virtuelle Uhr 81
9.7.3 Bildtakt 81
9.8 Programmausführung 82
9.8.1 ELF-Dateien 82
9.8.2 Skriptdateien 82
Kapitel 10 Speicherverwaltung 83
10.1 Die Rolle der Speicherverwaltung 83
10.2 Abstraktes Modell des virtuellen Speichers 83
10.3 Laden von Seiten bei Bedarf 84
10.4 Austausch 85
10.5 Gemeinsamer virtueller Speicher 85
10.6 Zugangskontrolle 85
10.7 Caching 86
10.7.1 Puffercache 86
10.7.2 Seitencache 86
10.7.3 Swap-Cache 86
10.7.4 Hardware-Cache 86
10.8 Systemseitentabelle 86
10.9 Seitenzuweisung und -freigabe 87
10.9.1 Belegung der Seiten 88
10.9.2 Freigabe der Seiten 88
10.10 Speicherzuordnung 88
10.11 Anforderungsseite 89
10.12 Seiten-Caching 89
10.13 Kernel-Swap-Daemon 90
Kapitel 11 Interprozesskommunikation 91
11.1 Signalmechanismus 91
11.2 Pipeline-Mechanismus 92
11.3 System V IPC-Mechanismus 93
11.3.1 Nachrichtenwarteschlange 93
11.3.2 Semaphore 94
11.3.3 Gemeinsamer Speicher 96
Kapitel 12 PCI 98
12.1 PCI-System 98
12.2 PCI-Adressraum 98
12.3 PCI-Setup-Header 99
12.4 PCI-E/A und PCI-Speicheradresse 100
12.5 PCI-ISA Bridge 100
12.6 PCI-PCI Bridge 100
12.7 PCI-Initialisierung 101
12.7.1 Kernel-Datenstruktur des Linux-Systems im Zusammenhang mit PCI 101
12.7.2 PCI-Gerätetreiber 102
12.7.3 PCI-BIOS-Funktionen 105
12.7.4 PCI-Korrektur 105
Kapitel 13 Interrupts und Interrupt-Behandlung 106
13.1 Unterbrechungen 106
13.2 Programmierbarer Interrupt-Controller 106
13.3 Initialisierung der Datenstruktur für die Interrupt-Verarbeitung 107
13.4 Interrupt-Behandlung 108
Kapitel 14 Gerätetreiber 109
14.1 Verwaltung von Hardwaregeräten 109
14.2 Polling und Interrupts 110
14.3 Direkter Speicherzugriff 110
14.4 Speicher 111
14.5 Schnittstelle zwischen Gerätetreiber und Kernel 111
14.5.1 Zeichengeräte 112
14.5.2 Geräte blockieren 113
14.6 Festplatte 113
14.6.1 IDE-Festplatte 115
14.6.2 Initialisierung des IDE-Festplattensubsystems 115
14.6.3 SCSI-Festplatte 115
14.6.4 Initialisierung des SCSI-Festplattensubsystems 116
14.6.5 Übergeben von Blockgeräteanforderungen 118
14.7 Netzwerkausrüstung 118
14.7.1 Dateiname des Netzwerkgeräts 118
14.7.2 Businformationen 118
14.7.3 Netzwerkschnittstellen-Tags 119
14.7.4 Protokollinformationen 119
14.7.5 Netzwerkgeräte initialisieren 119
Kapitel 15 Dateisysteme 121
15.1 Übersicht über das Linux-Dateisystem 121
15.2 ext2-Dateisystem 122
15.2.1 Indexknoten von ext2 122
15.2.2 ext2 Superblock 124
15.2.3 Ext2-Datenblockgruppendeskriptor 124
15.2.4 Verzeichnisse in ext2 125
15.2.5 Dateien in einem ext2-Dateisystem finden 125
15.2.6 Ändern der Dateigröße im ext2-Dateisystem 126
15.3 VFS 127
15.3.1 VFS-Superblock 128
15.3.2 VFS-Inode 129
15.3.3 Registrieren des Dateisystems 129
15.3.4 Mounten des Dateisystems 130
15.3.5 Dateien in VFS 131 finden
15.3.6 Dateisystem rückgängig machen 131
15.3.7 VFS-Inode-Cache 132
15.3.8 VFS-Verzeichnis-Caching 132
15.4 Puffer-Caching 133
15.5 /proc-Dateisystem 135
Kapitel 16 Netzwerksysteme 136
16.1 Einführung in das TCP/IP-Netzwerk 136
16.2 Layering von TCP/IP-Netzwerken 137
16.3 BSD-Sockel 138
16.4 INET-Socket-Schicht 140
16.4.1 Erstellen eines BSD-Sockets 141
16.4.2 Angabe einer Adresse für den INET BSD-Socket 141
16.4.3 Erstellen von Verbindungen auf INET BSD-Sockets 142
16.4.4 Abhören am INET BSD-Socket 142
16.4.5 Verbindungsanfragen empfangen 143
16.5 IP-Schicht 143
16.5.1 Socket-Puffer 143
16.5.2 IP-Pakete empfangen 144
16.5.3 IP-Pakete versenden 144
16.5.4 Datenfragmentierung 144
16.6 Adressauflösungsprotokoll 145
Kapitel 17 Systemkernmechanismus 147
17.1 Verarbeitung der unteren Hälfte 147
17.2 Aufgabenwarteschlange 148
17.3 Timer 149
17.4 Warteschlange 149
17,5 Semaphor 150
Teil 4 Fortgeschrittene Programmierung von Linux-Systemen Kapitel 18 Linux-Kernel-Modulprogrammierung 151
18.1 Ein einfaches Programm Hello World 151
18.2 Gerätedateien 152
18.3 /proc-Dateisystem 156
18.4 Mit /proc 158 eingeben
18.5 Kommunikation mit Gerätedateien 162
18.6 Startparameter 169
18.7 Systemaufrufe 170
18.8 Sperrvorgänge 172
18.9 printk 177 austauschen
18.10 Aufgaben planen 178
Kapitel 19 Programmierung für Prozesskommunikation 181
19.1 Einführung in die Interprozesskommunikation 181
19.2 Halbduplex-UNIX-Pipes 181
19.2.1 Grundbegriffe 181
19.2.2 Pipelines mit C-Sprache erstellen 182
19.2.3 Eine einfache Möglichkeit, eine Pipeline zu erstellen 185
19.2.4 Automatisierung mit Pipes 187
19.2.5 Was beim Einsatz von Halbduplex-Pipes zu beachten ist 188
19.3 Benannte Pipes 188
19.3.1 Grundbegriffe 188
19.3.2 FIFO 188 erstellen
19.3.3 FIFO-Betrieb 189
19.3.4 FIFO-Blockierung 190
19.3.5 SIGPIPE-Signal 190
19.4 System V IPC 190
19.4.1 Grundbegriffe 190
19.4.2 Grundkonzepte der Nachrichtenwarteschlange 191
19.4.3 Systemaufruf msgget() 194
19.4.4 Systemaufruf msgsnd() 195
19.4.5 Systemaufruf msgctl() 197
19.4.6 Eine Instanz von msgtool 199
19.5 Programmierung mit Semaphoren 201
19.5.1 Grundbegriffe 201
19.5.2 Systemaufruf semget() 202
19.5.3 Systemaufruf semop() 203
19.5.4 Systemaufruf semctl() 204
19.5.5 Beispiele für die Verwendung von Semaphor-Sets: semtool 205
19.6 Gemeinsamer Speicher 209
19.6.1 Grundbegriffe 209
19.6.2 Systeminterne Benutzerdatenstruktur
shmid_ds 209
19.6.3 Systemaufruf shmget() 210
19.6.4 Systemaufruf shmat() 211
19.6.5 Systemaufruf shmctl() 211
19.6.6 Systemaufruf shmdt() 212
19.6.7 Beispiele für die Verwendung von Shared Memory: shmtool 212
Kapitel 20 Erweiterte Thread-Programmierung 215
20.1 Das Konzept und die Verwendung von Threads 215
20.2 Ein einfaches Beispiel 215
20.3 Thread-Synchronisation 217
20.4 Verwendung des Semaphore Coordinators 218
20.5 Implementierung von Semaphor 220
20.5.1 Semaphore.h 220
20.5.2 Semaphore.c 221
Kapitel 21 Linux-Systemnetzwerkprogrammierung 225
21.1 Was ist ein Sockel 225?
21.2 Zwei Arten von Internet-Steckdosen 225
21.3 Netzwerkprotokoll-Schichtung 225
21.4 Datenstrukturen 225
21.5 IP-Adressen und deren Verwendung 226
21.5.1 socket() 226
21.5.2 bind() 226
21.5.3 connect() 227
21.5.4 listen() 228
21.5.5 akzeptieren() 228
21.5.6 send() und recv() 229
21.5.7 sendto() und recvfrom() 230
21.5.8 close() und Shutdown() 230
21.5.9 getpeername() 231
21.5.10 gethostname() 231
21.6 DNS 231
21.7 Client/Server-Modell 232
21.8 Einfaches Daten-Streaming-Serverprogramm 232
21.9 Ein einfaches Streaming-Client-Programm 234
21.10 Datagramm-Sockel 235
21.11 Sperrung 237
Kapitel 22 Linux-I/O-Port-Programmierung 240
22.1 So verwenden Sie den E/A-Port 240 in der C-Sprache
22.1.1 Allgemeine Methoden 240
22.1.2 Eine weitere Alternative: /dev/port 241
22.2 Hardware-Interrupts und DMA-Zugriff 241
22.3 Hochgenaue Zeit 241
22.3.1 Verzögerungszeit 241
22.3.2 Zeitmessung 243
22.4 Verwendung anderer Programmiersprachen 243
22.5 Einige nützliche I/O-Ports 243
22.5.1 Paralleler Port 243
22.5.2 Game-Port 244
22.5.3 Serieller Port 245
Teil 5 Linux-Systemsicherheitsanalyse Kapitel 23 Systemadministratorsicherheit 247
23.1 Sicherheitsmanagement 247
23.2 Superuser 247
23.3 Dateisystemsicherheit 247
23.3.1 Übersicht über das Linux-Dateisystem 247
23.3.2 Gerätedateien 248
23.3.3 /etc/mknod-Befehl 249
23.3.4 Sicherheitsüberlegungen 249
23.3.5 Befehl 250 finden
23.3.6 sicheres Programm 250
23.3.7 ncheck-Befehl 250
23.3.8 Dateisysteme installieren und entfernen 250
23.3.9 Systemverzeichnisse und -dateien 251
23.4 Programme, die als Root ausgeführt werden 251
23.4.1 Starten des Systems 251
23.4.2 Init-Prozess 251
23.4.3 Mehrbenutzer 252 eingeben
23.4.4 Shutdown-Befehl 252
23.4.5 System V Cron-Programm 252
23.4.6 Cron-Programme nach System V Version 252
23.4.7 /etc/profile 253
23.5 /etc/passwd-Datei 253
23.5.1 Passwortalterung 253
23.5.2 UID und GID 254
23.6 /etc/group-Datei 254
23.7 Benutzer hinzufügen, löschen und verschieben 254
23.7.1 Benutzer hinzufügen 254
23.7.2 Benutzer 255 löschen
23.7.3 Benutzer auf ein anderes System verschieben 255
23.8 Sicherheitsüberprüfung 255
23.8.1 Buchhaltung 255
23.8.2 Weitere Prüfbefehle 256
23.8.3 Probleme mit Sicherheitsinspektionsprozeduren 256
23.8.4 Was zu tun ist, nachdem das System undicht geworden ist 257
23.9 Eingeschränkte Umgebungen 258
23.9.1 Eingeschränkte Bereiche 258
23.9.2 Verwendung von chroot() zum Einschränken von Benutzern 258
23.10 Sicherheit kleiner Systeme 259
23.11 Physische Sicherheit 259
23.12 Benutzerbewusstsein 260
23.13 Bewusstsein des Systemadministrators 261
23.13.1 Sicherstellung der persönlichen Anmeldungen von Systemadministratoren 261
23.13.2 Systeme sicher halten 261
Kapitel 24 Systemprogrammierersicherheit 263
24.1 Systemunterprogramme 263
24.1.1 I/O-Unterprogramme 263
24.1.2 Prozesssteuerung 263
24.1.3 Dateiattribute 264
24.1.4 UID- und GID-Verarbeitung 265
24.2 Standard-C-Bibliothek 265
24.2.1 Standard-E/A 265
24.2.2 Verarbeitung von /etc/passwd 266
24.2.3 /etc/group-Verarbeitung 267
24.2.4 Verschlüsselungsunterprogramm 268
24.2.5 Ausführen der Shell 268
24.3 Sichere C-Programme schreiben 268
24.3.1 Zu berücksichtigende Sicherheitsaspekte268
24.3.2 SUID/SGID-Programmrichtlinien 269
24.3.3 Methoden zum Kompilieren und Installieren von SUID/SGID-Programmen 269
24.4 Design des Root-Benutzerprogramms 270
Kapitel 25 Netzwerksicherheit von Linux-Systemen 272
25.1 UUCP-Systemübersicht 272
25.1.1 UUCP-Befehle 272
25.1.2 Uux-Befehle 272
25.1.3 Uucico-Programm 273
25.1.4 uuxqt-Programm 273
25.2 Sicherheitsprobleme von UUCP 273
25.2.1 USERFILE-Datei 273
25.2.2 L.cmds-Datei 274
25.2.3 uucp-Login 274
25.2.4 Von uucp 274 verwendete Dateien und Verzeichnisse
25,3 HONEYDANBER UUCP 275
25.3.1 Unterschiede zwischen HONEYDANBER UUCP und dem alten UUCP 275
25.3.2 Regeln für Anmeldenamen 276
25.3.3 MASCHINENregeln 277
25.3.4 Kombination von MACHINE und LOGNAME
Regel 278
25.3.5 uucheck-Befehl 278
25.3.6 Gateway 278
25.3.7 Überprüfung der Anmeldedatei 279
25.4 Andere Netzwerke 279
25.4.1 Remote-Job-Login 279
25.4.2 NSC-Netzwerksystem 280
25.5 Kommunikationssicherheit 280
25.5.1 Physische Sicherheit 280
25.5.2 Verschlüsselung 281
25.5.3 Authentifizierung der Benutzeridentität 282
25.6 Netzwerksicherheit des SUN OS-Systems 283
25.6.1 NFS 283 sichern
25.6.2 NFS-Sicherheitslücken 284
25.6.3 Remoteprozeduraufrufauthentifizierung 284
25.6.4 Linux-Authentifizierungsmechanismus 284
25.6.5 DES-Authentifizierungssystem 285
25.6.6 Kodierung öffentlicher Schlüsselwörter 286
25.6.7 Benennung von Netzwerkeinheiten 286
25.6.8 Anwendung des DES-Identifikationssystems 287
25.6.9 Verbleibende Sicherheitsprobleme 287
25.6.10 Leistung 288
25.6.11 Probleme durch Startup- und Setuid-Programme 288
25.6.12 Zusammenfassung 289
Kapitel 26 Benutzersicherheit von Linux-Systemen 290
26.1 Passwortsicherheit 290
26.2 Dateiberechtigungen 290
26.3 Verzeichnislizenzierung 291
26.4 umask-Befehl 291
26.5 Benutzer-ID- und Gruppenbenutzer-ID-Berechtigungen festlegen 291
26,6 cp mv ln und cpio-Befehle 291
26.7 su- und newgrp-Befehle 292
26.7.1 su-Befehl 292
26.7.2 newgrp-Befehl 292
26.8 Dateiverschlüsselung 292
26.9 Sonstige Sicherheitsprobleme 293
26.9.1 .profile-Datei des Benutzers 293
26.9.2 ls -a 293
26.9.3 .exrc-Dateien 293
26.9.4 Temporäre Dateien und Verzeichnisse 293
26.9.5 UUCP und andere Netzwerke 293
26.9.6 Trojanisches Pferd 294
26.9.7 Lockvogel 294
26.9.8 Computerviren 294
26.9.9 Um das Terminal zu verlassen, müssen Sie angemeldet sein294
26.9.10 Intelligentes Terminal 294
26.9.11 Trennen vom System 294
26.9.12 cu-Befehl 295
26.10 Tipps zur Sicherheit Ihres Kontos 295
Teil Sechs: Interne Struktur und Verwendung des X-Window-Systems Kapitel 27 Grundkenntnisse des X-Window-Systems 297
27.1 Einführung in das X-Window-System 297
27.1.1 Eigenschaften von X 297
27.1.2 Was ist ein Fenstersystem 298
27.1.3 Geschichte der X-Entwicklung 299
27.1.4 Produkt von X 299
27,1,5 x 299, veröffentlicht vom MIT
27.2 Grundaufbau von X 302
27.2.1 Grundelemente von X 303
27.2.2 Wie Serviceprogramme und Clientprogramme interagieren und kommunizieren 304
27.2.3 X’s Netzwerkübersicht 306
27.3 Überblick über X 307 aus Sicht der Benutzeroberfläche
27.3.1 Verwaltungsschnittstelle: Window Manager 307
27.3.2 Anwendungsschnittstellen und Toolboxen 309
27.3.3 Andere Systemperspektiven 309
27.4 Terminologie und Notation 310
27.4.1 Terminologie 310
27.4.2 Symbole 311
27.5 X 312 starten und herunterfahren
27.5.1 X 312 starten
27.5.2 Möglichkeiten zur Ausführung des X-Programms 313
27.5.3 X 314 schließen
27.6 Grundlagen des Fenstermanagers – uwm 315
27.6.1 Was ist ein Fenstermanager315
27.6.2 Starten von uwm 315
27.6.3 Grundlegende Fensteroperationen – uwm
Menü 315
27.6.4 Fenster verschieben 316
27.6.5 Größenänderung von Fenstern 316
27.6.6 Neues Fenster erstellen 316
27.6.7 Bildschirmplatz verwalten 318
27.6.8 Anwendung Windows 320 abbrechen
27.6.9 Andere Möglichkeiten zum Aktivieren des UWM-Menüs 320
27.7 Netzwerkgeräte mit x 320
27.7.1 Remote-Terminal angeben – Anzeige
Option 321
27.7.2 Praktischer Einsatz von Fernanzeigen 322
27.7.3 Zugriffsmonitore steuern – xhost 322
27.8 Terminalemulator – detaillierte Einführung in xterm 323
27.8.1 Auswählen von xterm-Funktionen – Menü- und Befehlszeilenoptionen 323
27.8.2 Scrollen des xterm-Bildschirms 324
27.8.3 Aufzeichnung des Interaktionsprozesses mit dem Terminal – Aufzeichnungen schreiben 325
27.8.4 Text ausschneiden 325
27.8.5 Verwendung von Tektronix-Simulationsfunktionen 326
27.8.6 Verschiedene Schriftarten verwenden 327
27.8.7 Verwendung von Farbe 327
27.8.8 Andere xterm-Optionen 327
27.8.9 Konfigurieren der Terminaltastatur 328
Kapitel 28 Dienstprogramme und Tools 329
28.1 Dienstprogramme 329
28.2 Bildschirmbilder speichern, anzeigen und drucken 330
28.3 Anwendungen mit X 332
28.3.1 Texteditor – Xedit 333
28.3.2 Mail-/Messaging-Systeme – xmh 336
28.4 Beispiele und Spielprogramme 336
28.4.1 Einen Weg durch ein zufälliges Labyrinth finden – Labyrinth 336
28.4.2 Das große Auge, das als Mauszeiger dient –
xeyes 336
28.4.3 Weisheitsbrettspiel – Rätsel 337
28.4.4 Drucken Sie ein großes X-Logo – xlogo 337
28.4.5 Springendes Polyeder – ico 337
28.4.6 Dynamische geometrische Muster – Muncher und
kariert 337
28.7 Programme zur Anzeige von Informationen und Status 337
28.7.1 Listen Sie die Merkmale von X-Dienstprogrammen auf –
xdpyinfo 338
28.7.2 Informationen über ein Fenster abrufen 338
28.7.3 Beobachtung des Ereignisses von X—xev 340
Kapitel 29 Anpassen des X-Window-Systems 341
29.1 Verwendung von X-Schriftarten und -Farben 341
29.1.1 Vorläufige Schriftarten 341
29.1.2 Schriftartenbenennung 342
29.1.3 Beobachten des Inhalts einer bestimmten Schriftart – xfd 343
29.1.4 Schriftarten und Positionen speichern 343
29.1.5 Beispiel: Hinzufügen einer neuen Schriftart zu Ihrem Serviceprogramm 345
29.1.6 Verwendung der Farbe von X 346
29.2 Grafiken definieren und verwenden 347
29.2.1 Systemgrafikbibliothek 347
29.2.2 Interaktive Grafikbearbeitung – Bitmap 347
29.2.3 Andere Möglichkeiten zum Bearbeiten von Grafiken 349
29.2.4 Anpassen des Root-Fensters – xsetroot 349
29.3 Standardoptionen für Anwendungen definieren –
Ressourcen 350
29.3.1 Was sind Ressourcen350
29.3.2 XToolkit 351
29.3.3 Ressourcen verwalten – Ressourcenmanager 353
29.3.4 Arten von Ressourcen – wie Werte angegeben werden 358
29.4 Tatsächlicher Ressourcenverbrauch 359
29.4.1 Wo werden Standardwerte für Ressourcen gespeichert 359
29.4.2 Standardwerte für Serviceprogramme speichern –
xrdb 363
29.4.3 Häufige Fehler und Korrekturen 366
29.5 Anpassen von Tastatur und Maus 367
29.5.1 Praktische Anwendung von Konvertierungen 368
29.5.2 Konvertierung – Formate und Regeln 374
29.5.3 Häufige Probleme bei Konvertierungsspezifikationen 377
29.6 Tastatur und Maus – Entsprechungen und Parameter 379
29.6.1 Tastatur- und Mauszuordnung – xmodmap 379
29.6.2 Parametereinstellungen für Tastatur und Maus – xset 382
29.7 Weitere Einführung und Anpassung von uwm 384
29.7.1 Neue Funktionen von uwm 384
29.7.2 Anpassen von uwm 386
29.8 Display Manager – xdm 390
29.8.1 Was zu tun ist 390
29.8.2 xdm 391
29.8.3 Weitere Informationen zu xdm 392
29.8.4 UWM-Konfiguration 395
Anhang A Einführung in die Gcc-Nutzung 396
Anhang B Installation des X-Window-Fenstersystems 410
Expandieren