Nach der Sommerpause und zum Start des Semesters an der VHS Braunschweig findet aus dem "Fachkraft IT-Systeme und -Netzwerke (FITSN)"-Zertifikat ein Seminar für das Modul "Linux" statt.
In unserem praxisorientierten Seminar erlernen wir die Techniken des alternativen Betriebssystems von "A bis Z": von der Installation bis zur Administration, über die grafischen Frontends und Desktops bis zur Befehlszeile (Shell).
Hier die Rahmendaten unseres Seminars:
Ort: VHS Braunschweig, Raum 2.11
Teilnehmerzahl: 13 TN
Zeiten: Mo, 27.08. bis Fr, 31.08.2018; jeweils 08.30 - 16.00 Uhr
Prüfung: eine freiwillige Prüfung wird im Rahmen des Seminars koordiniert!
Termin: Mo. 03.09.2018; 18.00 Uhr; Raum 2.11
Status Erstkorrektur: erledigt - 04.09.18 - ich gratuliere allen Teilnehmern zu bestandenen Prüfungen - ein stolzer Trainer gratuliert ;-)
Anm.: Nach dem Seminar ist vor dem Seminar: wir bieten an der VHS Braunschweig auch einen "Linux Aufbauworkshop" (ab 29.10.18) an. Ich würde gerne das Interesse hieran evaluieren oder ggf. den Termin für die Linux-Interessenten aus der Warteliste zu diesem Seminar aktivieren!
Ich werde unser Seminar in diesem Beitrag wieder ausführlich begleiten...
Ihr Trainer Joe Brandes
Mo., 27.08.18
Montag, 27.08.18, 08.30 - 16.00 Uhr
- Orientierungsphase, TN-Themen, freiwillige Prüfung, TN-Material Herdt-Skript,
Installationsmedium (Wechsel-SSD 120 GB und openSUSE Leap 15.0 64-Bit DVD)
Testinstallationen (20.08.2018 - Install: ca. 20 min mit DVD; Update: ca. 10 min):
PC17 (Dozi): SSD 17, DVD 1, Anm.: hier NVidia Grafik (mesa-nouveau Treiber am Install-Ende abgelehnt)
PC02 (TN-PC): SSD 18, DVD 2
TN-Frage: "Linux für alten PC/altes NB" - Kurzrechercheangebot:
Bodhi Linux, Puppy Linux, Antix; immer wichtig: HW checken (64-Bit, Chipsatz, Grafik, ...) und mit Systemanforderungen der Distros abgleichen! - Linux (oder eigentlich GNU/Linux)
freier Betriebssystemkern (hier: monolithisch, wobei aktuelle Entwicklungen nicht mehr nur starr monolithisch vs. Microkernel lauten; siehe Wikipedia-Artikel Link)
engl.: Kernel (siehe Website für den Kern auf kernel.org - Lizenz GNU Public License
erste öffentliche Erwähnung durch Linus Torvalds in Newsgroup comp.os.minix am 26. August 1991 (Wiki-Link L. Torvalds) - Distributionen
Debian - Nummer 1 bei den Server-OS für Web-Services und Co
Ableger: Ubuntu, Ubuntu-Varianten (Kubuntu, Edubuntu, Mythbuntu, ...)
Red Hat - Firma mit Serverlizenzen Red Hat Enterprise Linux
Ableger: Fedora mit den offenen/freien SW-Paketen, CentOS
Novell - SLES Suse Linux Enterprise Server
Ableger: openSUSE - freie Community-Variante (siehe de.opensuse.org) - mit Version 42.1 hat Novell die Entwicklungspfade von SLES und openSUSE zusammengelegt
(Versionen: → 11.x → 12.x → 13.1 - 13.2 → 42.1 - 42.2 - 42.3 → 15.0)
Distro Ableger der Distro Paketmanagement Red Hat
(Link)Fedora (Desktop) bzw.
CentOS (Red Hat Server)
Kaufversion: RHELRPM (Red Hat Package Management)
Standardtool: rpm (ohne Auflösung Abhängigkeiten),
yumNovell (Suse)
(Link)openSUSE (Link)
Kaufversion: SLES
bzw. SLEDRPM
mit YaST2-SW-Verwaltung, zypper, yumDebian
(Link)Ubuntu(s),
Linux MintDEB (Debian Pakete)
Standardtool: dpkg (ohne Auflösung Abhängigkeiten)
APT-Tools: apt, (klassisch: apt-get, apt-cache,
aptitude, ...Entscheidung für "Suse"-Distro:
Verbreitung in Deutschland, Nähe zur Enterprise Edition (SLES - Suse Linux Enterprise Server), gute deutschsprachige Community, Install- und Konfigurationsmöglichkeiten mit YaST (guter Einstieg in Administration von Linux Systemen), ...
weitere Distributionen: ArchLinux (s.a. Manjaro), Gentoo, Mandriva, ... - the list goes on and on (s. a. www.distrowatch.com) - Links zu openSUSE:
Portal: https://www.opensuse.org/
Wiki deutsch: https://de.opensuse.org/Hauptseite
Wiki Leap 42.3: https://de.opensuse.org/Portal:42.3
Leap Download: https://software.opensuse.org/distributions/leap
Documentation english: https://doc.opensuse.org/
Upgrades: https://de.opensuse.org/SDB:Distribution-UpgradeDistribution-Upgrade
(kürzer/besser: engl. Variante des Upgrade DB Eintrags)
Tumbleweed rolling upgrades: https://software.opensuse.org/distributions/tumbleweed - Installation von openSUSE Leap 15.0 (64-Bit)
Install-Medien:
CD (Netzwerk-Install; aktuell ca. 100 MB; bei Installation werden alle Pakete aktuell nachgeladen: ca. 3-4 GB),
DVD (auch als Live-DVD),
Netzwerk-Quellen (FTP, HTTP, NFS, SMB/CIFS, PXE/TFTP);
immer auch Quellen in 32- und 64-Bit und für andere Hardware (also nicht nur Intel x86 bzw. x86_64)
Hinweis: Bereitstellung von Checksums (sha256) zur Verifizierung der Unversehrtheit und Originalität der Downloadarchive (Isos)
Spezialität von openSUSE: YaST - Yet another Setup Tool (Installations- und Setup/Konfigurationswerkzeug) -
Partitionen
Gerätenamen/dev/sda
(für den ersten Datenträger - dann/dev/sdb, ...
)
eingerichtete Partitionen mit Nummern:/dev/sda1, /dev/sda2, ...
Anm. bei MBR dann/dev/sda5
als erste logische Partition (log. LW) in einer erweiterten Partition
früher bei EIDE-Geräten:/dev/hda
; die sda-Bezeichner dann für SCSI, SATA und heute auch USB-Medien
Alternativ: Verwendung von Geräten-ID-Bezeichnern (siehe später GRUB oder auch/etc/fstab
)
Aktuelle Distributionen: UUID als eindeutige Bezeichner für die Partitionen/Datenträgerbereiche
Vorteil: dann werden die Datenträgerbereich auch sauber gemountet, wenn diese mal statt auf/dev/sda2
auf/dev/sdb1
liegen sollten!
heutige Installation mit folgenden Partitionen angelegt: (ein Screenshot für eine beispielhafte Installation ist unten angefügt)Abweichung von openSUSE-Install-Vorschlag:
openSUSE würde gerne BtrFs als Dateisystem für das System ( Ordner/
bzw. auch/boot
) und xfs für die Daten (siehe/home
) vorschlagen, aber wir wollen hier die "klassischen" Ext-Dateisysteme Ext4 nutzen! (Anm.: besserer Einstieg in die Dateisysteme unter GNU/Linux; wir wollen an dieser Stelle ebenfalls auch noch LVM-Partitionen vermeiden!)Dateisysteme:
ext2, ext3 (ist ext2 mit journaling FS), ext4, xfs, BtrFS, ReiserFS, Fat16, Fat32 (VFat), NTFS
grobe Einteilung/Partitionierung:
hier im Seminar: GPT Verwaltung der SSD mit UEFI
(Anm.: bei MBR gibt es die 4 klassischen primären/erweiterten Partitionen):
Anleitung für Systempartitionen im Seminar: (genauerer Sinn und Nutzung später)
Bereitgestellte Wechsel-SSD: 120 GB bzw. 111,8 GiB (per UEFI/GPT)
hier: 4 Volumes/Partitionen/dev/sda1
bis/dev/sda4
Mount Nutzung Eigenschaften /boot/efi EFI-Partition Größe: 600 MiB (siehe ggf. Meldung YaST)
eig. min. 100 - 250 MiB (nach UEFI-Norm empfohlen)
Filesystem: FAT32 (! bzw. als VFat bezeichnet)
Gerät:/dev/sda1
(ESP - EFI System Partition)
Bootflag und möglichst Anfang der Partitionen
Anm.: Windows EFI kann mitgenutzt werden!/ Root-Partition Größe: 75 GiB
Gerät:/dev/sda2
(Root Partition)
Filesystem: ext4/home Benutzerverzeichnisse Größe: 28 GiB
Gerät:/dev/sda3
(Home Partition)
Filesystem: ext4swap Auslagerungspartition,
VMM Virtual Memory ManagementGröße: ca. +8 GiB
Gerät:/dev/sda4
(Swap Partition)
Filesystem: swaplsblk
,fdisk -l /dev/sda
,gdisk
(siehe GPT) ,cfdisk
möglicherweise Problem bei Darstellungen mit Konsolentools *disk:
Tipp: falls Umlaute und Sonderzeichen falsch dargestellt werden:env LANG=C cfdisk
Erklärung: in Umgebung (env) wird als Sprache C eingestellt, was der Sprache/Kodierung des Programms entspricht (hier "englisch") - System aktualisiert (im Seminar: DVD von August 2018 -> ca. 100 Pakete zu aktualisieren plus neuer/aktualisierter Kernel ...)
Aktualisierungs-Gadget" (Package-Kit) aus der Kontrollleiste - Anm.: später Kollision mit Shell-Tools möglich, da dieselbe Bibliothek (libzypp) genutzt wird!
Vorgriff auf Befehlszeile: Aktualisierung mit Toolzypper
(siehe libzypp Unterstützung;zypper update
)
Anm.: "stabile" Desktop-Umgebungen (KDE5 Plasma) manchmal erst nach Neustarts;
Standardwerkzeuge (KSnapshot für Bildschirmfotos mitDruck
-Taste wurde in 42.1 in Rente geschickt - removed) und stattdessen die modernere Alternative "Spactacles" installiert
Grundkonfiguration: automatische Bildschirmfoto-Dateien mitUmschalten + Druck
- YaST - Yet Another Setup Tool (Kontrollcenter)
ein erster Rundgang; Hinweis auf Root-Rechte - Netzwerk (I)
Erste Netzwerkanalyse mit Linux:
IP-Konfiguration Shellaufrufe IPv4-/IPv6-Adresse
Subnetmaskip address show
(zeigt immer alle NICs)ip a s
(kurze Variante)
Tool ifconfig nicht mehr standardmäßig installiert:/sbin/ifconfig
Standardgateway
(bzw. Router)/sbin/route -n
hier: in Spalte Flags das G suchen - dann Spalte Routerip route show
ip r s
(kurze VarianteDNS-Server cat /etc/resolv.conf
hier: Zeile mit nameserver analysieren
aber: Datei wird von den Netzwerkkonfigurations-Diensten
Wicked (bzw. NetworkManager) manipuliert
keine manuelle Änderung gewünscht! - Techniken im Zusammenhang:
Linux Kernel → X-Server → Windows Manager / Desktop
"Kernel" - technisch ist Linux erst einmal nur der Kernel (Wiki-Link) und damit kann man dann direkt auch eine Shell (z.B. die Bash) nutzen
(siehe später: Runlevel 3 ohne Grafikdesktop / in Sprache Targets: multi-user.target)
"X-Server" - Zusätzlich kann man eine Grafikausgabe mit Hilfe des (klassischen) X-Servers (Wiki-Link) nutzen (X Windows System, X Server 11 - kurz X11, neu: x.org Server) mit deren Hilfe einfache Grafikfensteranwendungen (siehexterm
,xeyes
;-) genutzt werden können.
Anm.: aktuell findet als moderne X-Server-Technik "Wayland" Einführung in die Linux Oberflächen - meine Empfehlung: erst einmal - soweit es geht bei den Distros - vermeiden.
"Window Manager bzw. Desktop" - Oder man baut noch gleich einen kompletten Desktop inklusive Management und Zusatztools (siehekonsole
,kwrite
, KDE-Office) oben drauf! - Desktops
KDE: erste Gehversuche mit Desktop, Einstellung Doppelklick mit Systemeinstellungen-Werkzeug (systemsettings5
/ KDE-Infozentrum)
Alternativen:
Gnome (Standard-Desktop bei Debian), LXDE, XFCE, TWM, IceWM (in openSUSE vorinstalliert neben KDE5/Plasma), Unity (Ubuntu)...
Übung: Aufrufe für verschiedene KDE-Standardtools (Dolphin, Kate, Konsole, Standard-Browser: Mozilla Firefox, Bürosuite LibreOffice, ...)
Übersichtsseite mit Window-Managern und kompletten Desktops: http://xwinman.org/ - Dateimanager
Dolphin (aktuell der Standard-Dateimanager) vs. Konqueror,
Zwei-Fensteransichten (F3), Favoriten-Leisten, Konsole (Shell-Kommandos) mit F4
Anm.: Konquerer auch Browser und früher der Standard-Dateimanager von KDE - heute ist es Dolphin
Übung: Einblenden der "versteckten" Dateien/Ordner mit Tastenkombination Alt + . (beginnen ja auch mit .); - Konsolen / Terminals (tty - Teletyper)
Aufruf von Programmen im Desktop mit Alt + F2 → Programmname
bei unserer openSUSE Installation:
Terminals 1 bis 6 (ohne Desktop) mittelsStrg + Alt + F1 ... F6
- zurück zu Desktop mittels (Strg +) Alt + F7 oder eben die bei Ihrer Distro oder Installationsart; Anm.: muss man manchmal ausprobieren! Technisch: Multi-User System
Beenden eines Terminals mittelsexit
(Anm.:logout
nur bei Login-Shells)
erste Gehversuche in der Konsole (shell) mit:ls -a
,ls -al
,cd
,su
,who
,whoami
,ping
,ip
wichtig:lspci
nur mit kompletten Pfad als Standard-User aufrufbar:/sbin/lspci
Anm.: die Superuser/Root haben den Pfad/sbin
in Ihrem Pfad
Pfade anzeigen mitecho $PATH
(Pfadvariable)
Aufruf von Grafik-/Fensterprogrammen über die Konsole:firefox &
,xeyes &
Tipp: & startet Programme im Hintergrund und lässt die Konsole weiter nutzbar!
Fontgröße in ttyX ändern:setfont /usr/share/kbd/consolefonts/suse12x22.psfu.gz
Befehlsetfont
stellt wieder Standards her! - Erste Hilfe in Terminal/Konsole
Man-Pages (z.B.man rm
) oder Befehl mit --help (z.B.rm --help
),
gerne auch Hilfe zur Hilfe mitman man
Alternative:info
Pages - Tricks in Terminal/Konsole
Befehle/Verzeichnisse/Dateien mittels Tabulator komplettieren (siehe:ls TabTab
zeigt alle Programme mit ls...,
mit Cursor-Tasten Aufrufe wiederholen (durchblättern),
überlange Anzeigen nach oben blättern mittels Shift + PgUp (Seite hoch) bzw. Shift PgDown;
die Historie aller Shell-Aufrufe des Users in~/.bash_history
;
Rekursive Suche in History mittelsStrg + R
(vorwärts dann mitStrg + S
)
Löschen der Konsole mittelsStrg + L
Anfang und Ende Kommandozeile mitStrg + A
undStrg + E
Löschen der Kommandozeile von Cursor bis Anfang mitStrg + U
Kopieren und Einfügen (mittlere Maustaste) in der Konsole - Koordination von Wechselplatten für die Woche - aktuell keine Wechsel bis Freitag nötig
Di., 28.08.18
Dienstag, 28.08.18, 08.30 - 16.00 Uhr
- Ausführliche Rekapitulation zu Tag 01, TN-Fragen, Prüfung (Interesse, Termin, ...)
- Bootvorgang
0) Einschalten (Reset, POST - Power On Self Test)
1) BIOS / UEFI mit Bootsequenz (Startreihenfolge; engl: Bootsequence / Startmedien)
Übersicht Bootmedien:
USB (Sticks / HD), Netzwerk (PXE / TFTP), Festplatten / SSDs, Optische Medien (CD/DVD)
MBR (Masterbootrecord mit Partitionstabelle (maximal 4 Partitionen: 4 Primäre oder 3 Primäre und 1 Erweiterte)
Hinweis:
für das Booten von HDs > 2,2 TB wird UEFI mit GPT (GUID Partition Table) benötigt
Erinnerung / Tipp: (ggf. nach Fehlschlag Parallelinstalation zu Windows)
Win-Systeme benötigen als Bootstandard eine Aktive primäre Partition inkl. eines "sauberen" MBR (Generischer MBR)
→ Reparatur-Tipp zum MBR: mit Win-DVD:bootrec /fixmbr
(bzw.bootrec /fixboot
für Bootsektor) in Reparaturkonsole
Darstellung zu Partitionierungen:
exemplarische Szenarios für Parallelinstallation mit Windows - Linktipp MS
2) Linux-Bootmanager: GRUB2 (Übersicht Bootmanager und Technik Bootmanager folgt)
Vorgänger / Bootalternativen: GRUB (Version 1), LILO (Linux Loader)
3) Kernel und initrd (klassisch: init Ramdisk - initrd laden; Anm.: die Ramdisk ist optional)
Symlinks bei openSUSE: vmlinux (komprimierter Kernel), initrd
Analyse Kernel-Version:uname -a
bzw.uname -r
EFI: Laden per Grub2 mit linuxefi und initrdefi !
4) systemd (Erster Prozess mit ID "1") (früher: SysVInit mit Urprozess init)
Anm.: openSUSE (und fast alle anderen Linuxe benutzen systemd ("abwärtskompatibel" zu init),
Ubuntu hatte zwischenzeitlich upstart als init-Lösung (aktuell: auch systemd mit 16.04 LTS)
Gründe für Abkehr von SysVinit zu alternativen init-Techiken:
Effizienter, Parallel arbeitend, Abhängigkeiten von Prozessen cleverer lösend
Tipp zur Startanalyse:systemd-analyze blame
(erzählt in ms - Millisekunden - die Geschichte der "Starts")
oder auch:systemd-analyze plot > grafische-analyse.svg
(erstellt SVG-Grafik)
Technisch: systemd arbeitet mit Targets (z.B. default.target) statt den klassischen Runleveln
Befehle:init
,telinit
,runlevel
,systemctl
(stattsysctl
bei init-Technik),journalctl
(für Analyse/Logging) - Bootmanager GRUB2
Lilo (sehr alt und unflexibel), GRUB (Version 1 bzw. GRUB Legacy - Erläuterungen auf openSUSE Portal)
aktuell: GRUB2 (technisch extrem zu GRUB abweichend und mächtiger!)
GRUB-Ordner:/boot/grub2
GRUB konfigurieren mit/etc/default/grub
und den/etc/grub.d/
Dateien
GRUB aktualisieren mit Befehlengrub2-mkconfig -o /boot/grub2/grub.cfg
(bei Suse - andere OS haben ein kleines Hilfsskript namens update-grub, welches diese Syntax ersetzt)
Grub2-Techniken bedürfen genauer Recherche und Betrachtungen!
Hinweis zum Bootloader mittels YaST - System - Bootloader
mögliche Speicherorte für GRUB: MBR (Master Boot Record), Bootsektor einer Partition
Besonderheiten bei EFI beachten: Aufrufe Grub2-Tools ggf. abweichend, Tools:efibootmgr
,efibootdump
Erläuterungen zu GRUB2: Link Ubuntuusers-Wiki (Achtung "Ubuntu-Brille"), Linupedia-Artikel - Runlevel (klassischer Begriff - systemd arbeitet mit Targets - Grundlagenartikel systemd von Heise.de)
0 - Stop/Halt
1 / s / S - Single User (zu Wartungsarbeiten)
2 - Multi-User (mit und ohne Netzwerk - je nach Distribution)
3 - Multi-User und Netzwerk (klassische Serverumgebung LAMP und Co)
4 - unbenutzt
5 - Multi-User, Netzwerk, X-Server (heute mit Desktops wie KDE oder Gnome)
6 - Reboot
Klassischer Ordner für Skripte/etc/init.d
mit Unterordnern für die Runlevel
→ Momentaufnahme openSUSE 42.1 (Runlevel 5):/etc/init.d/rc5.d
beinhaltet noch 3 Dienste mit entsprechenden (S Start - K Stop/Kill) Skripten
hier: avahi-daemon, postfix, udev
diese init-Skripte arbeiten dann mit Parametern start | stop | restart | reload
→ Momentaufnahme openSUSE 42.3:
keinerlei Skripte mehr in den Runlevel-Unterordnern/etc/init.d/rc0.d
bisrc6.d
(Anm.: nur noch in ./boot.d für AppArmor)
→ Momentaufnahme openSUSE 15.0:
keinerlei Skripte mehr in den Runlevel-Unterordnern/etc/init.d/rc0.d
bisrc6.d
und/etc/init.d/boot.d
(!)
Anm.: Red Hat (und Co) arbeiten mit/etc/rc.d
als Haupt-Skriptordner - siehe auch SymLink rc.d auf init.d bei openSUSE - systemd (Reference Manual Chapter: The systemd Daemon)
init-Technik wird durch systemd-Technik ersetzt bei Beibehaltung der alten (abwärtskompatiblen) init-Skript-Techniken und Ordnerstrukturen nach SysVinit;
dadurch werden die Start-/Stoppmechanismen durch teils gleichzeitiges Abarbeiten von Aufrufen beschleunigt - siehe S- und K-Links in Runlevel-Ordnern alle mit gleicher Nummerierung (hier 50 - S50... / K50...)
Nur noch Skripte, die nicht sauber mit systemd arbeiten - oder noch nicht umgeschrieben worden sind - konnte man noch in diesen Ordnern finden!
Hinweis ab openSUSE 15.0: keine Skripte mehr in rcX-Ordnern!
"Runlevel"-Tools:runlevel
,init X
(X = S, 0, 1, 3, 5, 6) ,shutdown
,halt
,reboot
Hier mal eine ausführlichere Gegenüberstellung:
SysVinit systemd Bemerkungen Runlevel Targets Bezeichungen für gewünschte Bootumgebung /etc/inittab keine /etc/inittab (!!)
in Ordnern diverse Dateien: (z.B.)
/usr/lib/systemd/systemKonfigurationsdatei(en) runlevel
init
telinit
sysctl
chkkonfigrunlevel (wegen Kompatibilität)
init (w. K.)
telinit (w. K.)
systemctl
journalctl
systemd-* (z.B. systemd-analyze blame | plot )Tools service sshd status systemctl status sshd.service Status openSSH Server service sshd start systemctl start sshd.service Starten openSSH Server service sshd stop systemctl stop sshd.service Stoppen openSSH Server service sshd restart systemctl restart sshd.service Restarten openSSH Server service sshd reload systemctl reload sshd.service Konfiguration openSSH Server neu laden chkconfig sshd on systemctl enable sshd.service openSSH im Runlevel/Target aktivieren chkconfig sshd off systemctl disable sshd.service openSSH im Runlevel/Target deaktivieren Man. Suche in Logdateien journalctl -u sshd.service Journal für openSSH
(als root)chkconfig --list systemctl list-unit-files
systemctl list-dependencies multi-user-targetÜbersicht Dienste in Runleveln/im Target init 3 (oder)
telinit 3systemctl isolate runlevel3.target
systemctl isolate multi-user.targetin Runlevel 3 wechseln bzw.
in multi-user.targetinit 5 (oder)
telinit 5systemctl isolate runlevel5.target
systemctl isolate graphical.targetin Runlevel 5 wechseln bzw.
in graphical.target... systemctl isolate default.target in Standard-Runlevel wechseln bzw.
in default.targetinit 0 (oder)
telinit 0
shutdown -h
poweroffsystemctl isolate runlevel0.target
systemctl isolate poweroff.target
shutdown -h
poweroffRechner ausschalten init 6 (oder)
telinit 6
shutdown -r
rebootsystemctl isolate runlevel6.target
systemctl isolate reboot.target
shutdown -r
rebootRechner rebooten
schönes Linux-Wiki mit Beispielaufrufen zur systemd-Technik:
Wiki: Willkommen in Bluelupo's Wiki - Grundlegende Kommandos zu systemd
Übungen: systemctl start | stop | status mit firewalld.service - Verzeichnisstruktur (eine kurze Übersicht - siehe auch ausführlicher Beitrag zu FHS auf Wikipedia)
/bin
- Binaries, ausführbare Programme/boot
- Kernel vmlinuz (komprimiert, mehrere Versionen mit Nummern), initrd (Ramdisk)/boot/grub2
- Bootmanger (hier nicht konfigurieren - siehe /etc/default/grub)/dev
- Geräte (/dev/fd0, /dev/sr0, /dev/sda, /dev/sdb, /dev/null, /dev/urandom, ...)/etc
- Konfigurationen (/etc/fstab, /etc/hosts, /etc/hostname, viele Konfigurations-Unterordner: /etc/skel, ...)/etc/X11
- der Ordner für den X-Server (Grundtechnik Grafikausgabe)/home
- Benutzerprofile (/home/username)/lib
- Programmbibliotheken (Libraries; siehe auch /lib64)/lost+found
- bei journaling File Systems Daten für Fehlersuchen/Behebungen (siehe auch Toolreihe fsck)/media
- klassischer Mountpoint für Wechselmedien (bei openSUSE nicht mehr vorhanden)/run/media/username
- neuer Mountpoint für Wechselmedien bei openSUSE und Co/mnt
- Mountpoint (der alte Standardmount für manuelle Mounts)/opt
- optionale Software (hier am Beispiel XAMPP Lamp Server - Link); auch: kommerzielle Software/proc
- Prozesseverwaltung (siehe Ordner mit PID-Nummern)
Übung: cat /proc/meminfo ; cat /proc/interrupts ; cat /proc/cpuinfo/root
- Homedir für SuperUser root/sbin
- Programme mit hohen Privilegien (SuperUser)/srv
- Serverdienste (Verzeichnisse z.B. für Webserver - diese findet man gerne auch unter /var/www ;-)/tmp
- Temporärer Ordner; gemeinschaftlich im System (später: besondere Zugriffsrechte)/usr
- Großteil der installierten Software im System (Unix System Resources)/var
- Variable Daten
Unterscheidung/Gruppierung von Daten auf Unix/Linux Systemen gemäß
File Hierarchy Standard (FHS):
→ veränderliche / dynamische vs. statische und
→ gemeinsam genutzte vs. nicht gemeinsam genutzte Verzeichnisse
gemeinsam nutzbar nicht gemeinsam nutzbar statisch /usr
/opt/etc
/bootdynamisch /var/mail
/var/spool/news/var/run
/var/lock
beispielhafte Darstellungen: Linux Community - Linux User Zeitschrift (Link - Linux User Ausgabe 11 / 2011)
Mi., 29.08.18
Mittwoch, 29.08.18, 08.30 - 16.00 Uhr
- Rekapitulation, TN-Fragen
- Linux-Infos - Online und Offline
Zeitschriften: "Linux User" (Link), "Linux Magazin" (Link), diverse Linux-Specials von IT-Fachzeitschriften
Webportale/Wikis zu den Linux-Distros (siehe Montag zu openSUSE)
openSUSE Dokumentationen in diversen Formaten: openSUSE 15.0 Dokumente
Bücher zu Linux: siehe die Bibliothek auf diesem Portal (aktuellere Auflagen teilweise verfügbar) - Kurzüberblick Paketmanagement
(s.a. Extra-Beitrag auf dieser Seite für die Nutzung der Paketmanagements mit den diversen Tools)
Distro Ableger der Distro Paketmanagement Red Hat
(Link)Fedora, besser: CentOS
Kaufversion: RHELRPM (Red Hat Package Management)
Basistool:rpm
(ohne Auflösung Abhängigkeiten)
Standardtool:yum
Novell (Suse)
(Link)openSUSE (Link)
Kaufversion: SLESRPM
mit YaST2-SW-Verwaltung
Standardtool:zypper
, (yum möglich)Debian
(Link)Ubuntu(s),
Linux MintDEB (Debian Pakete)
Basistool:dpkg
(ohne Auflösung Abhängigkeiten)
APT-Tools:apt
, apt-get, apt-cache, ... , aptitude
synaptic (grafische Oberfläche - Gnome)Arch Linux Arch Linux pkg.tar.xz bzw. pkg.tar.gz
Tool:pacman
Slackware Slackware früher: tar.gz
heute: TXZ (tar.xz)
Tools:installpkg
, slackpkgOpenWrt
z.B. RouterLinux auf Routern ipkg
Tool für das Wandeln von DEB in RPM (und umgekehrt):alien
(kann man probieren!) - Paketmanagement - Software verwalten / aktualisieren
openSUSE verwendet RPM (Red Hat Packages) mit diversen Tools,
am einfachsten natürlich YaST2 mit dem Softwareverwaltung betreuen,
hier werden auch gleich alle Paketabhängigkeiten analysiert und aufgelöst,
Standard-Konsolentoolrpm
;
in RPM-basierten Distros besser:yum
(standardmäßg nicht bei openSUSE installiert)
openSUSE: Toolzypper
(dann klappt es auch in der Konsole mit der automatischen Auflösung von Paket-Abhängigkeiten);
Anleitung zur Benutzung vonzypper
auf einem openSUSE-Info-Portal (Link)
bei Debian/Ubuntu Paketmanagement (DEB, Standard-Konsolentooldpkg
)
heißt die entsprechende Toolreihe apt (bzw.apt-get, aptitude, synaptic
)
Vergleichsseite von RPM vs. DEB Techniken und Aufrufen (Link)
Beitrag: Übersicht "Paketmanagement RPM vs. DEB - zypper und rpm - Red Hat Package Mangement (in openSUSE Distribution)
Haupttool:rpm
für die Konsole;
Beispiele:
(Hinweis: man nutzt in Praxis eigentlich nurrpm -q..
Aufrufe für Abfragen)rpm -i <paket>
(installiert Paket);rpm -e <paket>
(löscht Paket);rpm -U <paket>
(aktualisiert Paket)rpm -q <paket>
(Abfrage/Query an Paket)
Wichtig: rpm kann die Abhängigkeiten der Pakete nur erkennen - aber nicht automatisch auflösen, daher sehr "unhandlich"
Tipps zu rpm: (Infos und Analysen zu Paketen und Installationen mittelsrpm -q
; q für Query/Abfrage)rpm -qa | grep Firefox
(findet die installierten MozillaFirefox Pakete)rpm -qa | grep ^mc
(findet Pakete die mit mc in der rpm-Ergebniszeile beginnen)
besseres Konsolenwerkzeug openSUSE:zypper
(hier klappen die automatischen Auflösungen der Paketabhängikeiten)zypper refresh
(aktualisiert manuell die Quellen)zypper update
(aktualisiert die Pakete/Installationen)zypper install <paket>
(installiert ein Paket)
Quellen für Pakete: Repositories (CD, DVD, FTP, HTTP, Lokal)
Übersicht über Repositories über YaST-Softwareverwaltung
zypper lr
bzw.zypper repos
Hinweis auf Paketgruppen, Suchen/finden/installieren/deinstallieren von Paketen, Schemata
Community Repos erweitern die Quellen für Pakete:
Übung: Repos "Packman" und "libdvdcss" hinzugefügt und Paket "vlc" (Video Lan Client) aus Repo Packman installiert!
Online: Build Service (software.opensuse.org) ermöglicht Zugriff auf teilweise aktuellere Softwareversionen oder Software, die es nicht in den offiziellen Suse-Repositories gibt; Repos werden mit eigener Signatur (Key) in Repo-Verwaltung hinterlegt
Weitere Spezialität openSUSE:
automatische Installation mit Hilfe von YaST Meta Packages (*.ymp) in Form von 1-Click-Installs bei openSUSE
→ siehe SUSE-Onlineportal: https://software.opensuse.org/search
Alternative Softwareinstallationen:
→ Software mit eigenem Setup/Installer oder
→ Source-Tarballs: Quellcodearchiv (Sources); nach Auspacken müssen die Quelldateien (Sources) dann mit dem passenden Compiler (GCC - GNU C Compiler) übersetzt werden - Midnight Commander (installiert mit
zypper install mc
)
aufrufen in Shell/Konsole mitmc
F10
zum Beenden;Strg + O
zum ein-/ausblenden des Commander-Fensters
Tipp Gnome: für dasgnome-terminal
in den Eigenschaften die F10 deaktivieren! - Benutzer- und Gruppenverwaltung (Teil I)
mittels YaST2 - Benutzer-/Gruppenverwaltung aktuelle Benutzer und Gruppe analysiert;
Systembenutzer/Gruppen müssen erst extra ausgewählt (gefiltert) werden;
Anzeige zu Benutzern mittels Befehlenwhoami, who, id, groups
Dateien der Benutzer/Gruppen:/etc/passwd, /etc/shadow, /etc/group
Inhalte und Aufbau der Dateien erläutert und recherchiert;
Rechte analysiert und Benutzer- und Gruppen-IDs kennen gelernt;
weitere Benutzereigenschaften: Home-Dir-Pfad, Shell (Standard/bin/bash
; speziell: siehe wwwrun:/bin/false
), Sekundäre Gruppen
Abschlussübung: neue Benutzer mit YaST-Modul angelegt und angemeldet und getestet
Tests mit gegenseitigen Zugriffen der Benutzer - hier ist "Lesen/Stöbern" in anderen Home-Dirs möglich
Wir werden erst mehr über die speziellen Berechtigungen lernen
siehecat /etc/shadow
mit normalem Benutzer → keine Anzeige mit Hinweis "Keine Berechtigung" - Benutzer-"Wechsel" (eine Zusammenfassung)
su
,su -
Switch User (mit - geschieht Wechsel in das Home-Dir)kdesu
- der su für den KDE-Desktop (siehe Aufruf YaST oder manuell für Grafik-/Fensterapplikationen)
Tipp Gnome: Toolgksudo
sudo
(quasi ein "Ausführen als") - muss extra konfiguriert werden (siehe Gruppe sudoers und Konfigurationen in /etc/sudo) - Benutzer- und Gruppenverwaltung (Teil II)
Tools für Benutzer- und Gruppenerstellungen / Anpassungen:useradd
,usermod
,userdel
,groupadd
,groupmod
,groupdel
Empfehlung: vorheruseradd -D
- zeigt die Defaults/Vorgaben für User) mit Home-Dir und anderen Defaultkonfigurationen.
Profitipp: die Konfiguration für Standarduserumgebung kann mit/etc/default/useradd
vom root angepasst werden!
beispielhafter 2-Zeiler für Standarduser:
#useradd -m -c "Teilnehmer 01" tn01
(Schalter -m wichtig für Home-Dir-Erstellung)
#passwd tn01
(Passwort setzen)
Jeder Benutzer kann mit Tool passwd sein eigenes Kennwort ändern. Hierfür ist das Tool /usr/sbin/passwd mit dem Set-UID-Bit konfiguriert, welches bewirkt, dass passwd mit "root"-Rechten ausgeführt wird. Mehr dazu bei den Linux-Datei-/Ordner-Berechtigungen.
Do., 30.08.18
Donnerstag, 30.08.18, 08.30 - 16.00 Uhr
- Rekapitulation, TN-Fragen
- Dateiberechtigungen
in detaillierter Liste (ls -l
)die Berechtigungen r (read), w (write), x (eXecute) für
u - Benutzer/Besitzer (u - user),
g - Gruppe (g - group) und
o - "alle Anderen" (o - others) hergeleitet,
Standard-Berechtigungen in der (oktalen) Form 755 oder 644 erläutert (technisch 3 mal 3 Bit = 9 Bit)
Hinweis aufumask
(hier openSUSE: 0 022) mit
Standardberechtigungen für Ordner (777 - 022 = 755) und Dateien (666 - 022 = 644)
Befehl chown (bzw. chgrp) zum Ändern von Besitzer und/oder Gruppechown -R wwwrun:wwwrun /var/www/html
(Ordner html für Apache2 User:Gruppe konfigurieren)
bei Debian: www-data:www-data
Anm.: chown kann auch einfach Gruppe setzen mitchown :groupname
Befehlchmod
eingeführt und nachrecherchiert (für Gruppenchgrp
);
Beispiele:chmod -R 750 testordner
(Ordner testordner rekursiv auf 750)chmod u+x skript.sh
(Datei skript.sh für Benutzer/Besitzer ausführbar machen)
Alt.: Berechtigungen mittels Eigenschaften Dialogfenster mit Dateimanager Dolphin angesehen (Rechte Maus - Eigenschaften)
Übung mit "chmod" bzw. Dateiberechtigungen über Dolphin (Dateimanager) und Eigenschaften:
Ordner/home/donnerstag
mit Berechtigungen 750 und 700 ausstatten, und Tests mit ls mit anderen Usern (joeb, mittwoch)
Fürchmod
(Change Modus) an Unterordnern muss -R (Achtung: hier großes R für --recursive) gesetzt werden.
Beim Dolphin muss ein Haken für das Anwenden auf die Unterordner aktiviert werden.
Sonder-Berechtigungen:
zusätzliche 3 Bit Berechtigungen
→ siehechmod 4740
SetUID
→ oderchmod 1777
Sticky-Bit
Beispiel SetUserId-Bit - Passwortänderungstoolpasswd
:- rwsr----- root shadow /usr/bin/passwd
(siehe Besitzer: root)
Sinn: auch normale User müssen Passworte für sich wechseln können - dazu braucht man aber Schreibzugriffe root auf Passwort-Datei/etc/shadow
!
SetGroupId-Bit:
dasselbe Verhalten bei Ausführung von Programmen mit Gruppen-Rechte-Übernahme
Beispiel Sticky-Bit - Temporärordner/tmp
:d rwxrwxrwt root root /tmp
der Temp-Ordner für Alle - im wahrsten Sinne, aber durch Sticky-Bit werden Dateien/Ordner-Berechtigungen und Besitz/Gruppe mit in den Ordner /tmp transportiert und sind so gegen die anderen Nutzer von /tmp schützbar - Mounten - Inbetriebnahme von Datenträgern
das Einbinden von Datenspeichern/Datenträgern und anderen Komponenten (siehe virtuelle Systeme) in das System
Befehle: (Geräte/Datenträger werden automatisch erkennt und per Klick gemountet)mount
(der eigentliche Hauptbefehl zum Einbinden von Laufwerken/Mounten)umount
(Mounten beenden)
Hinweis: heutzutage bei allen Wechselmedien (optische, USB) automatisches Mounten durch User (technisch: im Userspace → FUSE)
Aktuellen Mount-Status anzeigen:mount
ohne Parameter (oder natürlich alternativ:cat /etc/mtab
cat /etc/mtab | grep ^/dev/
(nur die Einträge mit /dev am Anfang - also Geräte)
oder direkt "greppen":grep ^/dev/ /etc/mtab
Anweisungen für das System zum Mounten beim Systemstart:cat /etc/fstab
Darstellung der Techniken und Vorgehensweisen mit einem USB-Stick
Weitere Tools:fdisk
,mkfs.ext4
,mount
Alle Analysen wieder mit Hilfe vonlsblk
,blkid
,fdisk -l
,cfdisk
- Benutzer-"Wechsel" (eine Zusammenfassung)
su
,su -
Switch User (mit - geschieht Wechsel in das Home-Dir)kdesu
der su für den KDE-Desktop (siehe Aufruf YaST oder manuell für Grafik-/Fensterapplikationen)
Tipp Gnome: Toolgksudo
sudo
(quasi ein "Ausführen als") - muss extra konfiguriert werden (siehe Gruppe sudoers und Konfigurationen in/etc/sudoers
bzw. im Ordner/etc/sudoers.d/
) - Netzwerke mit openSUSE
1) ifup/ifdown - die klassische Technik der Einbindung von NICs und Netzwerkumgebungen
So findet man eine grafiklose Serverinstallation vor (siehe Hoster, Cloud-Services)
Tools/Dateien:ifup
,ifdown
,ifconfig, /etc/network/interfaces
2) NetworkManager
eine Red Hat Technik mit Applet (Miniprogramm für Windows Manager KDEkde5-nm-connection-editor
, Gnome und Co)
3) Wicked Service (seit openSUSE 13.2)
Wichtig: entweder / oder den NetworkManager nutzen
Konfiguration mittels YaST - Netzwerkeinstellungen - Global Options
Wicked-Service als Standardkonfiguration auf Desktop-Systemen
Anm.: bei Notebooks weiterhin NetworkManager als Standard konfiguriert - Befehle Netzwerktechnik
siehe auch Netzwerkanalyse Wochenanfang:ip address show
,ip route show
,/etc/resolv.conf
ping -c 10 www.bahn.de
traceroute www.vhs-braunschweig.de
Analysewerkzeuge:ip, route, dig
,host
,nslookup
,arp
,ifconfig
(auch Konfigurationen),iwconfig
(für WLAN)
Konfiguration DNS-Namenserver:/etc/resolv.conf
(natürlich auch alles per YaST einstellbar)
manuelle Namensauflösung für Seminarnetz mit/etc/hosts
(Rechnernamen linux01, ..., linux17) - Drucken
verschiedene Nutzungen und Installationen unter Linux möglich
0) manuelles Installationsarchiv des Druckerherstellers
oft mit Installationsskript, das erst noch mitchmod u+x install-script.sh
zum Ausführen vorbereitet werden muss und sauber per absolutem oder relativen Pfad./install-script.sh
ausgeführt werden muss.
1) lpd - Line Printer Daemon, der klassische Dienst zum Verwalten von Druckern, Druckjobs, Printqueues
Kommandozeilentools:lp
(siehe wieder lp <tab tab> zeigt:lpq
,lpr
,lpc
,lpstat
,lpinfo
)
2) YaST2 Modul Drucker
zum Installieren oder Verwalten von Druckern bei Suse-Systemen
3) Desktopmanager Druckerkonfiguration (KDE, Gnome, XFCE)
Tipp: sind möglichst zu vermeiden, weil diese Tools manchmal individuelle Konfigurationen verwenden!
4) CUPS - Common Unix Printing Service (Apple)
der aktuelle Standard, Distro-unabhängig und per Weboberfläche verwaltbar:
Webadresse (im Browser)localhost:631
(also Port 631)
Seminarübung:
Beispielinstallation eines "HP Color 500 Laserjet (m551)"
mit Hilfe der HP Linux Imaging and Printing Toolserie auf hplip.net Website bzw. des entsprechenden Pakets
hplip (zypper search hplip
,zypper info hplip
,zypper install hplip
);
damit werden alle nötigen Dateien (Druckertreiber, ppd-Dateien) und Konfigurationen für HP Geräte (Drucker, Scanner, Multifunktionsgeräte) erstellt und eine passende HP-Installation bereitgestellt:hp-setup
- Anm.: für das saubere Finden der HP-Drucker im Netzwerk muss ggf. kurz die Suse-Firewall gestoppt werden:systemctl stop firewalld.service
(später natürlich wieder starten oder einfach neustart abwarten)
Empfohlene Verwaltung der Druckserver-Umgebung dann mit CUPS
Fr., 31.08.18
Freitag, 31.08.18, 08.30 - 16.00 Uhr
- Ausführliche Rekapitulation (Tage 01 - 04), TN-Fragen
To-Do-List Tag 05:
ssh (Secure Shell Service nutzen),
Befehlszeilenübungen (Ordner, Dateien, Links, Skript "Hello World")
tar (Archivieren und Gnu-Zippen)
VIm (VI Improved - "Standard-Linux-Konsolen-Editor)
SMB-Freigabe mit Dolphin nutzen
VirtualBox (zeigen; ggf. passwd-Reparatur mit VBox-OS zeigen) - Befehlszeilenübungen
mkdir -p, touch, cd, ln -s
gerne durch den Midnight Commander (mc) helfen lassen
einfaches Skript skript.sh {code lang:bash showtitle:false lines:true hidden:false}#!/bin/bash
echo "Hallo Welt"{/code}bedenken: mitchmod u+x skript.sh
ausführbar machen
Aufrufe mit relativem oder absoluten Pfad bendenken: (siehe $PATH)./skript.sh
(relativer Pfad; hier: pwd ist Ordner /home/joeb/freitag)/home/joeb/freitag/skript.sh
(absoluter Pfad; beginnt mit / ) - Übung zu SSH:
1) ssh installiert? 2) Prozesse analysieren 3) Dienste-Verwaltung 4) Firewall
eine beispielhafte Vorgehensweise mit Techniken aus der bisherigen Woche:
1) Recherche zu ssh (Paket openssh) - ist "ssh" installiert?rpm -qa | grep ssh
(Vorgriff auf morgige Darstellungen zu Paketmanagement und Softwareverwaltung)
zypper search ssh (zypper nur bei Suse! Paketname eigentlich openssh oder bei anderen Distros openssh-server)
YaST Softwareverwaltung
Anm. zu openSUSE: Paket heißt hier openssh und beinhaltet sowohl ssh-Client also auch ssh-Server Software
2) Läuft der ssh-Dienst (sshd)?ps ax | grep sshd
(zeigt uns: Nein - da läuft kein sshd!)systemctl status sshd.service
(siehe auch Übungen der BU-Woche)
3) Dienst sshd für unseren Standard-Runlevel 5 (genauer graphical.target für systemd) konfigurieren:
YaST2 - System - Dienste-Verwaltung - sshd (enable und starten) - Einstellungen sichern, odersystemctl enable sshd.service
(wieder: siehe auch Übungen der BU-Woche)
Neuer Test, ob sshd läuft? Ja!
4) Für Netzwerkzugriff
von ssh-Client (z.B. r203pc17 - 192.168.3.117)
auf ssh-Server (z.B. r203pc11 - 192.168.3.111)
jetzt noch die Firewall auf Serverseite mittels
YaST - Sicherheit und Benutzer - Firewall - Allowed Services (Erlaubte Dienste) konfigurieren und
den Dienst "Secure Shell Server" hinzufügen und Firewall-Konfiguration sichern
Auf den ssh-Server dann mittels ssh Aufrufen verbinden:ssh username @ ip-adressse
(bzw. @ machinename - Anm.: ohne Leerzeichen um das @-Symbol)
(für namentliche Adressen linux11 benötigt man DNS oder /etc/hosts Einträge)
Gerne per SSH auch Programmaufrufe inkl. Fenstermanagement (X-Server):ssh -X ...
(erstellt ssh-Verbindung mit Fernaufruf für X-Fenster-Programme)
Anm.: bei Erstverbindung Signatur/md5-Fingerabdruck bestätigen
ssh mit Windows:
wir brauchen einen ssh-Client und am Besten gleich noch einen X-Server (für "Linux-X-Fenster")
putty (Link) - der Klassiker (die ssh-Tools als Sammlung oder einzeln; ohne X-Server (siehe cygwin)
MobaXterm (Link) - die geniale "all-in-one" Lösung als kostenlose Installation, Zip oder kostenpflichtige Enterprise-Version
gezeigt mit Windows-PC: xeyes auf Windows Desktop! - tar
Archivieren, Packen (Tape Archiver; mit Packertechnik)tar cvzf Archiv.tar.gz ./Dokumente
(packen mit gzip)tar xvzf Archiv.tar.gz
(entpacken mit gzip)
Wichtig: nach dem Parameter f muss ein/der Datei-/Archivname folgen - alle anderen hier gezeigten Parameter in Reihenfolge frei
c - compress/create
v - verbose (mitteilungsfreudig, "geschwätzig")
z - Kompression Gzip (Alternative: j - bzip2)
f - Dateiname
x - Extrahieren - Übung: SMB-Freigaben auf Samba-Server
Bereitstellung Seminarscreenshots per Samba-Server:
Pfad in Dolphin: smb://10.100.200.1/Public (Protokoll: smb/cifs)
Servertechnik: Samba-Server - VI (bzw. VIM - der VI improved) - im Seminar nur kurz angesprochen - keine Praxis)
unterschiedliche Modi:
Einfügenmodus (z.B. mit Taste i), Kommandomodus (ESC)
Kommandos: (nach ESC-Taste):w
(schreiben),ZZ
(Schreiben und beenden VI);:q
(Quit - mit:q!
Beenden erzwingen)
Tipps:vi test.txt
(gleich Datei laden bzw. erstellen);vi -R test.txt
(nur Lesen-Modus)
Anmerkung: auch als Fensterprogramm verfügbargvim
(also eigentlich aus der Gnome-Ecke) - Musteraufgabe (aktualisierte Version für openSUSE 15.0)
und Prüfungsvorbereitung durchgeführt - bzw. letzte Fragen
Musterlösung auf Anfrage - SSDs zurückbauen und Standardinstallationen "Win" der VHS BS testen!
- TN-Bescheinigungen, Feedback-Bögen, letzte TN-Fragen
Vielen Dank für die tollen Feedbacks - ich freue mich auf unsere nächsten Seminare
Ihr Trainer Joe Brandes