linux:administration

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
linux:administration [2018/05/31 00:51] – [Themen] stlinux:administration [2023/03/06 23:13] – [Themen] st
Zeile 1: Zeile 1:
 +====== Administration ======
 +
 +
 +<file>
 +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.
 +</file>
 +
 +===== 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, ...):<code bash>echo "- - -" > /sys/class/scsi_host/host0/scan</code>
 +
 +  * **[[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:<code bash>dd if=/dev/zero of=filename.img bs=1k seek=128M count=1</code> 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).
 +  * **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: <file>/dev/sda2       none            swap    sw,pri=1
 +/dev/sdb2       none            swap    sw,pri=1</file> ''/proc/sys/vm/swappiness'' (50-60 normal, höher = mehr swapping): Einstellung ''vm.swappiness=60'' in ''/etc/sysctl.conf'' <code bash>cat /proc/meminfo</code>(Swap insgesamt + frei), <code bash>cat /proc/swaps</code> (benutzte Swap-geräte), <code bash>swapon -s</code> (swap-Geräte), <code bash>vmstat</code> (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: <code bash>ntp -q -d</code>((veraltet:<code bash>ntpdate de.pool.ntp.org</code>))
 +    * manuell: <code bash>date -s '2012-07-10 19:09:00' +'%Y-%M-%d %T'</code>
 +    * Uhrzeit in Hardware/RTC/CMOS-Uhr schreiben: <code bash>hwclock -w # entspricht --systohc</code>
 +
 +  * **[[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 Check<code bash>traceroute -T -p PORTNR HOST</code>)), 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: <code bash>tshark -i eth0 -w Traffic-sniff.pcap</code>))+[[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)<code bash>arp-scan --interface eth0 --localnet</code>
 +    * 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** ^^
 +| <code bash>BefehlA ; BefehlB </code>    | BefehlA ausführen und dann BefehlB ausführen egal ob BefehlA erfolgreich war oder nicht  |
 +| <code bash>BefehlA &  BefehlB </code>    | BefehlA im Hintergrund ausführen und dann gleich BefehlB ausführen ohne auf das beendet von BefehlA zu warten  |
 +| <code bash>BefehlA && BefehlB </code>    |  BefehlA ausführen und dann BefehlB ausführen wenn BefehlA erfolgreich war  |
 +| <code bash>BefehlA || BefehlB </code>    |  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): <code>sensors</code>
 +  * **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]]: <code>cpufreq-info</code>
 +    * 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 <code bash>echo "1000000" > /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq</code>
 +      * 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, ...) <code bash>cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor</code>
 +      * Liste der Governors anzeigen: <code bash>cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors</code>
 +      * 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:
 +        * <code bash>cat /sys/devices/system/cpu/cpu0/cpufreq/stats/total_trans</code>
 +        * <code bash>cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state</code>
 +      * mit [[debian:Debian]]-Paket sysfsutils kann man Einstellungen in ''/etc/sysfs.conf'' dauerhaft hintelegen, z. B. <file>devices/system/cpu/cpu0/cpufreq/scaling_min_freq = 3100000</file>
 +  * **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 <code bash>stress -t 36000 -c 3 -i 3 -m 3 -d 3 --vm-bytes 768MB</code> ((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:<code bash>sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap</code>
 +
 +^ 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}}**\\ 
 +