Adi Kriegisch <adi@vrvis.at> UNIX Grundlagen Adi Kriegisch <adi@vrvis.at>
Adi Kriegisch <adi@vrvis.at> UNIX Grundlagen - Überblick Ablauf - Überblick Geschichte von UNIX UNIX-Konzepte Grundlagen im Umgang mit UNIX Verwenden einer Shell einfache Befehle bewegen im Netzwerk Fragen, Antworten und noch mehr Beispiele Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
Geschichte - Ein kurzer Abriss UNIX Grundlagen - Geschichte 1 von 3 Geschichte - Ein kurzer Abriss Vor UNIX: Batchsysteme Operator-Betrieb Vielstufige „Pipeline“ bis zu Ergebnissen Ziel I: Computer effizient nutzen Ziel II: Schnelles Abarbeiten der „Jobs“ => Nicht optimal Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
Geschichte - Ein kurzer Abriss UNIX Grundlagen - Geschichte 2 von 3 Geschichte - Ein kurzer Abriss 1969 - nicht nur eine sexuelle Revolution: Ken Thompson entwickelt erstes UNIX: Multi-User / Multi-Tasking Intelligente Speicherverwaltung Sicherheit auf Benutzerebene Benutzer arbeiten via Terminal Portierbarkeit eingeschränkt (PDP-7) Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
Geschichte - Ein kurzer Abriss UNIX Grundlagen - Geschichte 3 von 3 Geschichte - Ein kurzer Abriss 1971 - Der Beginn einer Erfolgsstory: Dennis Ritchie entwickelt C: UNIX vollständig in C Portierung auf PDP-11 User entwickeln Tools Open Source Community entsteht Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
Adi Kriegisch <adi@vrvis.at> UNIX Grundlagen - UNIX Konzepte 1 von 4 Konzepte Kriterien zur Einteilung von Betriebssystemen Management der Hardware Ressourcenverwaltung Dateisystem Verwaltung und Administration ... Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
Adi Kriegisch <adi@vrvis.at> UNIX Grundlagen - UNIX Konzepte 2 von 4 Konzepte - Hardware HAL - Hardware Abstraction Layer: Low-Level Treiber Hardware-spezifisch High-Level Management transparent Ladbare Kernelmodule (kext*) Gerätedateien (/dev) => Abstraktion und Transparenz Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
Konzepte - Ressourcenteilung UNIX Grundlagen - UNIX Konzepte 3 von 4 Konzepte - Ressourcenteilung Hardware intelligent nutzbar machen Umgang mit Prozessen (Multitasking) Prioritäten bei der Ausführung Speichermanagement Benutzerverwaltung (Multiuser) Dämonen verwalten die Hardware (CUPS) Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
Konzepte - Administration UNIX Grundlagen - UNIX Konzepte 4 von 4 Konzepte - Administration Wartung von Betriebssystemen UNIX verlangt wenig Wartung Fehler sind rekonstruierbar (Lösung!) Diagnose mittels Log-Dateien und Tools Wartbar über Netzwerk (Secure Shell) Benutzer- und Netzwerkwartung: durch NetInfo und LDAP sowohl graphisch als auch CLI Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
Adi Kriegisch <adi@vrvis.at> UNIX Grundlagen - Dateisystem 1 von 4 Dateisystem Sicherheit und Zugriffskontrolle „drwxr-xr-x“ - Permissions Reflektiert Benutzer/Gruppensicherheit Gegensatz: Access Control Lists (M$) Organisation der Daten und Programme UNIX-spezifisches Applespezifisches Internationalisierung Spezielle Features (Journaling) Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
Dateisystem - Sicherheit UNIX Grundlagen - Dateisystem 2 von 4 Dateisystem - Sicherheit „drwxr-xr-x“ - Permissions Zerlegung: d rwx r-x r-x Typ der Datei: „d“ - Directory „-“ - normale Datei „b“/„c“- Block/Character Device „l“ - (Sym-)Link „Verknüpfung“ Zugriffsberechtigungen für: Besitzer, Gruppe und alle Anderen Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
Dateisystem - Struktur UNIX Grundlagen - Dateisystem 3 von 4 Dateisystem - Struktur UNIX-Pfade: (vor Usern „versteckt“) usr, bin, etc, dev, opt, ... Apple-Pfade: Applications, Users, System, Library, ... Internationalisierung: Übersetzung von Verzeichnisnamen: Users: Benutzer, Applications: Programme Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
Dateisystem - Features UNIX Grundlagen - Dateisystem 4 von 4 Dateisystem - Features Vereinheitlichtes Schema: Alles unter „/“ Mount-Points für alles (meist /Volumes) Auch über Netzwerk (/Network/Servers) Dateisysteme transparent (hfs, iso, afs,...) Einbinden mittels „mount“ Journaling (ab 10.2.2) Konsistenz des Dateisystems sicherstellen Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
Adi Kriegisch <adi@vrvis.at> UNIX Grundlagen - Shell 1 von 4 Die Shell Interaktiver Befehlsempfänger Terminal, das Fenster - Shell, das Programm „Netzwerkfähig“ Eingabeaufforderung - Der „Prompt“: Last login: Sat Mar 7 15:02:03 on ttyp1 Welcome to Darwin [equinox:~] adi% Rechnername Pfad („~“ = Homeverzeichnis) Benutzername Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
Die Shell - Navigation (ls) UNIX Grundlagen - Shell 2 von 4 Die Shell - Navigation (ls) ls - Inhalt von Verzeichnissen: [equinox:~] adi% ls Desktop Movies Public Documents Music Send Registration Library Pictures Sites [equinox:~] adi% Optionen zu ls: -l long; Langes Format: drwx------ 4 adi users 136 Oct 4 2002 Desktop -a all; alle Dateien, auch versteckte (.) Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
Die Shell - Navigation (cd) UNIX Grundlagen - Shell 3 von 4 Die Shell - Navigation (cd) cd - Verzeichnis wechseln: [equinox:~] adi% cd /Users [equinox:/Users] adi% Absolute Pfade: /Users Relative Pfade: „.“ = aktuelles Verzeichnis „..“ = nächsthöheres Verzeichnis: [equinox:~] adi% cd .. Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
Adi Kriegisch <adi@vrvis.at> UNIX Grundlagen - Shell 4 von 4 Die Shell - Hilfe! „apropos“ - Befehle finden: [equinox:~] adi% apropos firewall ipfirewall(4) - IP packet filter and ... ipfw(8) - IP firewall and traffic ... [equinox:~] adi% „man“ - Hilfe zu Befehlen: [equinox:~] adi% man ipfw oder mit Angabe der Kategorie: [equinox:~] adi% man 8 ipfw Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
Adi Kriegisch <adi@vrvis.at> UNIX Grundlagen - UNIX und Apple UNIX und Apple Unterschiedliche Ansätze: UNIX ist schweigsam! „Keine Nachrichten sind gute Nachrichten!“ Zuhören lernen! Wegschmeißen ist keine Lösung... Unix-Community vs Apple-Community Nutzen der vorhandenen Ressourcen „Andere Sprache“ „Gefühl“ für Unix entwickeln Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
Adi Kriegisch <adi@vrvis.at> UNIX Grundlagen Fragen? Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
Adi Kriegisch <adi@vrvis.at> UNIX Grundlagen Pause! Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
Adi Kriegisch <adi@vrvis.at> UNIX Grundlagen - UNIX im Netzwerk 1 von 5 UNIX im Netzwerk Volle Netzwerkfähigkeit Serverdienste im Netzwerk (apache, sshd, ...) Diagnosetools: ping / traceroute Konfigurationstools: ifconfig / route Firewall: ipfw Anwendungen: Secure Shell (ssh), ftp, ... Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
UNIX im Netzwerk - Server UNIX Grundlagen - UNIX im Netzwerk 2 von 5 UNIX im Netzwerk - Server Alle Dienste laufen als Daemon z.B: apache (httpd), sshd, cupsd, inetd, ... Konfiguration: (Textdateien) /etc/httpd/httpd.conf /etc/inetd.conf /etc/sshd_config /etc/cups/cupsd.conf Nach Änderungen Dienst neu starten! => Einfache Wartung Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
UNIX im Netzwerk - Diagnose UNIX Grundlagen - UNIX im Netzwerk 3 von 5 UNIX im Netzwerk - Diagnose Hat Computer Verbindung zum Netzwerk? ping rechner / traceroute rechner Funktioniert Namensauflösung (DNS/hosts)? Rechner im internen Netzwerk in /etc/hosts Verbindungen zum eigenen Computer: netstat (-n) IP Adresse und Gateway feststellen ifconfig / route Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
UNIX im Netzwerk - Konfiguration UNIX Grundlagen - UNIX im Netzwerk 4 von 5 UNIX im Netzwerk - Konfiguration Einfache Konfiguration: IP-Adresse mit ifconfig Gateway mit route ifconfig en0 192.168.1.2 netmask 255.255.255.0 Gibt „en0“ die Adresse 192.168.1.2 route add default 192.168.1.1 Setzt das Gateway auf 192.168.1.1 netstat -r (-n) Zeigt die Routing-Tabellen Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
UNIX im Netzwerk - Advanced UNIX Grundlagen - UNIX im Netzwerk 5 von 5 UNIX im Netzwerk - Advanced IP-Firewalling mit ipfw Verwendung: ipfw list (Status anzeigen) ipfw add „rule“ (Regeln hinzufügen) ipfw del „nr“ (Regeln löschen) Beispiel: Sperren von Port 2222/UDP ipfw add deny udp from me to any 2222 Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
Adi Kriegisch <adi@vrvis.at> UNIX Grundlagen - UNIX und Apple II UNIX und Apple II Keine Angst vor vielen Zeilen Text! Informationsquellen: Befehle (netstat, ifconfig, ipfw, dmesg, ...) man/apropos! Log-Dateien /var/log/* Internet: BSD-Newsgroups Unix bietet Freiheit! Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
Adi Kriegisch <adi@vrvis.at> UNIX Grundlagen - Advanced UNIX 1 von 3 Advanced UNIX Pipelines - Befehle hintereinander Ausgabe in Datei umleiten Cron - Periodische Tasks automatisieren Suchen von Dateien (find/locate) In Dateien suchen (grep/cat) Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
Advanced UNIX - Pipelines UNIX Grundlagen - Advanced UNIX 2 von 3 Advanced UNIX - Pipelines Ausgabe eines Befehls als Eingabe: cat /var/log/system.log davon nur alle Zeilen mit „sudo“: | grep sudo dann noch die Ausgabe seitenweise: | more stdin, stdout, stderr umleiten <, >, >>, 2> Ausgabe in Datei (bash!) Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
Advanced UNIX - Crontab UNIX Grundlagen - Advanced UNIX 3 von 3 Advanced UNIX - Crontab crontab -l (crontab anzeigen) crontab -e (crontab bearbeiten: Editor vi) Crontabeintrag: * * * * * /bin/Befehl Minute: 0-59 Stunde: 0-23 Tag: 0-31 Monat: 1-12 (auch Namen möglich) Wochentag: 0-7 (auch Namen möglich) Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
Adi Kriegisch <adi@vrvis.at> UNIX Grundlagen Fragen? Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
Adi Kriegisch <adi@vrvis.at> UNIX Grundlagen - Themen Prozessmanagement (ps, kill, top) Netzwerktools (ssh, ftp, telnet, rsh) Dateisysteme einbinden (mount, umount) Links - Verknüpfungen (ln -s) Beispiele: Traffic-Zähler chmod/chown von Public-Verzeichnis Sperren von Ports; erweitertes Firewalling Shellscripts Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
Adi Kriegisch <adi@vrvis.at> UNIX Grundlagen Fragen? Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
Adi Kriegisch <adi@vrvis.at> UNIX Grundlagen Danke! Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
Adi Kriegisch <adi@vrvis.at> UNIX Grundlagen Pause! Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>
Adi Kriegisch <adi@vrvis.at> UNIX Grundlagen Adi Kriegisch <adi@vrvis.at> Adi Kriegisch <adi@vrvis.at>