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 werden wir die Techniken des alternativen Betriebssystems von der Installation bis zur Administration über die grafischen Frontends und auch über die Befehlszeile (Shell) erlernen.
Hier die Rahmendaten unseres Seminars:
Ort: VHS Braunschweig, Raum 2.03
Teilnehmerzahl: 12 TN (+ 5 Teilnehmer auf Warteliste)
Zeiten: Mo, 21.08. bis Fr, 25.08.2017; jeweils 08.30 - 16.00 Uhr
Prüfung: eine freiwillige Prüfung wurde im Rahmen des Seminars koordiniert!
Prüfungstermin: Mo., 28.08.2017, 16.00 Uhr; Raum 2.03
Erstkorrektur: Status - erledigt 29.08.2017 - alle 4 TN haben mit teils hervorragenden Leistungen bestanden. Ich gratuliere!
Anm.: Nach dem Seminar ist vor dem Seminar: wir bieten an der VHS Braunschweig auch einen "Linux Aufbauworkshop" (ab 13.11.17) 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., 21.08.17
Montag, 21.08.17, 08.30 - 16.00 Uhr
- Orientierungsphase, TN-Themen, freiwillige Prüfung, TN-Material Herdt-Skript,
Installationsmedium (Wechselplatte und openSUSE 42.3 64-Bit DVD) - 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 (s. Versionen: 13.1 - 13.2 → 42.1 - 42.2 - 42.3)
Distro Ableger der Distro Paketmanagement Red Hat
(Link)Fedora, besser: CentOS
Kaufversion: RHELRPM (Red Hat Package Management)
Standardtool: rpm (ohne Auflösung Abhängigkeiten),
yumNovell (Suse)
(Link)openSUSE (Link)
Kaufversion: SLESRPM
mit YaST2-SW-Verwaltung, zypper, yumDebian
(Link)Ubuntu(s),
Linux MintDEB (Debian Pakete)
Standardtool: dpkg (ohne Auflösung Abhängigkeiten)
APT-Tools: apt-get, apt-cache, ... , aptitudeEntscheidung 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, Linux Mint, 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 42.3 / 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 Install-Vorschlag:
openSUSE würde gerne BtrFs als Dateisystem für das System ( Ordner/
bzw./boot
) und xfs für die Daten (siehe/home
) vorschlagen, aber wir wollen hier die "klassischen" Ext-Dateisysteme Ext4 nutzen!Dateisysteme:
ext2, ext3 (ist ext2 mit journaling FS), ext4, xfs, BtrFS, ReiserFS, Fat16, Fat32 (VFat), NTFS
grobe Einteilung/Partitionierung (hier: bei MBR gibt es 4 Partitionen):
Anleitung für Systempartitionen im Seminar: (genauerer Sinn und Nutzung später)
Bereitgestellte Wechsel-HDD: 500 GB
hier: 3 primäre Partitionen/dev/sda1
bis/dev/sda3
Mount Nutzung Eigenschaften / Root-Partition Größe: 100 GiB
Gerät:/dev/sda1
(primäre Partition)
Filesystem: ext4/home Benutzerverzeichnisse Größe: 100 GiB
Gerät:/dev/sda2
(primäre Partition)
Filesystem: ext4swap Auslagerungspartition,
VMM Virtual Memory ManagementGröße: 8 GiB
Gerät:/dev/sda3
(primäre Partition)
Filesystem: swaplsblk
,fdisk -l /dev/sda
,cfdisk
möglicherweise Problem bei Darstellungen mit Konsolentools *disk:
Umlaute und Sonderzeichen werden falsch dargestellt - Lösung: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 2017 -> über 100 Pakete zu aktualisieren plus neuer/aktualisierter Kernel)
Aktualisierungs-Gadget" (Package-Kit) aus der Kontrollleiste - geht später in Kollision mit Shell-Tools
Vorgriff auf Befehlszeile: Aktualisierung mit Toolzypper
(siehe auch Aktualisierung mit KDE-Systemtool)
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,
Fachbegriffe (z.B.: NTP, LDAP, Samba, iSCSI) - 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.
"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 (systemsettings
/ 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 openSUSE:
Terminals 1 bis 6 (ohne Desktop) mittels Strg + Alt + F1 ... F6 - zurück zu Desktop mittels (Strg +) Alt + F7
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
,ifconfig
wichtig:ifconfig
nur mit kompletten Pfad als Standard-User aufrufbar:/sbin/ifconfig
Anm.: die Superuser/Root haben den Pfad/sbin
in Ihrem Pfad
Pfade anzeigen mitecho $PATH
(Pfadvariable) - 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,
mit Cursor-Tasten wiederholen (durchblättern),
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 - Software-Ausstattung openSUSE (Überblick)
Browser: Firefox; Office: LibreOffice; PDF: Okular; Sound/Musik/Streams: Amarok; Brennsoftware: K3b; Mails: KMail; Bildbearbeitung: Gimp
Installationswünsche aus Diskussion: VLC, Thunderbird, Xeyes (;-) - Koordination von Wechselplatten für die Woche - aktuell keine Wechsel bis Freitag nötig
Auflösung und Skalierung
Maus Doppelklick
zypper update
/sbin/yast2
YaST Kontrollcenter
Partitionierungen
Di., 22.08.17
Dienstag, 22.08.17, 08.30 - 16.00 Uhr
- Rekapitulation (Seminarinhalte Tag 01...), TN-Fragen
Anm.: Techprobleme bei Startvorgängen (→ Reborn-Cards, Wechselplatten) - 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
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
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)
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 42.3:
Aktuell befinden sich nur im "allgemeinen" Bootordner /etc/init.d/boot.d noch Start-/Stop-Skripte für AppArmor!
"Runlevel"-Tools:runlevel
,init X
(X = S, 0, 1, 3, 5, 6) ,shutdown
,halt
,reboot
Hier mal eine ausführlichere Gegenüberstellung (angelehnt an Tafelbilder im Seminar):
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
Übungen: systemctl start | stop | enable - 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., 23.08.17
Mittwoch, 23.08.17, 08.30 - 16.00 Uhr
- Rekapitulation, TN-Fragen
Nachtrag zu Frage von Montag zu Fenstermanagment - Fensterränder besser erwischen...
Anfasser zum Vergrößern/Verkleinern? Tipp: mit Alt + Rechter Maustaste die Fenstergrößen anpassen!
Und Fenster lassen sich in fast allen Fenstermanagern/Desktops mit Alt + Linker Maustaste verschieben! - Rekapitulation, TN-Fragen
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)
Standardtool: rpm (ohne Auflösung Abhängigkeiten),
yumNovell (Suse)
(Link)openSUSE (Link)
Kaufversion: SLESRPM
mit YaST2-SW-Verwaltung, zypper, yumDebian
(Link)Ubuntu(s),
Linux MintDEB (Debian Pakete)
Standardtool: 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: PacmanSlackware Slackware früher: tar.gz
heute: TXZ (tar.xz)OpenWrt
z.B. RouterLinux auf Routern ipkg
Tool für das Wandeln von DEB in RPM (und umgekehrt):alien
(kann man probieren!) - 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) - Kontrollcenter System und User:
YaST - Yet Another Setup Tool - Systemeinstellungen (bzw. YaST2)
Systemeinstellung - Benutzereinstellungen (systemsettings
)
Beispielhafte Einstellungen Systemeinstellungen (Benutzer):
Anzeige und Monitor - Bildschirmauflösungen
Eingabegeräte - Maus (siehe Doppelklick)
Energieverwaltung - Bildschirmschoner und Co konfigurieren
Mittels der Rubrik "Systemverwaltung" kommt man dann auch zu weitergehenden Einstellungen und YaST
Rundgang durch YaST:
Beachten: der User root hat Einzelklick-Modus für die Maus!
Techniken in den Kategorien angesprochen und Fachbegriffe erläutert
Software
hier dann die Verwaltung der Softwarepakete (Aktualisierungen, Installationen / Deinstallationen)
Übungen: Repositories - Deaktivieren der Install-DVD (Übersicht in Shell mitzypper lr
),
Suche nach Paketen (z.B. xeyes, vlc, thunderbird)
→ siehe SUSE-Onlineportal: https://software.opensuse.org/search
Anm.: inkl. 1-click-Installationen inkl. Repository-Aufnahme (Hinweis auf mögliche Updates bei Dist-Upgrades)
Installation von "Midnight Commander" (Paketname mc) mit Abhängigkeit mc-lang (Installation durchgeführt)
Hardware - Hardware-Informationen (Shell:hwinfo
Tools; z.B. Netzwerkadapter:hwinfo --netcard
),
Drucker (wird extra thematisiert)
System
Bootloader (GRUB2 konfigurieren), Datum und Zeit, Partitionierer (Datenträger verwalten), Dienste-Verwaltung (systemd - Runlevel verwalten)
Netzwerkgeräte
Netzwerkeinstellungen (Konfiguration von Netzwerkadaptern)
Hinweis auf Netzwerkkonfigurationen mit Wicked (Desktops) oder NetworkManager (Laptops)
Netzwerkdienste - Rechnernamen (bearbeitet /etc/hosts)
Sicherheit und Benutzer
Firewall (hier muss später sshd freigegeben werden!), Benutzer- und Gruppenverwaltung
Virtualisierung, Unterstützung, Verschiedenes
Anm.: es gibt natürlich auch eine textbasierte Oberfläche in der Konsole oder auch als Terminal-Aufruf mit Parametern
Erkenntnis zu den grafischen Kontrollcenter-Tools:
letztendlich bieten diese nur Grafische Oberflächen für die tatsächlichen Einstellungen im System (den Konfigurationsdateien)
Einfaches Beispiel:
YaST-Werkzeug "Rechnernamen" ist einfach nur ein Dialog für die Bearbeitung von/etc/hosts
Datei! - 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:
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! - Netzwerk mit openSUSE
1) ifup - 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) seit openSUSE 13.2: Wicked Service
Wichtig: entweder / oder mit 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: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)
Zusammenfassung Netzwerkanalyse mit Linux:
IP-Konfiguration Shellaufrufe IPv4-/IPv6-Adresse
Subnetmaskip address show
(zeigt immer alle NICs)ip a s
(kurze Variante)/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!
Do., 24.08.17
Donnerstag, 24.08.17, 08.30 - 16.00 Uhr
- Rekapitulation, TN-Fragen
Anm.: die an Prüfung interessierten TN können sich für diese anmelden... - Zusammenfassung zu Netzwerktechnik wiederholt
- 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)
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 - Prozesse
Starten von Programmen in der Konsole im Hintergrund (Background - bg):kate mittwoch.txt &
bzw. natürlich auch:kdesu kate /etc/hosts &
Konsole meldet Prozess-ID; Recherche im Verzeichnisbaum:/proc/...
(Ordner mit PIDs)ps
in Kombination mitgrep
zum Suchen bestimmter laufender Prozesse (z.B. sshd)
Befehle:fg
,bg
,jobs
,ps
ps ax | grep firefox
(bitte wieder anps --help
undman ps
denken)
hier: grep für "Filtern" von Daten (Wikipedia Link - global regular expressions print)
Tools:ps, pstree, pstree -p, top,
(Signale beachten; "Overkill SIGKILL" mit -9, Standardsignal SIGTERM ist -15)
kill
Prozesseigenschaften:
PID, Status (running, sleeping, zombie)
Tipp: Grafische Übersicht mit Strg + Esc (oder Aufruf/Suche mit System...) - Ü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!)
YaST Softwareverwaltung
Anm. zu openSUSE: Paket heißt auch 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 - Drucken
verschiedene Nutzungen und Installationen unter Linux
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 SuseFirewall2 gestoppt werden:systemctl stop SuseFirewall2.service
(später natürlich wieder starten oder einfach neustart abwarten)
Empfohlene Verwaltung der Druckserver-Umgebung dann mit CUPS
Fr., 25.08.17
Freitag, 25.08.17, 08.30 - 16.00 Uhr
- Rekapitulation, TN-Fragen
- To-Do-List Freitag: (Anm.: hier genannte Topics erledigt)
Gesamtrekapitulation,
VirtualMachine openSUSE mit VirtualBox zeigen,
Wiederholungsübungen von Schwerpunktthemen der Woche,
Datenträgerverwaltungen (mount / umount; USB, DVD),
Datei-/Ordnerhandling mit Dolphin Dateimanager vs. Bash,
Archive mit tar und Dolphin,
→ Befehlsreferenz (Bash Kommandos "Best-Of"),
Konsoleneditoren (nano, pico, mcedit, emacs, vim), - 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)
Anweisungen für das System zum Mounten beim Systemstart:cat /etc/fstab
Darstellung der Techniken und Vorgehensweisen mit einem USB-Stick
Tools:fdisk
,mkfs.ext4
,mount
Alle Analysen wieder mit Hilfe vonlsblk
,blkid
,fdisk -l
,cfdisk
- 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 - VI (bzw. VIM - der VI improved) - im Seminar nur kurz gezeigt)
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) - Übung: SMB-Freigaben auf Samba-Server
Bereitstellung Seminarscreenshots per Samba-Server:
Pfad in Dolphin: smb://192.168.3.1/Public (Protokoll: smb/cifs)
Servertechnik: Samba-Server - Musteraufgabe (aktualisierte Version für openSUSE 42.3)
und Prüfungsvorbereitung durchgeführt - bzw. letzte Fragen - TN-Bescheinigungen, Feedback-Bögen, letzte TN-Fragen
/etc/fstab - blkid
Formatieren mkfs
Dolphin DVD Mount
Mountanalysen - /etc/mtab
Wechseldatenträger
Backup mit tar
Schönen Dank für die unterhaltsame und kurzweilige Seminarwoche und Ihre überaus erfreulichen und positiven Feedbacks
Ihr Trainer Joe Brandes