====== Administration ====== Warum kam es zu dem Problem? Welche Programme sind an dem Geschehen beteiligt? Was ist der Wortlaut der Fehlermeldungen? Wie heisst Deine Distribution? Warten Sie Bitte auf Rückfragen der Rettungsleitstelle. ===== Unterseiten ===== * [[linux:automatische installation|automatische Installation und Desktop-Management]] * [[linux:Befehle tricks]] * [[Verwaltungstools]] ===== Links ===== * [[http://www.heise.de/artikel-archiv/ct/2012/6/195/|Aufhelfen - Linux-Boot-Probleme erkennen und lösen]] * **[[http://www.sysadmin.com.au/whitepapers/troubleshooting-0100.pdf|sysadmin troubleshooting white paper]]** * [[http://www.thegeekstuff.com/2011/07/lazy-sysadmin/|12 Reasons Why Every Linux System Administrator Should be Lazy]] * [[http://beginlinux.com/index.php/server_training/serv_admin_m/serv_manual|Gliederung vom Server Management Manual]] * [[http://www.geocities.com/arndike/swol-09-supersys_part_1.html|Stop your fire-fighting, Part 1]] * [[http://polishlinux.org/console/|Linux Console Compendium]] * [[http://reallylinux.com/docs/admin.shtml|Linux Commands for Beginning Server Administrators]] * [[http://www.thmoritz.de/linux/befehle.php|Linux - Befehlsliste]] * [[http://www.galileocomputing.de/openbook/ubuntu/ubuntu24_002.htm#mjf379b1dba710d79d526572f66cbcf882|Befehlsreferenz Ubuntu Linux]] * [[http://de.linwiki.org/wiki/Linuxfibel|Linuxfibel]] * http://www.clever-linux.de/LinuxGrundlagen/glossar.htm * [[http://polishlinux.org/console/shell-terminal-console-%E2%80%94-the-basics/|Shell, terminal, console — the basics]] * [[http://polishlinux.org/console/file-management-in-linux/|File management in Linux]] * [[http://polishlinux.org/console/unix-pipes-streams-and-redirections-explained/|UNIX Pipes, Streams and Redirections Explained]] * [[http://polishlinux.org/console/regular-expressions-and-search-patterns/|Regular expressions and search patterns]] * [[http://polishlinux.org/console/system-and-enviromental-variables/|System and enviromental variables]] ==== Dokumente ==== * [[https://wiki.ubuntu.com/Training?action=AttachFile&do=get&target=student.pdf|Student Guide]] und [[https://wiki.ubuntu.com/Training?action=AttachFile&do=get&target=instructor.pdf|Instructor Guide]] umfassen jeweils rund 400 Seiten Anleitung und Hilfe für Ubuntu * [[http://debiananwenderhandbuch.de/|Debian GNU/Linux Anwenderhandbuch]] ===== Themen ===== * **Hilfe/Dokumentation** (man + Kategorien! [man man], info, apropos, whatis) tldp.org, lok. user groups, irc, foren, mailinglisten * [[http://linuxwiki.de/HardwareErkennung|Hardware-Erkennung]]: lsusb, lshal, lspci (lspci -knn), lshw * dmidecode: zeigt detaillierte Infos über CPU, Arbeitsspeicher durch den [[wpde>Direct Media Interface|DMI-Bus]] * kudzu: RedHat, Fedora * hwsetup: Knoppix * discover Debian Mandriva? * hwinfo SuSE * Harddrake Mandriva * HotPlug für hotplug-Geräte wie FireWire, USB usw. SATA-hotplug geht z.B. mit (host0, host1, ...):echo "- - -" > /sys/class/scsi_host/host0/scan * **[[Bootmanager und Bootprozess]],** [[Runlevel]] (init 1 bzw. heute sein symlink telinit, /etc/inittab), initrd * shutdown (init 0, halt, shutdown -h now oder +10 für 10min, -r = reboot, shutdown -c) [[server:Server zeitgesteuert herunterfahren]] * **[[linux:Dateisystemaufbau]]** ( /proc !) * **[[Partitionierung]]** * [[linux:bash#Umleitungen der Eingabe- und Ausgabe]], UNIX Pipes und Streams * **Devices** (LPI 1 S.153), Dateitypen (sockets, fifos, ...) * **[[Kernel]]** (Versionen, Branches , uname -a) * **[[Dateisysteme und Formatierung]]** (Journaling, inodes, superblock, sym- / hardlinks, Dateisystemchecks: tune2fs), FIXME * **[[Dateisysteme und Formatierung#Mounten bzw. einhängen von Dateisystemen|Mounten]]** / Mountoptionen / Automounter / **Freigaben** mounten * [[http://polishlinux.org/console/file-management-in-linux/|Dateimanagement]]: ls, cd, mkdir, rm, rmdir, cp, mv, ln, touch, df, du (''du / -ah | sort -nr | less'') , pwd, cat, grep, wc, head, tail, less, more * **Verzeichnisse ab- & vergleichen**: rsync, diff -qr Verzeich1 Verzeich2 ((-r = rekursiv -q = nicht die Unterschiede innerhalb der Dateien anzeigen)), Dateimanager wie ranger, mc oder krusader * **[[LVM]]** * [[linux:befehle-tricks#offene Dateien]]: lsof (offene Datei anzeigen) und fuser -u (Wer hat die Datei geöffnet?) * **[[linux:befehle-tricks#etc|Bibliotheken]]**: ldd (Abhängigkeiten), ltrace (wann werden diese Bibl. aufgerufen?) * **sparse-files** (wachsende Dateien die nicht voll zugewiesen sind)((sparse-Datei anlegen z.B. einer Datei mit 128 GB:dd if=/dev/zero of=filename.img bs=1k seek=128M count=1 mit du -lah und ls -lah kann man den Unterschied zwischen aktuell belegtem und maximal belegbaren Speicherplatz. Achtung: In dem Augenblick wo eine sparse-Datei auf ein anderes Dateisystem kopiert wird muss auch der maximale Speicherplatz zur Verfügung stehen!)) * Dateiänderungen mit [[Inotify]] überwachen * System- und [[Umgebungsvariablen]] (env oder printenv, export, set) * [[linux:zeitversetztes Arbeiten]] (**[[Cronjobs]]**, at, watch) * **[[linux:Rechte]]** (chown, chmod, su, sudo, /etc/sudoers, SUID, SGID usw.), Quota (quota, edquota, repquota, quotaon) * **[[Benutzer und Gruppen]]** * //Benutzer//: (hinzufügen: users, useradd (adduser), usermod, userdel, chfn, chsh, deaktivieren, [[PAM]], Dateien wie shadow, visudo, vigr (group), vipw (passwd), wohl nicht mehr nötig: pwconv; UID 500/1000, GID 100) chage. [[http://www.itwire.com/content/view/14446/53/|siehe hier]] * //Gruppen//: groups, groupadd (addgroup), groupmod, groupdel, newgrp * login (id, w, who, whoami, last, lastb, /etc/motd, issue + issue.net, shell, home, /etc/skel , etc/profile /etc/.bashrc (bei nicht netzlogins, aber oft include). * [[Passwörter generieren]] * **Dienstekonzept** (Daemons) FIXME(Seite) * **[[http://www.oreilly.de/german/freebooks/rlinux3ger/ch063.html|SWAP]]** (mkswap, swapon, swapoff), Verteilung auf mehrere Festplatten, wenn er mit gleicher Priorität für mehrere Partitionen aufgerufen wird: /dev/sda2 none swap sw,pri=1 /dev/sdb2 none swap sw,pri=1 ''/proc/sys/vm/swappiness'' (50-60 normal, höher = mehr swapping): Einstellung ''vm.swappiness=60'' in ''/etc/sysctl.conf'' cat /proc/meminfo(Swap insgesamt + frei), cat /proc/swaps (benutzte Swap-geräte), swapon -s (swap-Geräte), vmstat (Statistiken über den virtuellen Speicher) * **[[linux:softwareinstallation|Software installieren]]** (kompilieren, Paketmanager) * Tastenkombinationen (strg-alt-f1-6 ; strg-alt-backspace, alt-z, alt-d,) überlastetes Systemit mit [[sysrq]]-Tasten sicher ausschalten * **Uhrzeit setzen**: * per NTP: ntp -q -d((veraltet:ntpdate de.pool.ntp.org)) * manuell: date -s '2012-07-10 19:09:00' +'%Y-%M-%d %T' * Uhrzeit in Hardware/RTC/CMOS-Uhr schreiben: hwclock -w # entspricht --systohc * **[[Shells]]** (shells, alias, ncurses, history, auto-completion), terminal, console * [[shellscripts:shellscripts|Shellprogrammierung]], [[shellscripts:Arrays]], ... * **Konsolen**, (Virtuelle) **Terminals**, Tastenkombinationen * **[[grafische Benutzeroberflächen]]** (X-Server, window-manager, display-manager, desktop-environment-server) * **[[Logdateien überwachen]]** ==== Netzwerk ==== * **[[Netzwerke|Netzwerk]]** (ifconfig, ifup, ifdown, route/ip r s, ''/etc/network/interfaces'', ''/etc/resolv.conf'', [[server:Proxyserver]]) * **Standard-Netzwerktools** (dig, ping, traceroute ((traceroute TCP-SYN Checktraceroute -T -p PORTNR HOST)), netstat, lsof -i, telnet, netcat, nmap, ethtool) * Sniffer: libpcap-basierend (kernel->userspace ((libpcap unterstützt ab Version 1.0.0 ebenfalls zero-copy aber nur für das sniffing)) ): tshark((Beispielaufruf: tshark -i eth0 -w Traffic-sniff.pcap))+[[software:wireshark]], tcpdump; direkt auf der Hardware: [[http://netsniff-ng.org/|netsniff-ng]] * **[[netzwerke:SSH]]** (verwaltung, tunneling, pub-key) * **[[security:Firewalls]]** * arpwatch (überwacht auf wechselnde ARP-Adressen) * arp-scan (scannt das aktuelle Netz auf ARP-Basis auf reagierende Systemen)arp-scan --interface eth0 --localnet * tethereal * apachetop * nload eth0 * ngrep: durchsucht Netzwerkverkehr, z.B. mit ''ngrep -q GET'' wird nach Webseitenanfragen gesucht. * [[netzwerke:DNS]]-Anfragen mit dnstop überwachen: z. B. 3rd Level-Domains anzeigen ''dnstop eth0 -l 3'' * [[http://www.linuxsecurity.com/content/view/119808/49/|Hacks From Pax: Network Server Monitoring With Nmap]] * tcptraceroute (traceroute ohne [[netzwerke:ICMP]]) * **[[Wlan]]** (iwconfig, iwlist) * **IDS-Funktionalität / Angriffserkennung** * scanlogd: überwacht auf Portscans und trägt diese in ''/var/log/daemon.log'' ein * psad: [[http://cipherdyne.org/psad/|psad: Intrusion Detection and Log Analysis with iptables]], [[http://www.linux.com/archive/articles/44258|Detecting suspicious network traffic with psad]] * **Drucker** / Weg durch das Drucksystem (Cups: webinterface, /etc/cups/cupsd.conf /etc/cups/printers.conf; lpd: /etc/printcap, lpq, lp, lpr, lpc, lprm) ==== Konzepte ==== * Blockstorage * Objectstorage * Dateisysteme * Netzwerkdateisysteme * scale-up vs. scale-out ==== Prozesskontrolle und Prioritäten ==== ^ **Befehle in Abhängigkeit ausführen** ^^ | BefehlA ; BefehlB | BefehlA ausführen und dann BefehlB ausführen egal ob BefehlA erfolgreich war oder nicht | | BefehlA & BefehlB | BefehlA im Hintergrund ausführen und dann gleich BefehlB ausführen ohne auf das beendet von BefehlA zu warten | | BefehlA && BefehlB | BefehlA ausführen und dann BefehlB ausführen wenn BefehlA erfolgreich war | | BefehlA || BefehlB | BefehlA ausführen und dann BefehlB ausführen falls BefehlA einen Fehler ergab | * **[[Scheduling und Prozessgruppen]]** * Prozesse (nohup, ps, pstree, pkill, pgrep, stoppen, resume, killen, htop + top, vmstat, zombie); * Priorität: (re)nice, [[http://wiki.ubuntuusers.de/schedutils|chrt, taskset, ionice]] ^ Befehl ^ Beispielaufruf ^ Zweck des Programms ^ | kill | kill PID | killt einzelne Prozesse nach ihrer Prozess-ID (PID), -9 SIGKILL | | killall | killall -HUP named | killt (mehrere) Prozesse nach ihrem Namen ((bei [[debian:Debian]] im Paket psmisc)) | | mpstat ((mit ''sysstat''-Paket enhalten))| ''mpstat -P ALL 2 10'' (alle 2s 10 Messungen) | zeigt die Auslastung der CPU, längere Überwachung und Mittelwerte | | ps | ps auxww | laufende Prozesse | | pgrep / pkill | pgrep -u root sshd | sucht/killt Prozess**namen** | | top | | laufende Prozesse mit Ressourcenverbrauch; :!: htop: viel besser als top, ncurses-Oberfläche, interaktiv | === Links === * **[[POSIX Signals]]** * [[http://wiki.ubuntuusers.de/schedutils|Schedutils - ubuntuusers-wiki]] * [[http://wiki.ubuntuusers.de/Shell/nice|nice - ubuntuusers-wiki]] * [[http://wiki.ubuntuusers.de/System|System - ubuntuusers-wiki]] * [[http://wiki.ubuntuusers.de/Shell/pstree|pstree - ubuntuusers-wiki]] * [[http://wiki.ubuntuusers.de/Shell/Prozesssteuerung|Prozesssteuerung - ubuntuusers-wiki]] * [[http://wiki.ubuntuusers.de/Shell/pidof|pidof - ubuntuusers-wiki]] * [[http://www.linux-user.de/ausgabe/2000/09/082-prozesse/prozess.html|Prozesse verwalten und steuern]] * [[http://www.unix-ag.uni-hannover.de/76.html|Software zum Mitnehmen]] === Debugging === * strace startet Programme und gibt deren Aufrufe wieder. ^ Aufruf ^ Wirkung ^ | strace programm | startet programm und gibt dessen Systemaufrufe auf dem Bildschirm aus | | strace -o prog.log programm | wie oben, aber Ausgabe in prog.log Logdatei | | strace -f -o prog.log programm | wie oben, aber verfolgt auch Kindprozesse | | strace -p pid | verfolge die Aufrufe des laufenden Prozesses mit Prozess-ID pid | | strace -e trace=open,close,read,write | gibt nur Systemaufrufe aus, die das Dateimanagement betreffen | | strace -e trace=open,close,read,write | gibt nur Systemaufrufe aus, die das Dateimanagement betreffen | | strace -e trace=file | gibt Dateioperationen aus | * GDB: The GNU Project Debugger FIXME ==== Hardware Diagnose-Tools ==== * **Lüfterdrehzahlen** und Temperaturen (Paket lm-sensors): sensors * **Arbeitsspeicher**: ''cat /proc/meminfo'' bzw. ''cat /proc/mtrr'' * **DMA**: ''hdparm'' * **Geräte** IDs anzeigen: ''lshal'' * **PCI-Geräte**: ''lspci'' * **USB**-Geräte: ''lsusb'' * **Grafikkarte**: ''xrandr'' * **S.M.A.R.T.-Status** für Festplatten: smartmontools (siehe [[linux:festplatten-daten#S.M.A.R.T.- und Temperaturstatus auslesen]]) * **PCMCIA**: ''pccardctl status'' * **Taktregelung** der CPU * [[http://www.thinkwiki.org/wiki/How_to_use_cpufrequtils|Paket cpufrequtils]]: cpufreq-info * auch ein Gnome-applet mit der gleichen Funktionalität verfügbar * Direktzugriff mittels sysfs (Einheit ist Hz, cpu0 ist der erste Kern, cpu1 der zweite usw.; Ändern der Werte einfach möglich z.B. 1 Ghz als Minimaltakt einstellen wäre echo "1000000" > /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq * siehe auch: [[http://www.thinkwiki.org/wiki/How_to_make_use_of_Dynamic_Frequency_Scaling|How to make use of Dynamic Frequency Scaling]] * Governor einstellen (userspace, conservative, ...) cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor * Liste der Governors anzeigen: cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors * minimale CPU-Frequenz: ''/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq'' * maximale CPU-Frequenz: ''/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq'' * Geschwindigkeit einstellen (userspace governor): ''/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed'' * Statistiken: * cat /sys/devices/system/cpu/cpu0/cpufreq/stats/total_trans * cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state * mit [[debian:Debian]]-Paket sysfsutils kann man Einstellungen in ''/etc/sysfs.conf'' dauerhaft hintelegen, z. B. devices/system/cpu/cpu0/cpufreq/scaling_min_freq = 3100000 * **I/O** (auch: E/A = Eingabe/Ausgabe-operationen auf Datenspeichern wie Festplatte) * :!: Tools des "sysstat"-Pakets (sar, mpstat, **iostat**, sadf und sa; Auswertung z.B. mit [[http://sourceforge.net/projects/ksar/|ksar]]) für [[linux:Linux]] sollte man sich anschauen. * **iotop** für eine schnelle Anzeige welches Programm gerade I/O-Belastung verursacht * **unbekannte Dateien identifizieren**: ''file'' (Dateityp anhand von typischen Zeichenketten erkennen lassen) und ''strings'' (druckbare Zeichen einer Datei ausgeben) * **Stresstest** * Pakete stress und stressapptest stress -t 36000 -c 3 -i 3 -m 3 -d 3 --vm-bytes 768MB ((3 CPU Prozesse für sqrt(), 3 sync(), 3 Speichertester malloc()/free() )) ===== Distributionen ===== [[wpde>Linux-Distribution|Begriff Distribution!]] * [[linux:distributionen und live-cds|Distributionen und Live-CDs]]; * [[suse:Suse]] * [[ubuntu:Ubuntu]] {{:linux-distribution.png?500|linux-distribution.png}} ===== Kurs-Know-how ===== * gems: Den Inhalt einer Console auf mehrere Rechner übertragen ===== Einstellungen Versionieren ===== Das Verzeichnis /etc sollte auf Servern mit mehreren Administratoren oder allgemein auf wichtigen System versioniert werden. Dazu lassen sich entweder [[Versionsverwaltung:Versionsverwaltungssysteme]] benutzen oder alternativ spezialisierte Tools wie etckeeper oder metche verwenden. ===== Systemlimits ===== * server:Quota * allgemeine Limits: ulimit -n ===== capabilities ===== Traditionellen Unix-implementierungen unterscheiden nur zwischen priviligiertem Benutzer (id=0, root) und unpriviligiertem Benutzer (andere ID als 0). Moderne Linux-Distributionen können Programmen eine Vielzahl von einzelnen Fähigkeiten (=[[http://linux.die.net/man/7/capabilities|capabilities]]) geben ohne pauschal alles erlauben zu müsssen. Die Programme ''setcap'' und ''getcap'' verwalten die Rechte. **Beispielaufruf** - Wireshark bekommt CAP_NET_RAW und CAP_NET_ADMIN mit unten genannter Wirkung:sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap ^ Buchstabe ^ Bedeutung ^ Erklärung^ | e | Effective | the capabilities used by the kernel t perform permission checks for the thread. | | p | Permitted | the capabilities that the thread may assume (i.e., a limiting superset for the effective and inheritable sets). If a thread drops a capability from its permitted set, it can never re-acquire that capability (unless it exec()s a set-user-ID-root program). | | i | inheritable | the capabilities preserved across an execve(2). A child created via fork(2) inherits copies of its parent's capability sets. See below for a discussion of the treatment of capabilities during exec(). Using capset(2), a thread may manipulate its own capability sets, or, if it has the CAP_SETPCAP capability, those of a thread in another process. | ===== Bücherempfehlungen ===== * **Kurzreferenzen:** Linux kurz&gut (O`Reilly): Teil einer Reihe, gibts auch für Apache, MySQL, PHP * **Komplettwerk:** Linux (M. Kofler, Addison-Wesley) * **Apache:** Apache Webserver 2 (S. Wolfgarten, Addison-Wesley) * **MySQL:** MySQL 5 (M. Kofler, Addison-Wesley) ===== alte Unterlagen ===== **{{:einfuehrung_linux_.odp|Linux Einführung.odp}} {{:einfuehrung_linux_.pdf|Linux Einführung.pdf}}** **{{:benutzer-_und_gruppenverwaltung.odp|Benutzer- und Gruppenverwaltung.odp}} {{:benutzer-_und_gruppenverwaltung.pdf|Benutzer- und Gruppenverwaltung.pdf}}** **{{:mysql.odp|Mysql.odp}} {{:mysql.pdf|Mysql.pdf}}**\\