Infosite von Joe Brandes
Eine Website von Trainer Joe Brandes. Infos zu IT-Seminaren von A bis Z.
Das klassische PCS Zertifikat
Von der Hardware und Netzwerktechnik bis zu den den Betriebssystemen Windows, Windows Server und Linux
Ich biete diese Module an!
Zertifikat CMSOD
Module Basiszertifikat
Module Specialist
Ready for Tech Deep Dives...
Bitte gerne ihre gewünschten Seminarinhalte anfragen!
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 am Beispiel der aktuellen openSUSE 15.4 Leap Distribution 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.11Teilnehmerzahl: 6 TN (reduziert wegen Corona)Zeiten: Mo, 29.08. bis Fr, 02.09.2022; jeweils 08.30 - 16.00 UhrPrüfung: eine freiwillige Prüfung wird im Rahmen des Seminars koordiniert!
Anm.: Nach dem Seminar ist vor dem Seminar...
Wir bieten an der VHS Braunschweig auch einen "Linux Aufbauworkshop" (ab 14.11.2022) 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
Montag, 29.08.2022, 08.30 - 16.00 Uhr
Orientierungsphase, TN-Themen, freiwillige Prüfung
Installationsmedien:
Testinstallationen durchgeführt (22.08.2022): PC17 (mit SSD 500 #14; Anm.: Dozi-PC mit Extra-Grafik nvidia - install ohne Nvidia Treiber) - ca. 20 minPC16 (mit SSD 500 #13; ca. 15 - 20 minAnm.: durch die Updates während der Installationen wird im Seminar etwas Bandbreite gemindert und die Installzeit sich dadurch wahrscheinlich leicht verlängern.
Koordination von Wechselplatten für die Woche: (Anm.: Wechsel der SSDs am Seminartagende noch checken!)
... oder (in vielen Diskussionen online) auch GNU/Linux
Linux ist der freie Betriebssystemkern (hier: monolithisch, wobei aktuelle Entwicklungen nicht mehr nur starr monolithisch vs. Microkernel lauten; siehe Wikipedia-Artikel Link)Englischer Fachbegriff.: Kernel (siehe Website für den Kern auf kernel.org - Lizenz GNU Public License)
GNU (rekursives Akronym: GNU is not Unix - funny for Nerds/Geeks): die freien Tools unter der GNU Public License
Linux-Alternativen: (echtes) Unix, Solaris oder BSD (siehe FreeBSD und Spezialsysteme wie pfSense bzw. OPNsense)
Erste öffentliche Erwähnung durch Linus Torvalds in Newsgroup comp.os.minix am 26. August 1991 (Wiki-Link L. Torvalds).
... stellen die gesamte Software
bereit.
Hier ein die maßgeblichen Vertreter: (siehe auch c't Linux Netzplan)
"Linuxlands" von Linux Welt 2013 David Wolski (CC BY-SA)
Weitere erwähnenswerte Distributionen: ArchLinux (s.a. Manjaro), Gentoo, Mandriva, ... - the list goes on and on (s. a. www.distrowatch.com)
Eine tabellarische Übersicht: (und wieder: ohne Anspruch auf Vollständigkeit ;-)
Fedora (Desktop - bzw. Entwicklerplattform von Red Hat) RHEL (Kaufversion $)CentOS (Community Version)Post-CentOS: Alma Linux, Rocky Linux
Für die Neugierigen: hier eine "lange Liste" auf Wikpedia https://de.wikipedia.org/wiki/Liste_von_Linux-Distributionen zu Linux-Distros.
Dort gibt es auch eine (Monster-)Timeline zu den GNU/Linux Entwicklungen als Timeline.
Entscheidung für "Suse"-Distro in unseren Linux-(Einsteiger)-Seminaren:
Ohne Anspruch auf Vollständigkeit ;-)
Spezialität bei openSUSE: YaST - Yet another Setup Tool (Installations- und Setup/Konfigurationswerkzeug)
Spezialversionen:
Anm.: Rolling Releases benötigen keine turnus-mäßigen Upgrades (z.B. Ende Nov 2020 Upgrade Leap 15.1 auf 15.2), sondern werden ständig weiter mit Aktualisierungen versorgt.
Diese Vorgehensweise klingt erst einmal gut, hat aber eigene Probleme, die oft nur mit Expertenwissen gelöst werden können! Das sollte auch bei anderen "Rolling Release" Distributionen (siehe Arch Linux / Manjaro) bedacht werden.
Install-Medien:
Nur noch in 64-Bit, als Virtuelle Maschinen Images und für andere Hardware (hier: aarch64 bzw. ARM64 oder auch PowerPC; allgemein gilt: Linux-Distros oft nicht mehr für Intel x86 / 32-Bit).
Hinweis: Bereitstellung von Checksums (sha256) zur Verifizierung der Unversehrtheit und Originalität der Downloadarchive (Isos)sha256 -c isoname.iso.sha256 (sollte OK ergeben - oder manuell vergleichen: sha256 isoname.iso )Unter Windows bitte in PowerShell: Get-FileHash -Algorithm sha256 -path ...
sha256 -c isoname.iso.sha256
Get-FileHash -Algorithm sha256 -path ...
Und am Besten man hat gleich einen Install-Stick mit "allen gewünschten" Install-Medien parat: Ventoy Boot Stick
Ventoy modifiziert einen USB-Stick, sodass man von kopierten ISOs booten kann.
Gerätenamen /dev/sda (für den ersten Datenträger - dann /dev/sdb, ...)
/dev/sda
/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
/dev/sda1, /dev/sda2, ...
/dev/sda5
Geräte- und Partitionsbezeichnungen:
/dev/hda
/dev/nvme0n1
/dev/nvme0n1p1
/dev/nvme0n1p2
Alternativ: Verwendung von Geräten-ID-Bezeichnern (siehe später GRUB oder auch /etc/fstab )
/etc/fstab
Aktuelle Distributionen: UUID als eindeutige Bezeichner für die Partitionen/DatenträgerbereicheVorteil: 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)
/dev/sda2
/dev/sdb1
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!
/
/boot
/home
Anm.: besserer Einstieg in die Dateisysteme unter GNU/Linux; wir wollen an dieser Stelle ebenfalls auch noch LVM-Partitionen vermeiden!
Weitere bekannte und verbreitete 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:
hier: 4 Volumes/Partitionen /dev/sda1 bis /dev/sda4
/dev/sda1
/dev/sda4
/dev/sda3
Hier der Partitionsgraph aus einer vergleichbaren Installation:
Erste Analyse und Tools rund um unsere Partitionen: lsblk , fdisk -l /dev/sda , gdisk (siehe GPT) , cfdisk
lsblk
fdisk -l /dev/sda
gdisk
cfdisk
Falls es zu Problemen bei Darstellungen mit Konsolentools *disk kommt: Tipp: Umlaute und Sonderzeichen falsch dargestellt - korrigieren mit: env LANG=C cfdisk Erklärung: in Umgebung (env) wird als Sprache C eingestellt, was der Sprache/Kodierung des Programms entspricht (hier "englisch")
env LANG=C cfdisk
... im Seminar: DVD von August 2019 ca. 100 Pakete zu aktualisieren plus neuer/aktualisierter Kernel!Aber: diese Aktualisierungen wurden "live" während der Installation angeboten und durchgeführt.Vorteil: sofortig aktuelles System bei ErstnutzungNachteil: Downloads während der Installation nötig: siehe Internet-Bandbreite, Zeit, ...
Aktualisierungen (später) im laufenden System:
Aktualisierungs-Gadget" (Package-Kit) aus der Kontrollleiste/Taskleiste.Anm.: später Kollision mit Shell-Tools möglich, da dieselbe Bibliothek (libzypp) genutzt wird!Vorgriff auf spätere Befehlszeile: Aktualisierung mit Tool zypper (siehe libzypp Unterstützung; zypper update )
zypper
zypper update
Anm.: "stabile" Desktop-Umgebungen (KDE5 Plasma) manchmal erst nach Neustarts!
Systemeinstellungen und YaST
... openSUSE System-Kontrollcenter für Benutzer- und Systemumgebungen
Erster Rundgang durch die Systemsteuerungen; Hinweis auf Root-Rechte und Einfach-Klicks bei YaST
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 wie die Website des Projekts) mit deren Hilfe einfache Grafikfensteranwendungen (siehe xterm , xeyes ;-) genutzt werden können.
xterm
xeyes
Anm.: aktuell findet als moderne X-Server-Technik Wayland Einführung in die Linux Oberflächen (https://wayland.freedesktop.org/). Meine Empfehlung: erst einmal - soweit es bei den sehr modernen Distros noch geht - vermeiden.
"Window Manager bzw. kompletter Desktop" - Man managed also entweder einfach nur Fenster oder geht noch einen Schritt weiter und baut noch gleich einen kompletten Desktop inklusive Management und Zusatztools (siehe konsole , kwrite , KDE-Office) oben drauf!
konsole
kwrite
KDE: erste Gehversuche mit Desktop, Einstellung Doppelklick mit Systemeinstellungen-Werkzeug (systemsettings5 / KDE-Infozentrum)
systemsettings5
KSnapshot für Bildschirmfotos mit Druck-Taste wurde in 42.1 in Rente geschickt - removed und stattdessen durch die modernere Alternative Spactacles ersetzt. Spectacles - Grundkonfiguration: automatische Bildschirmfoto-Dateien im Bilder-Ordner des Users mit Win + Druck (aktives Fenster speichern) oder gesamter Bildschirm mit Umschalten + Druck
Alternative Desktops:
Anm.: die Desktops lassen sich fast nahezu mit jeder genutzten Distribution kombinieren. Einschränkungn ergeben sich allerdings bei der gleichzeitigen Installation von mehreren Desktops auf einer Distribution. Die Desktops nutzen unterschiedliche Techniken und Anbindungen an die unterliegende Linux-Technik. Techniken, die Probleme bei Desktop-Parallel-Installationen machen: polkit (eine Art Benutzerkontensteuerung - siehe Berechtigungssteuerung UAC bei Windows) oder auch die Settings-Tools (siehe gnome-settings).
Übung: Aufrufe für verschiedene KDE-Standardtools (Dolphin, Kate, Konsole, Standard-Browser: Mozilla Firefox, Bürosuite LibreOffice, ...)
Einfache Window-Manager: FVWM, IceWM,openbox, fluxbox (Leichtgewichte)Tiling Window-Manager: DWM, Awesome, Qtile, Xmonad (my daily Driver), Bspwm, Spectrewm, Leftwm, i3Anm.: IceWM in openSUSE vorinstalliert neben KDE5/Plasma
Übersichtsseite mit Window-Managern:
Dolphin (aktuell der Standard-Dateimanager) vs. Konqueror (der alte Dateimanager des KDE-Desktops)
Zwei-Fensteransichten F3 , Favoriten-Leisten, Konsole (Shell-Kommandos) mit F4
Anm.: Konquerer war 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 .)
Alternative Dateimanager: (Liste Dateimanager auf Ubuntuusers-Wiki - Desktops beachten)Konquerer, Nautilus, Nemo, Caja, Thunar, PCMan File Manager, Gnome Commander, Mindnight Commander (für Konsole), ...
... tty steht für Teletyper - klassisch/früher: Fernschreiber (!)
Aufruf von Programmen im Desktop mit Alt + F2 → Programmname
tty bei unserer openSUSE Installation:Terminals 1 bis 6 (ohne Desktop) mittels Strg + Alt + F1 ... F6 - zurück zu Desktop mittels (Strg +) Alt + F7 oder eben die bei Ihrer Distro oder InstallationsartAnm.: muss man manchmal ausprobieren! Technisch: Multi-User System
Beenden eines Terminals mittels exit (Anm.: logout nur bei späteren Login-Shells - siehe ssh)
exit
logout
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 mit echo $PATH (Pfadvariable)
ls -a
ls -al
cd
su
who
whoami
ping
ip
lspci
/sbin/lspci
/sbin
echo $PATH
Aufruf von Grafik-/Fensterprogrammen über die Konsole: firefox & , xeyes & Tipp: & startet Programme im Hintergrund und lässt die Konsole weiter nutzbar!
firefox &
xeyes &
Fontgröße in ttyX ändern: setfont /usr/share/kbd/consolefonts/suse12x22.psfu.gz Befehl setfont stellt wieder Standards her!
setfont /usr/share/kbd/consolefonts/suse12x22.psfu.gz
setfont
Man-Pages (z.B. man rm) oder Befehl mit --help (z.B. rm --help), gerne auch Hilfe zur Hilfe mit man man Die Man-Pages werden mit dem Standard-Pager (siehe echo $PAGER ) dargestellt - oft less ; Tipp: Pager most recherchieren.
man rm
rm --help
man man
echo $PAGER
less
most
Alternative zu Man-Pages: info Pages
info
Tricks in Terminal/Konsole
Befehle/Verzeichnisse/Dateien mittels Tabulator komplettieren (siehe: ls TabTab zeigt alle Programme mit ls...,
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 mittels Strg + R (vorwärts dann mit Strg + S )Anm.: in Bash Konsole oft Strg+S als "Stoppen" konfiguriert - dann weiter mit Strg+QProfitipp: Einsatz von FZF (Fuzzy Finder)
~/.bash_history
Löschen der Konsole (clear screen) mittels Strg + L Anfang und Ende Kommandozeile mit Strg + A und Strg + E Löschen der Kommandozeile von Cursor bis Anfang mit Strg + U Kopieren und Einfügen (mittlere Maustaste) in der Konsole
Screenshots aus Seminar-Woche 2021 - openSUSE 15.3
Screenshots aus Seminar-Woche 2020 - openSUSE 15.2
Screenshots aus Seminar-Woche 2019 - openSUSE 15.1
Dienstag, 30.08.2022, 08.30 - 16.00 Uhr
Heute: ausführliche Rekapitulation zu Tag 01, TN-Fragen, Orientierung/Interesse Prüfung
Grundidee nach Neuinstallation von Betriebssystemen: (nach Aktualisierung der Systeme!)Testen aller Funktionen wie
Und mit einer grafischen Ausstattung wie YaST2 unter openSUSE ist das alles per Maus testbar - wir sollten aber immer die Konsole / das Terminal alternativ nutzen und erlernen.
Starten von Programmen in der Konsole im Hintergrund (Background - bg): kate mittwoch.txt &
kate mittwoch.txt &
bzw. natürlich auch: kdesu kate /etc/hosts &
kdesu kate /etc/hosts &
Konsole meldet Prozess-ID; Recherche im Verzeichnisbaum: /proc/... (Ordner mit PIDs)
/proc/...
ps in Kombination mit grep zum Suchen bestimmter laufender Prozesse (z.B. sshd)Prozess-Verwaltungs-Befehle: fg , bg , jobs , ps
ps
grep
fg
bg
jobs
ps axf (ps hier mit ausführlicher Auflistung und mit f für Prozessabhängikeiten/Prozessbaum)ps ax | grep firefox (bitte wieder an ps --help und man ps denken)ps -ocmd -p124 (Info zu Command für Prozess mit PID 124)ps -ocmd -p$$ | tail -n 1 (Bitte selber analysieren! Wirkung: zeige den Namen der genutzten Shell an.)
ps axf
ps ax | grep firefox
ps --help
man ps
ps -ocmd -p12
ps -ocmd -p$$ | tail -n 1
Anm.: grep für "Filtern" von Daten (Wikipedia Link - global regular expressions print)
Prozess-Tools:
ps, pstree, pstree -p, top
kill pid
killall prozessname
Prozesseigenschaften: PID, Status (running, sleeping, zombie)
Tipp: Grafische Übersicht (oft) mit Strg + Esc (oder Aufruf/Suche nach System...)
Mal der Reihe nach...
(1) Einschalten
Reset, POST - Power On Self Test
(2) 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 Parallelinstallation zu Windows)Windows-Systeme benötigen als Bootstandard eine Aktive primäre Partition inkl. eines "sauberen" MBR (Generischer MBR)Also: Reparatur-Tipp zum MBR: mit Win-DVD: bootrec /fixmbr (bzw. bootrec /fixboot für Bootsektor) in Reparaturkonsole
bootrec /fixmbr
bootrec /fixboot
Darstellung zu Partitionierungen: exemplarische Szenarios für Parallelinstallation mit Windows - Linktipp MS
(3) Linux-Bootmanager: GRUB2
Übersicht Bootmanager und Technik Bootmanager folgt; Vorgänger / Bootalternativen: GRUB (Version 1), LILO (Linux Loader)
(4) 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 Bei UEFI: Laden per Grub2 mit linuxefi und initrdefi !
uname -a
uname -r
(5) 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)
systemd-analyze blame
systemd-analyze plot > grafische-analyse.svg
Technisch: systemd arbeitet mit Targets (z.B. default.target) statt den klassischen RunlevelnBefehle: init , telinit , runlevel , systemctl (statt sysctl bei init-Technik), journalctl (für Analyse/Logging)
init
telinit
runlevel
systemctl
sysctl
journalctl
(Reference Manual Chapter: The systemd Daemon)
init-Technik wurde durch systemd-Technik ersetzt bei Beibehaltung der alten (abwärtskompatiblen) init-Skript-Techniken und Ordnerstrukturen nach SysVinit.
Befehle: systemd-* (Tipp: Konsole dann systemd- TAB TAB)
systemd-analyze blame (zeigt zeitlich sortiert die Schuldigen beim Systemstart)systemd-analyze plot > systemstartanalyze.svg (erzeugt SVG-Grafik des gesamten Systemstarts; Tipp: zur Anzeige in Browser ziehen)
systemd-analyze plot > systemstartanalyze.svg
(eine kurze Übersicht - siehe auch ausführlicher Beitrag zu FHS auf Wikipedia)
/bin
/usr/bin
$HOME/bin
/home/joeb/bin
vmlinuz
initrd
/boot/grub2
/etc/default/grub
/dev
/etc
/etc/X11
/lib
/lost+found
/media
/run/media/username
/mnt
/opt
$HOME/opt
/proc
cat /proc/meminfo
cat /proc/interrupts
cat /proc/cpuinfo
/root
/usr/sbin
/srv
/tmp
/usr
/var
/var/www/htdocs/webprojektA
Unterscheidung/Gruppierung von Daten auf Unix/Linux Systemen gemäß File Hierarchy Standard (FHS):
Beispiele in tabellarischer Übersicht:
Beispielhafte Darstellungen: Linux Community - Linux User Zeitschrift (Linux User Ausgabe 11 / 2011 - Ältere Artikel der Zeitschrift Linux User online verfügbar/lesbar!)
Erste Netzwerkanalyse mit Linux:
ip address show
ip a s
/sbin/ifconfig
ip route show
ip r s
/sbin/route -n
cat /etc/resolv.conf
cat /etc/resolv.conf | grep ^nameserver
Im Seminar erstelltes digitales Tafelbild: Anm.: Wacom Tablet direkt ohne Installationen unter openSUSE lauffähig!
Natürlich gibt es auch diverse Tools/Skripte, die diese Aufgaben/Aufrufe zusammenlegen, aber wir wollen auch immer die Basics bemühen und "Linux" verstehen
Vorbereitung und erste Einblicke zu Thema Softwareverwaltung / Paketmanagement
Bei openSUSE werden unbekannte Tools mittels Konsolen-Werkzeug cnf (Anm.: could not find) recherchiert und es werden auch gleich die nötigen Installationsvorschläge offeriert.
cnf
Beispiele für Installationen:
route
cowsay
sudo
cat /etc/os-release | cowsay -f tux
Die eigentlichen Installationen finden mit Installationstool zypper install ... statt.
zypper install ...
...eine kurze Zusammenfassung:
su, su - Switch User (mit - geschieht Wechsel in das Home-Dir des root-Users)Empfehlung: bitte immer mit su - wechseln, da dann auch die komplette Umgebung (Environment) wechselt.
su -
kdesu - der su für den KDE-Desktop (siehe Aufruf YaST oder manuell für Grafik-/Fensterapplikationen)Anm.: in aktuellen KDE5 Plasma-Desktops kann kdesu auch verschwunden sein. Dann sollte man mit sudo - H kdeprogramm arbeiten.Tipp für Gnome: Tool gksudo
kdesu
sudo - H kdeprogramm
gksudo
sudo (quasi ein "Ausführen als") - muss extra konfiguriert werden (siehe Benutzer-Gruppe sudoers und Konfigurationen in /etc/sudo ) Wichtig: wenn in der Konsole die sudo-Berechtigung durchgeführt wurde, dann sind alle weiteren sudo-Aufrufe sofort funktionstüchtig!Also: in öffentlicher Umgebung die genutzte Konsole nach sudo schließen - und normaler Weise sperrt man ja auch den Desktop (Tastaturkombi oft: Strg + Alt + L ; statt Win + L bei Windows)
/etc/sudo
Anm.: bei Übungen zu Benutzern und Gruppen sollte man sudo mit neuen Benutzern testen/hinterfragen!Bei Ubuntu wird der Nutzer aus Installation automatisch der sudo-Admin-"root"-User (root-Account dort nicht aktiv!)Oft spielt bei den Konfigurationen rund um sudo die Gruppe sudo oder auch wheel eine besondere Rolle.Die Konfiguration von sudo sollte mit sudo visudo gecheckt/bearbeitet werden - Achtung: Vi Editor!
sudo visudo
Mittwoch, 30.08.2022, 08.30 - 16.00 Uhr
Rekapitulation, TN-Fragen
... kann über verschiedene Wege in Linux Distributionen bereitgestellt werden. Das ist einerseits wieder einmal sehr "frei" - wird aber eben oft auch schnell unübersichtlich.
Hier kurze Auflistungen:
chmod u+x programm.appimage
Verwaltung von Software über Software-ContainerAnm.: diese Softwareverteilung benötigt im Linux-OS die nötigen SW-Dienste und Management-Tools
Und dann haben manche Distros hierfür auch noch spezielle Gesamt-Software-Verwaltungs-Tools, die einen "undurchsichtigen" Zugriff auf mehrere Installationswege "vorgaukeln".
Beispielsweise haben die meisten Ubuntus eine Softwareverwaltung integriert für die 1-Klick-Installation diverser Programme (Anm.: bitte hier nicht verwechseln mit der 1-Klick Software Technik von openSUSE Leap). Aber man muss dann selber herausfinden, ob man das Programm in der Deb-Paket oder Snap-Variante installiert bekommen hat. Wer immer nur über das eine (und immer gleiche !) Grafiktool installiert/deinstalliert/aktualisiert kann damit natürlich auch sein Gesamt-System pflegen.
(s.a. Extra-Beitrag auf dieser Seite für die Nutzung der Paketmanagements mit den diversen Tools)
rpm
yum
dpkg
apt
pacman
installpkg
slackpkg
ipkg
Für die Einstimmung auf Software-Verwaltung (Installation/Deinstallation) kann man mit den YaST-GUI-Tools arbeiten.Im Seminar werden wir immer wieder die Konsole nutzen: schneller, übersichtlicher, GUI-unabhängig
Tool für das Wandeln von DEB in RPM (und umgekehrt): alien (kann man probieren oder einfach besser lassen!)
alien
openSUSE verwendet RPM (Red Hat Packages) mit diversen Tools, am einfachsten natürlich YaST2 mit der Softwareverwaltung betreuen ;-) Hier werden auch gleich alle Paketabhängigkeiten analysiert und aufgelöst, Standard-Konsolentool rpm
In RPM-basierten Distros besser: yum (standardmäßg nicht bei openSUSE installiert)
openSUSE: Tool zypper (dann klappt es auch in der Konsole mit der automatischen Auflösung von Paket-Abhängigkeiten)
Anleitung zur Benutzung von zypper auf einem openSUSE-Info-Portal (Link)
Bei Debian/Ubuntu Paketmanagement (DEB, Standard-Konsolentool dpkg ) heißt die entsprechende Toolreihe apt (bzw. apt-get, aptitude, synaptic )
apt-get, aptitude, synaptic
Vergleichsseiten von RPM vs. DEB Techniken und auch alternativen Software-Verwaltungen:
Gerade die Arch und Gentoo Wiki Seiten halten immer wieder sehr wertige Infos rund um Linux (im Allgemeinen) bereit.
zypper und rpm - Red Hat Package Mangement (in openSUSE Distribution)
Haupttool: rpm für die Konsole; Beispiele: (Hinweis: man nutzt in Praxis eigentlich nur rpm -q.. Aufrufe für Abfragen)
rpm -q..
rpm -i <paket> (installiert Paket); rpm -e <paket> (löscht Paket); rpm -U <paket> (aktualisiert Paket)rpm -q <paket> (Abfrage/Query an Paket)
rpm -i <paket>
rpm -e <paket>
rpm -U <paket>
rpm -q <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 mittels rpm -q ; q für Query/Abfrage)
rpm -q
rpm -qa | grep Firefox (findet die installierten MozillaFirefox Pakete)rpm -qa | grep -i firefox (findet Firefox ohne Berücksichtigung der CaseSensitivity/GroßKleinSchreibung)rpm -qa | grep ^mc (findet Pakete die mit mc in der rpm-Ergebniszeile beginnen)
rpm -qa | grep Firefox
rpm -qa | grep -i firefox
rpm -qa | grep ^mc
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)zypper remove <paket> (entfernt ein Paket - Anm.: überlagen/kontrollieren, ob inkl. Konfigurationen gelöscht wird?!)
zypper refresh
zypper install <paket>
zypper remove <paket>
Quellen für Pakete: Repositories (CD, DVD, FTP, HTTP, Lokal)
Übersicht über Repositories über YaST-Softwareverwaltung (list repos) zypper lr bzw. zypper repos
zypper lr
zypper repos
Tipp: Vervollständigung der zypper-Befehle in Konsole mit Tab nutzen, um schnell wichtige Parameter/Argumente zu finden: z.B. --allow-vendor-change
--allow-vendor-change
Hinweis auf Paketgruppen, Suchen/finden/installieren/deinstallieren von Paketen, SchemataCommunity Repos erweitern die Quellen für Pakete: z.B. Nvidia, Packman, libdvdcss, ...
Übung: (Nachfrage TN zu zdf.de - Mediathek bzw. Mediatheken)Repos "Packman" und "libdvdcss" hinzugefügt und Paket "vlc" (Video Lan Client) aus Repo Packman installiert!Installationen gemäß SDB-Beitrag (Support Database Suse): MP4/H.265 Video Support
Wichtig: für die aktuellsten Pakete und Unterstützungen müssen die Installationen mit Anbieterwechsel durchgeführt werden:
sudo zypper update --allow-vendor-change
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 openSUSEsiehe SUSE-Onlineportal: https://software.opensuse.org/search
Alternative Softwareinstallationen:
Tipp: für das Software übersetzen aus Quellen gleich Alles installieren, dass man auch selber Linux-Header kompilieren könnte.
Chromium - Googles Open Source Browser nutzen, oder auch Ungoogled-Chromium - bei Google wird der dann zu Chrome ;-)
Mediatheken online: ARD, ZDF, ... (siehe auch VLC - Video Lan Client in aktuellster Variante)Bereitstellung von Repos für Codecs "Mediatheken" und Anbieterwechsel für neueste Programmversion von "AV-Bibliotheken" (Audio Video libs)Im Zuge der Codec Bereitstellungen (siehe x264, x265, ..) werden die aktuellsten Unterstützungen mitinstalliert; Kurzanleitung:
Git - Software- und Versions-VerwaltungssystemInstallation über software.opensuse.org per 1-Click-Install direkt über diese Website oder über die Kommandozeile.Analyse: wir erhalten neben der neuesten Git-Version auch einen neuen Repo-Eintrag (devel:tools:scm) für die weiteren Aktualisierungsmöglichkeiten.
Gimp - GrafikbearbeitungUnterschiedliche Versionen in aktuellen Repos und als letzte Entwicklerversion auf der Gimp-WebsiteAnalyse der Versionen, Quellen und Installationswege.Special (siehe Tab): Gimp like Photoshop
Visual Studio Code (von Microsoft)für die OS Windows, Linux und MacOSAnleitung: https://code.visualstudio.com/docs/setup/linux#_opensuse-and-slebased-distributions führt zu eigenem Zypp-Repo /etc/zypp/repos.d/vscode.repo
/etc/zypp/repos.d/vscode.repo
Donnerstag, 01.09.2022, 08.30 - 16.00 Uhr
VM-Special - Virtualisierung mit VirtualBox (heute bei Firma Oracle) gezeigt
Anm.: Themen "Runlevel + Targets" wurden im Seminar nur praktisch erprobt - hier folgen auch vertiefende Erläuterungen und Verlinkungen...
klassischer Begriff - systemd arbeitet dann mit Targets - Grundlagenartikel systemd von Heise.de
0 - Stop/Halt1 / s / S - Single User (zu Wartungsarbeiten)2 - Multi-User (mit und ohne Netzwerk - je nach Distribution dort der "Server" wie bei RL 3)3 - Multi-User und Netzwerk (klassische Serverumgebung LAMP und Co)4 - unbenutzt5 - 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 (immer 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 bis rc6.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 bis rc6.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
/etc/init.d
/etc/init.d/rc5.d
/etc/init.d/rc0.d
rc6.d
/etc/init.d/boot.d
/etc/rc.d
Weitere Anm.: ab openSUSE 15.1 keine weitere genaue Analyse und Betrachtung dieser klassischen Skriptordner!
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
init X
shutdown
halt
reboot
Hier mal eine ausführlichere Gegenüberstellung:
/usr/lib/systemd/system
Tabelle zu SysVinit vs. systemd (siehe auch Link Fedoraprojekt (Link)Linux-Wiki mit Beispielaufrufen zur systemd-Technik: Willkommen in Bluelupo's Wiki - Grundlegende Kommandos zu systemd
Übungen: systemctl start | stop | status mit cron. , sshd. oder auch firewalld.service systemctl list-units --type service --state running liste alle laufenden Dienste aufsystemctl isolate multi-user.target | bzw. graphical.target
systemctl start | stop | status
systemctl list-units --type service --state running
systemctl isolate multi-user.target
mittels YaST2 - Benutzer-/Gruppenverwaltung aktuelle Benutzer und Gruppe analysiertSystembenutzer/Gruppen müssen erst extra ausgewählt (gefiltert) werden
Anzeige zu Benutzern mittels Befehlen whoami, who, id, groupsDateien der Benutzer/Gruppen: /etc/passwd, /etc/shadow, /etc/groupInhalte und Aufbau der Dateien erläutert und recherchiertRechte analysiert und Benutzer- und Gruppen-IDs kennen gelernt
whoami, who, id, groups
/etc/passwd, /etc/shadow, /etc/group
weitere Benutzereigenschaften: Home-Dir-Pfad, Shell (Standard /bin/bash ; speziell: siehe wwwrun: /bin/false ), Sekundäre Gruppen
/bin/bash
/bin/false
Abschlussübung: neue Benutzer mit YaST-Modul angelegt und angemeldet und getestetTests mit gegenseitigen Zugriffen der Benutzer - hier ist "Lesen/Stöbern" in anderen Home-Dirs möglichWir werden erst mehr über die speziellen Berechtigungen lernensiehe cat /etc/shadow mit normalem Benutzer → keine Anzeige mit Hinweis "Keine Berechtigung"
cat /etc/shadow
Tools für Benutzer- und Gruppenerstellungen / Anpassungen: useradd , usermod , userdel , groupadd , groupmod , groupdel
useradd
usermod
userdel
groupadd
groupmod
groupdel
Empfehlung: vorher useradd -D - zeigt die Defaults/Vorgaben für User) mit Home-Dir und anderen Defaultkonfigurationen. Profitipp: die Konfiguration für Standarduserumgebung kann mit der Konfigurationsdatei /etc/default/useradd vom root angepasst werden!
useradd -D
/etc/default/useradd
beispielhafter Zwei-Zeiler für einen neuen Standard-User:# useradd -m -c "Teilnehmer 01" tn01 (Schalter -m wichtig für Home-Dir-Erstellung)# passwd tn01 (Passwort setzen)
useradd -m -c "Teilnehmer 01" tn01
passwd tn01
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.
passwd
/usr/sbin/passwd
in detaillierter Liste (ls -l ) die Berechtigungen/Bits r (read), w (write), x (eXecute) für
ls -l
hergeleitet.
Standard-Berechtigungen in der (oktalen) Form 755 oder 644 erläutert (technisch 3 mal 3 Bit = 9 Bit)
Hinweis auf Tool umask (hier openSUSE: 0022) mit Standardberechtigungen für Ordner (0777 - 0022 = 0755) und Dateien (0666 - 0022 = 0644)
umask
Befehl chown (bzw. chgrp) zum Ändern von Besitzer (und/oder der Gruppe)Praxisbeispiel:chown -R wwwrun:wwwrun /var/www/html (Ordner html für Apache2 User:Gruppe konfigurieren)Anm.: bei Debian lauten User und Group für den Apache: www-data:www-data
chown
chown -R wwwrun:wwwrun /var/www/html
Hinweis: chown kann auch einfach Gruppe setzen mit chown :groupname
chown :groupname
Befehl chmod eingeführt und nachrecherchiert (für Gruppen chgrp)
chmod
chgrp
Beispiele: chmod 700 /home/privatuser beim "Ausschalten" wie 700 (oder 750) reicht immer Hauptordner ohne -R für Rekursives chmodchmod u+x skript.sh Datei skript.sh für Benutzer/Besitzer ausführbar machenchmod -aG vboxuser joeb Den User Joeb in die Gruppe vboxuser als Mitglied aufnehmen. Hier wichtig: Parameter -a (für append/anhängen) und das große G (beim kleinen g würde man die primäre Gruppe ändern!)
chmod 700 /home/privatuser
chmod u+x skript.sh
chmod -aG vboxuser joeb
Alt.: Berechtigungen mittels Eigenschaften Dialogfenster mit Dateimanager Dolphin angesehen (Rechte Maus - Eigenschaften)Übung mit "chmod" bzw. Dateiberechtigungen über Konsole und/oder Dolphin (Dateimanager) und Eigenschaften:Ordner /home/donnerstag mit Berechtigungen 750 und 700 ausstatten, und Tests mit ls mit anderen Usern (joeb, joedonnerstag)
/home/donnerstag
Für chmod (Change Modus) inklusive Unterordnern sollte -R (Achtung: hier großes R für --recursive) gesetzt werden. Beim Dolphin (bei Dateimanagern) muss ein Haken für das Anwenden auf die Unterordner aktiviert werden.
-R
--recursive
Sonder-Berechtigungen:
zusätzliche 3 Bit Berechtigungen (quasi links von den 3*3=9 Standard-Berechtigungs-Bits)
chmod 4740
chmod 1777
Setuid-Bit - Beispiel Passwortänderungstool passwd : - rwsr----- root shadow /usr/bin/passwd (siehe Besitzer: root)
- rwsr----- root shadow /usr/bin/passwd
Sinn/Erläuterung/Nutzung: auch normale User müssen ihre Passworte ändern können - dazu braucht man aber Schreibzugriffe (root) auf Passwort-Datei /etc/shadow !Security-Tipp: finde alle Setuid-Bit Tools/Skripte mitsudo find / -perm -4000 -print 2>/dev/null (Fehler/Probleme umleiten)
/etc/shadow
sudo find / -perm -4000 -print 2>/dev/null
SetGroupId-Bit: dasselbe Verhalten bei Ausführung von Programmen mit Gruppen-Rechte-Übernahme
Sticky Bit - Beispiel Temporärordner /tmp : d rwxrwxrwt root root /tmp der Temp-Ordner also quasi 777 mit allen Rechten für "alle"!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.Die Berechtigungen und Besitzverhältnisse (User:Group) kleben quasi an den Dateien und Ordnern.
d rwxrwxrwt root root /tmp
Freitag, 02.09.2022, 08.30 - 16.00 Uhr
Rekapitulation, TN-Fragen, Hinweis: SSDs zurückbauen
Plan / To-Do-List Freitag 03.09.2021:
locate
updatedb
... installiert mit zypper install mc
zypper install mc
Aufrufen in Shell/Konsole mit mc F10 zum Beenden; Strg + O zum ein-/ausblenden des Commander-Fensters
mc
F10
Strg + O
Tipp Gnome: für das gnome-terminal in den Eigenschaften die F10 deaktivieren!
gnome-terminal
Warum sollte ich mich mit VIM beschäftigen:
Checken: Paket vim installiert und nicht nur Paket vi oder vi.tiny
ESC - wechselt in Basismodus zurück (z.B. aus Insert / Einfügen Modus) :q! - Quit / VIm verlassen mit ! erzwingen :w - Speichern / WriteZZ - Speichern und VIM beenden
i - Insert / Einfügen ModusA - Insert / Einfügen Modus am Ende der Zeile
VIM Aufrufen:
vim datei.txt - öffnet / erstellt Datei datei.txtvim -R datei.txt oder view datei.txt - öffnet Datei im Read-Only-Mode (schreibgeschützt)
vim datei.txt
vim -R datei.txt
view datei.txt
Diverse Lehr- und Lernvideos zu VIM finden sich auf Youtube und sind von mir in anderen und weiterführenden Seminarunterlagen verlinkt und kommentiert.
Verschiedene Nutzungen und Installationen unter Linux möglich! Wichtig: der HW-Hersteller des Druckers (s.a. Scanner) muss "Linux-Treiber" für seinen/Ihren Drucker bereitstellen - technisch: *.PPD Dateien
Im Grunde wie bei allen Betriebssystemen:
Varianten für Drucker-Verwaltungen bzw. Installationen:
0) manuelles Installationsarchiv des Druckerherstellers,das erst noch mit chmod 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.
chmod u+x install-script.sh
./install-script.sh
1) lpd - Line Printer Daemon, der klassische Dienst zum Verwalten von Druckern, Druckjobs, PrintqueuesKommandozeilentools: lp (siehe wieder lp <tab tab> zeigt: lpq , lpr , lpc , lpstat , lpinfo )
lp
lpq
lpr
lpc
lpstat
lpinfo
2) YaST2 Modul Drucker zum Installieren oder Verwalten von Druckern bei Suse-Systemen mit YaST
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 Druckserver-Standard, Distro-unabhängig und per Weboberfläche verwaltbar: Webadresse/URL (im Browser) localhost:631 (also Port 631)
localhost:631
Seminarübung: Beispielinstallation eines "HP Color 500 Laserjet (m551)" mit Hilfe der HP Linux Imaging and Printing Toolserie über die Websites
bzw. des entsprechenden Pakets hplip aus unserer Distribution:zypper search hplip zypper info hplip zypper install hplip (jetzt sind alle unterstützten Drucker/Scanner/Multifunktionsgeräte dem Linux bekannt)
zypper search hplip
zypper info hplip
zypper install hplip
Jetz noch eine passende Drucker-Installation erzeugen - hier mit dem HP Setup Tool (alternativ: s.o. KDE, YaST, CUPS)hp-setup
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)
systemctl stop firewalld.service
Verwaltung der Druckserver-Umgebung dann (z.B.) mit CUPS unter URL localhost:631 oder einem anderen Tool Ihrer Wahl.Empfehlung: bitte für ein Tool entscheiden und nicht mit mehreren Tools gleichzeitig Ihre Drucker verwalten.
Einfaches Skript in Skript-Ordner erstellt:Anm.: erste Zeile ist sog. Shebang{code lang:bash showtitle:false lines:true hidden:false}#!/bin/bash# Kommentare, ...ip address showip route showcat /etc/resolv.conf | grep ^nameserver{/code}Sauberer Aufruf (siehe Pfadliste echo $PATH ) mit ./testscript.sh nachdem wir chmod u+x testscript.sh das Skript lauffähig gemacht haben.
./testscript.sh
chmod u+x testscript.sh
Immer wieder: Linux ruft Programme nur aus den Pfaden der Benutzer auf - siehe echo $PATH !
Archivieren, Packen (Tape Archiver; mit Packertechnik)
tar cvzf Archiv.tar.gz ./Dokumente (packen mit gzip)tar xvzf Archiv.tar.gz (entpacken mit gzip)
tar cvzf Archiv.tar.gz ./Dokumente
tar xvzf Archiv.tar.gz
Hinweis: nach dem Parameter f sollte ein/der Datei-/Archivname folgen - alle anderen hier gezeigten Parameter in Reihenfolge freic - compress/createv - verbose (mitteilungsfreudig, "geschwätzig")z - Kompression Gzip (Alternative: j - bzip2)f - Dateinamex - ExtrahierenC - Ordner als Ziel angeben
Entpacken in gewünschten Ordner: tar xvzf archiv.tar.gz -C /tmp
tar xvzf archiv.tar.gz -C /tmp
Anm.: hier im Seminar die Konzentration auf die Wechseldatenträger "CD/DVD" und USB-Sticksund mit Dolphin (KDE) und Konsole (siehe mount-Befehle)
Mounten: 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)
mount
umount
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 (aktuelle Mount-Situation)cat /etc/mtab | grep ^/dev/ (nur die Einträge mit /dev am Anfang - also Geräte)oder direkt "greppen": grep ^/dev/ /etc/mtab
cat /etc/mtab
cat /etc/mtab | grep ^/dev/
grep ^/dev/ /etc/mtab
Anweisungen/Konfigurationen für das System zum Mounten beim Systemstart: cat /etc/fstab
cat /etc/fstab
Weitere Tools: (Partitionieren, Formatieren)fdisk, cfdisk , mkfs.ext4
fdisk, cfdisk
mkfs.ext4
Alle Analysen gerne wieder mit Hilfe von lsblk (liste Blockgeräte), blkid (zeige IDs der Blockgeräte), fdisk -l , cfdisk Partitionierungstools
blkid
fdisk -l
... inklusive Übungen mit Teilnehmern. Erst mal die beteiligten Topics in Übersicht:
eine beispielhafte Vorgehensweise mit Techniken aus der bisherigen Woche:
Recherche zu ssh (Paket openssh) - ist "ssh" installiert? rpm -qa | grep ssh (Vorgriff auf morgige Darstellungen zu Paketmanagement und Softwareverwaltung)zypper search openssh (zypper nur bei Suse! Paketname eigentlich openssh oder bei anderen Distros openssh-server)YaST SoftwareverwaltungAnm. zu openSUSE: Paket heißt hier openssh und beinhaltet sowohl ssh-Client also auch ssh-Server Software.
rpm -qa | grep ssh
zypper search openssh
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)
ps ax | grep sshd
systemctl status sshd.service
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!
systemctl enable sshd.service
Für Netzwerkzugriff - Fachlich: ssh-Client-/Server-Technikvon 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 undden 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)
ssh username @ ip-adressse
Anm.: für namentliche Adressen linux11 benötigt man DNS oder /etc/hosts Einträge)
linux11
/etc/hosts
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 -X ...
Für das Kopieren von Dateien/Ordnern mit SSH nutzen wir scp in der Konsole.
scp
In vielen Distros können die grafischen Dateimanager direkt über die Adresszeile eine SSH-Verbindung ermöglichen (Tipp: manchmal Strg + L für Öffnen der Adressleiste nötig). Dann gibt man einfach die SSH-Verbindung als Adresse ein:ssh://username @ ip-adresse (bwz. @ machinename)
ssh://username @ ip-adresse
Beim Dolphin von KDE benötigen wir das Fish-Protokoll (Anm.: sollte installiert sein)fish://username @ ip-adresse So lässt sich dann auch über die Grafikoberfläche ein Datei-/Ordnermanagement sicher herstellen.
fish://username @ ip-adresse
ssh mit Windows:Wir brauchen einen ssh-Client und am Besten gleich noch einen X-Server (für "Linux-X-Fenster")
... bzw. mit NAS und dortigen "Windows-Freigaben" Linux-Technik: Samba-Server - ein Wortspiel mit dem Microsoft-Standard-Netzprotokoll smb/cifs.Die Linux-eigene "Freigabe-Technik": nfs - Networt File System
Übung: eine SMB-(Windows-) Freigabe mittels Dolphin verbinden. Adresszeile (oberhalb) in Dolphin:
smb://rechnerIP (oder komplett: smb://rechnerIP/freigabename )
smb://rechnerIP
smb://rechnerIP/freigabename
Nach Bestätigung der Adresse kommt ein Möglichkeit zur Authentifizierung mit Benutzername + Passwort.Für nachhaltiges "Speichern" der Authentifizierung kommen zusätzliche "Digitale Brieftaschen" ins Spiel.
SSDs zurückbauen und Standardinstallationen "Win" der VHS BS testen!
TN-Bescheinigungen, Feedback-Bögen, letzte TN-Fragen
Prüfungsvorbereitung / Musterprüfung:
{phocadownload view=file|id=163|text=Musteraufgabe openSUSE 15.2 - Version J. Brandes|target=s}
Im Laufe der Jahre haben wir in den Seminare verschiedenste TN-Themen dargestellt und ich will diese Infos nicht einfach "weglassen" aus diesem Beitrag / dieser Beitragsreihe, sondern hier bei den Specials unterbringen.
Benötigte Software/Downloads wird den TN bereitgestellt. Die Vorgehensweise werden im Seminar praktisch durchgeführt und für die TN dokumentiert.
Die Standard-Bash verfügt über einfache Mechnismen beim täglichen Datei- und Ordnerhandling. Das geht aber mit ein paar einfachen Tools noch besser.
Fuzzy Finder für die Shells aber auch gerne später im VIm.
Projektseite: https://github.com/junegunn/fzf
Kurzanleitung mit Installation via Git-Repo:
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf~/.fzf/install
Alle Nachfragen mit Standard übernehmen, damit die nötigen Shell-Konfigurationen erzeugt und konfiguriert werden.
Tastenkombinationen:
Der Entwickler stellt auch ein VIm-Plugin zur Verfügung, mit der man dann diese mächtigen Such- und Filtertechniken im Editor VIm nutzen kann (Readme für VIm-FZF).
Das verbesserte "Change Directory - cd" als Befehl z.
z
Projektseite: https://github.com/rupa/z
Kurzanleitung: (hier für Ordner ~/opt/.. )
~/opt/..
git clone https://github.com/rupa/z.git
In der ~/.bashrc (am Ende) das z-Shell-Skript sourcen:
. ~/opt/z.z.sh
Dann einfach ein paar der Ordner mit cd wechseln. Dann zeigt z bereits eine Liste an und lässt sich nutzen.
Mit dem in Rust geschriebenen Starship-Projekt kann man sich eine Befehlszeile mit einer einzigenen Konfigurationsdatei starship.toml definieren. Diese Konfiguration lässt sich dann per One-Liner in der jeweiligen Shell-Konfiguration (Bash, Zsh, Fish, PowerShell, ...) einfügen.
Kurzanleitung: (Bitte gerne das Skript vorab herunterladen und analysieren!)
sh -c "$(curl -fsSL https://starship.rs/install.sh)"
Einbinden in die Bash:
eval "$(starship init bash)"
Aber wie gesagt: Starship lässt sich in diverse Shell von diversen OS integrieren: siehe Github-Projektseite zu Starship
Als Trainer stelle ich gerne auch eine erste Konfigurationsdatei für Starship ( ~/.config/starship.toml ) bereit.
~/.config/starship.toml
Die Befehlszeile inklusive Techniken zu Git & Co in attraktiver Aufmachung.
Hier sind mit der Anwendung Terminator in mehreren Fenstern neben der Bash auch die Zsh (Z Shell) und die PowerShell zu sehen.
Unter openSUSE einfach mit Grafik-Tool imagwriter (also: zypper install imagewriter )Einfach ein heruntergeladenes ISO per Drag & Drop auf das Tool ziehen, einen USB-Stick (leer oder mit vernachlässigbarem Inhalt) einstecken (nicht mounten!) und den Schreibprozess auf den Stick starten. Der USB-Stick wird vollständig überschrieben!
Ein anderes (Profi-) Tool: UNetbootin (Link Homepage - github)
Technische Anmerkung zum Booten von USB-Sticks: ggf. muss das (heutige) UEFI auf das Booten von USB-Sticks konfiguriert werden. Insbesondere muss bei manchen USB-Boot-Sticks die UEFI-Boot-Konfiguration auf "UEFI und Legacy Boot" gestellt werden.
Trick: aus der DVD eine ISO erstellen mit Linux-Boardmitteln:dd if=/dev/sr0 of=/tmp/suse-dvd.iso (Gerätebez. wieder vorher per lsblk analysieren)
dd if=/dev/sr0 of=/tmp/suse-dvd.iso
TN-Interesse: Linux für alte Hardware (Link zu freiem Artikel)siehe offenen Heise c't Artikel "Revival - Alte Hardware mit Linux wiederbeleben"
Problem: root Passwort vergessen / verbaselt / ...Lösung: mit Hilfe von Grub2 neues Passwort vergeben.Beispielhafter Online-Beitrag der "Linux-Welt 06/2014": Passwort für Linux vergessen
Anm.: im Seminar hatte ich zum Zeigen über den Dozenten-PC das Problem, dass die USB-Tastatur, wegen diverser manueller Umschalter am Trainer-Platz nicht sauber in Grub2-Konsole erkannt wurde. Auf einem Teilnehmer-Notebook wurde der folgende Trick erfolgreich angewendet ;-)
Rechner starten und in Grub2-Menü per e den Edit-Modus des Standard-Booteintrag auswählen.Anm.: bei aktuellen Ubuntus ist Grub2 Modus auf hidden konfiguriert und müsste erst per Modus show aktiviert und nutzbar gemacht werden - stattdessen kann man ggf. mit dem Recovery-Modus arbeiten: Heise-Artikel "Ubuntu-Passwort vergessen".
e
In Zeile mit der der Kernel geladen wird (Anfang der Zeile: linux ... bzw. linuxefi ... hängen wir am Ende den Parameter init=/bin/bash an.Wichtig: wir haben hier in Grub2-Konsole englische Tastaturbelegung: also das = (Gleichheitszeichen) oben rechts neben Backspace-Taste und / unten rechts auf - (Minus) Taste.Tipp: englische Tastaturbelegung online recherchieren oder alternative OSK (On Screen Keyboard).
linux ...
linuxefi ...
init=/bin/bash
Den modifizierten Kernelstart per Grub2-Hilfe (siehe unten) booten: (oft) Strg + X oder F10. Wir befinden uns jetzt in einer Root-Konsole - siehe # oder whoami !
Strg
X
#
Check: mit mount checken, welchen Bootmodus das Root-Dir / (bzw. damit /etc/passwd und /etc/shadow ) haben.Das ist hier sehr wahrscheinlich der Modus ro - also nur als Read-Only!Wir mounten die Partion neu mit Modus rw : mount -o remount, rw / (und wieder checken)
/etc/passwd
ro
mount -o remount, rw /
Passworte setzten mit Tools passwd bzw. passwd username .
username
Neustart des Rechners funktioniert nur das Hard-Reset. Für Tools reboot oder shutdown -r fehlt die komplette Runlevel/Target-Umgebung.
shutdown -r
Alternativer Password-Reset, falls der "init-Trick" nicht funktioniert (Anleitung Suse Docs: Password reset)
System mit Linux-Live-System oder Installations-Medium booten und Rescue Modus wählen (User: root)Kurzanleitung:
/etc/...
fdisk
mount /dev/sda2 /mnt
mount -o remount,rw /dev/sda2 /mnt
cd /mnt
chroot /mnt
Eine solche "Trickserei" und Rettung des Systemzugriffs ist bei jedem System/OS möglich, solange die entsprechenden Datenträger nicht verschlüsselt werden!
Hier: Anleitung in Linux Welt 05/2020 - Softwaretipps - Seite 110 - "Gimp: Näher an Adobe Photoshop"Wichtig: curl und git werden benötigt
curl
git
Projekt auf https://github.com/doctormo/GimpPs.git
Die eigenene GIMP-Konfiguration /home/joeb/.config/GIMP/2.10 wird per Backup gesichert mit Skript.Praxis im Seminar.
/home/joeb/.config/GIMP/2.10
Vielen Dank nochmals für Ihre tollen Rückmeldungen zu unserem Seminarund Ihr Interesse an weiteren Seminaren. Viel Spaß und Erfolg mit Linux wünscht Ihnen Ihr Trainer Joe Brandes
Sie finden auf dieser Seite - als auch auf meiner privaten Visitenkarte joe-brandes.de einige Hintergrundinformationen zu mir und meinem Background.Natürlich stellt die IT einen Schwerpunkt in meinem Leben dar - aber eben nicht nur ...
Private Visitenkarte / Technik: HTML & CSS joe-brandes.de
Ich erarbeite und konzipiere seit über 30 Jahren IT-Seminare und -Konzepte. Hierfür stehen der "PC-Systembetreuer / FITSN" und der "CMS Online Designer / CMSOD". Ich stehe Ihnen gerne als Ansprechpartner für Ihre Fragen rund um diese und andere IT-Themen zur Verfügung!
BECSS Visitenkarte / Technik: HTML & CSS becss.de
Wer einmal zum Snookerqueue gegriffen hat, der wird es wohl nicht wieder weglegen. Und ich spiele auch immer wieder gerne eine Partie Billard mit den Kumpels und Vereinskameraden. Der Verein freut sich über jeden, der einmal in unserem schicken Vereinsheim vorbeischauen möchte.
Billard Sport BS / nicht mehr von mir betreut billard-bs.de