====== 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}}**\\