• openSUSE Leap 15.1openSUSE Leap 15.1

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: 8 TN
Zeiten: Mo, 19.08. bis Fr, 23.08.2019; jeweils 08.30 - 16.00 Uhr
Prüfung: eine freiwillige Prüfung wird im Rahmen des Seminars koordiniert!

  • Linux WorkshopLinux Workshop

Anm.: Nach dem Seminar ist vor dem Seminar...
wir bieten an der VHS Braunschweig auch einen "Linux Aufbauworkshop" (ab 11.11.2019) 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., 19.08.19

Montag, 19.08.19, 08.30 - 16.00 Uhr

Orientierungsphase, TN-Themen, freiwillige Prüfung

Installationsmedien:

  • Wechsel-SSD Sandisk 120 GB (bzw. 111.8 GiB)
    Anm.: in unterem Wechselschacht (! - nicht die oberen Beiden)
  • openSUSE Leap 15.1 (64-Bit) DVD
    Anm.: bleibt bei TN

Testinstallationen durchgeführt (14.08.2019): PC17 (mit SSD #18; Dozi-PC mit Extra-Grafik nvidia) und PC02 (mit SSD #10) jeweils ca. 25 - 30 min

Koordination von Wechselplatten für die Woche: aktuell keine Wechsel bis Seminarende am Freitag nötig

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

... stellen die gesamte Software angefangen vom Kernel, einer intelligenten Installationsrouting bis hin zu kompletten Softwareausstattungen inklusive Desktopmanagern (graphische Oberflächen - GUIs) bereit. Hier ein paar maßgebliche Vertreter:

  • 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
  • Suse/openSUSE (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: ... 10.x → 11.x → 12.x → 13.1 - 13.2 → 42.1 - 42.2 - 42.3 → 15.0 - 15.1

Eine tabellarische Übersicht

DistroAbleger der DistroPaketmanagement
Red Hat
(Link)
Fedora (Desktop) bzw.
CentOS (Red Hat Server)
Kaufversion: RHEL
RPM (Red Hat Package Management)
Standardtool: rpm (ohne Auflösung Abhängigkeiten),
yum
Novell (Suse)
(Link)
openSUSE (Link)
Kaufversion: SLES
bzw. SLED
RPM
mit YaST2-SW-Verwaltung, zypper, yum
Debian
(Link)
Ubuntu(s), Ubuntu LTS Versionen
(Long Term Support - 5 Jahre),
Linux Mint,
Raspbian (für Raspberry Pi)
DEB (Debian Pakete)
Standardtool: dpkg (ohne Auflösung Abhängigkeiten)
APT-Tools: apt, (klassisch: apt-get, apt-cache,
aptitude, ...

Entscheidung für "Suse"-Distro in unseren Linux-(Einsteiger)-Seminaren:
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 erwähnenswerte 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 15.1: https://de.opensuse.org/Portal:15.1    
Leap Download: https://software.opensuse.org/distributions/leap   
Documentationen - english: https://doc.opensuse.org/  
Upgrades: https://de.opensuse.org/SDB:Distribution-UpgradeDistribution-Upgrade  
(kürzer/besser: engl. Variante des Upgrade DB Eintrags)

Spezialversion:
Tumbleweed (Rolling Realeses / Rolling Upgrades) https://software.opensuse.org/distributions/tumbleweed      

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 Systematik klingt erst einmal gut, hat aber eigene Probleme, die oft nur mit Expertenwissen gelöst werden können!

Installation von openSUSE Leap 15.1 (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: Linux komplett lauffähig von Read-Only-Medium CD/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 bei 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!)

btrfs partitionierung os 150

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: 120 GB bzw. 111,8 GiB (per UEFI/GPT)
hier: 4 Volumes/Partitionen /dev/sda1 bis  /dev/sda4

MountNutzungEigenschaften
/boot/efi EFI-Partition Größe: 500 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: 80 GiB
Gerät: /dev/sda2 (Root Partition)
Filesystem: ext4
/home Benutzerverzeichnisse Größe: 25 GiB
Gerät: /dev/sda3 (Home Partition)
Filesystem: ext4
swap Auslagerungspartition,
VMM Virtual Memory Management
Größe: ca. +6 GiB
Gerät: /dev/sda4 (Swap Partition)
Filesystem: swap

Hier der Partitionsgraph aus einer solchen Installation:

seminar partition 800px

Erste Analyse und Tools rund um unsere Partitionen:
lsblkfdisk -l /dev/sda , gdisk (siehe GPT) , 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")

System-Aktualisierung

... 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 Erstnutzung
Nachteil: 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 )

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

Linux Software-Techniken

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 (siehe xterm , 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. kompletter Desktop" - Oder man baut noch gleich einen kompletten Desktop inklusive Management und Zusatztools (siehe konsole , kwrite , KDE-Office) oben drauf!

Desktops bzw. Desktopmanager

KDE: erste Gehversuche mit Desktop, Einstellung Doppelklick mit Systemeinstellungen-Werkzeug (systemsettings5 / KDE-Infozentrum)

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:

  • Gnome (Standard-Desktop bei Debian)
  • LXDE
  • XFCE (Standard für leichtgewichtige Systeme)
  • TWM
  • IceWM (Anm.: in openSUSE vorinstalliert neben KDE5/Plasma)
  • Unity (Ubuntu)
  • Cinnamon (Linux Mint)
  • Mate, ...

Anm.: die Desktops lassen sich fast nahezu mit jeder genutzten Distribution kombinieren.

Ü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/

Dolphin - Dateimanager

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 .)

Konsolen / Terminals

... 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 Installationsart
Anm.: muss man manchmal ausprobieren! Technisch: Multi-User System

Beenden eines Terminals mittels exit (Anm.: logout nur bei späteren Login-Shells - siehe ssh)

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)

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  
Befehl setfont  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 mit man 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 mittels Strg + R  (vorwärts dann mit Strg + S )

Löschen der Konsole 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

 

  • Anzeige konfigurierenAnzeige konfigurieren
  • YaSTYaST
  • KonsoleKonsole
  • ManpagesManpages
  • DolphinDolphin
  • doc.opensuse.orgdoc.opensuse.org

 

Di., 20.08.19

Dienstag, 20.08.19, 08.30 - 16.00 Uhr

Heute: ausführliche Rekapitulation zu Tag 01, TN-Fragen

Grundidee nach Neuinstallation von Betriebssystemen: (nach Aktualisierung der Systeme!)
Testen aller Funktionen wie Sound, Grafik/Video, Aufnahmemöglichkeiten/Mikrofon, USB und Wechselmedien (z.B. SD-Card-Reader), Spezialhardware (z.B. Fingerprint-Reader), Netzwerke (LAN, WLAN) siehe Analyse unten ...

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 mit grep zum Suchen bestimmter laufender Prozesse (z.B. sshd)
Prozess-Verwaltungs-Befehle: fg , bg , jobs , ps 

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)
hier: grep für "Filtern" von Daten (Wikipedia Link - global regular expressions print)

Prozess-Tools:
ps, pstree, pstree -p, top

kill pid (Signale beachten; "Overkill SIGKILL" mit -9, Standardsignal SIGTERM ist -15)
killall prozessname (kann mit Prozessnamen arbeiten)

Prozesseigenschaften:
PID, Status (running, sleeping, zombie)

Tipp: Grafische Übersicht mit Strg + Esc (oder Aufruf/Suche mit System...)

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  (statt sysctl bei init-Technik), journalctl  (für Analyse/Logging) 

Urprozess PID 1 - systemd

(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)

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 anderen modernen Linux
/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 (siehe Webserver /var/www/htdocs/webprojektA , Datenbanken, ...)

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
/boot
dynamisch /var/mail
/var/spool/news
/var/run
/var/lock

Beispielhafte Darstellungen: Linux Community - Linux User Zeitschrift (Linux User Ausgabe 11 / 2011 - Ältere Artikel der Linux User online verfügbar/lesbar!)

Netzwerk (I)

Erste Netzwerkanalyse mit Linux:

IP-KonfigurationShellaufrufe
IPv4-/IPv6-Adresse
Subnetmask
ip address show   (zeigt immer alle NICs)
ip a s   (kurze Variante)
Tool ifconfig nicht mehr standardmäßig installiert:
/sbin/ifconfig
Standardgateway
(bzw. Router)
ip route show
ip r s   (kurze Variante
/sbin/route -n  
hier: in Spalte Flags das G suchen - dann Spalte Router
Anm.: mittlerweile auch (oft) als deprecated bezeichnet
DNS-Server cat /etc/resolv.conf
hier: Zeile mit Text nameserver (am Zeilenanfang) analysieren
cat /etc/resolv.conf | grep ^nameserver  
aber: Datei wird von den Netzwerkkonfigurations-Diensten
Wicked (bzw. NetworkManager) manipuliert
keine manuelle Änderung gewünscht!

Im Seminar erstelltes digitales Tafelbild:
Anm.: Wacom Tablet direkt ohne Installationen unter openSUSE lauffähig!

seminar partition 800px

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

Erste Installationen in Konsole

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.

Beispiele für Installationen:

  • Tool route  (Anm.: mittlerweile als deprecated gekennzeichnet) für die Analyse des Standardgateways
  • Konsolengimmick cowsay (Funny Sprechblase in Konsole - führte zu sudo Tool)
    Mit cat /etc/os-release | cowsay -f tux  lässt man die Linux-Distributionsinfos per Maskottchen Tux verkünden.

Die eigentlichen Installationen finden mit Installationstool zypper install ... statt.

Benutzer-"Wechsel"

...eine kurze 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)
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 

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)

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 nicht aktiv!)

 

  • cfdiskcfdisk
  • /proc - kill/proc - kill
  • ps -axf und Systemmonitorps -axf und Systemmonitor
  • systemd-analyze plotsystemd-analyze plot
  • Rootdirectory /Rootdirectory /
  • cowsay -f tuxcowsay -f tux

 

Mi., 21.08.19

Mittwoch, 21.08.19, 08.30 - 16.00 Uhr

Rekapitulation, TN-Fragen

Kurzüberblick Paketmanagement

(s.a. Extra-Beitrag auf dieser Seite für die Nutzung der Paketmanagements mit den diversen Tools)

DistroAbleger der DistroPaketmanagement
Red Hat
(Link)
Fedora, besser: CentOS
Kaufversion: RHEL
RPM (Red Hat Package Management)
Basistool: rpm (ohne Auflösung Abhängigkeiten)
Standardtool: yum  
Novell (Suse)
(Link)
openSUSE (Link)
Kaufversion: SLES
RPM
mit YaST2-SW-Verwaltung
Standardtool: zypper , (yum möglich)
Debian
(Link)
Ubuntu(s),
Linux Mint
DEB (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  , slackpkg 
OpenWrt
z.B. Router
Linux auf Routern ipkg  

für die Einstimmung auf Software-Verwaltung (Installation/Deinstallation) mit YaST-Tools
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 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  )
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 nur rpm -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 mittels rpm -q  ; q für Query/Abfrage)

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)

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)

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: 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 Installation mit Anbieterwechsel erlauben (Allow Vendor change) durchgeführt werden!
Im YaST muss man hierzu unter Optionen - Anbieterwechsel erlauben anklicken
In der Konsole: 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 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

Installations- und SW-Recherche-Übungen:

Chromium - Googles Open Source Browser
bei Google wird der dann zu Chrome ;-)

Mediatheken online: ARD, ZDF, ...
s.o. Bereitstellung von Repos für Codecs "Meiatheken" und Anbieterwechsel für neueste Programmversion von "AV-Bibliotheken" (Audio Video libs)
VLC - Video Lan Client
im Zuge der Codec Bereitstellungen für die aktuellsten Unterstützungen mitinstalliert

Git - Software- und Versions-Verwaltungssystem
in den aktuellen Repos nur Version 2.16 - auf dem Git-Webportal (git-scm.com) ist bereits 2.23 verfügbar
Installation über software.opensuse.org per 1-Click-Install direkt über diese Website
Analyse: wir erhalten neben der neuesten Git-Version auch einen neuen Repo-Eintrag (devel:tools:scm) für die weiteren Aktualisierungsmöglichkeiten.

Gimp - Grafikbearbeitung
Unterschiedliche Version in aktuellen Repos (2.8.x) und als letzte Entwicklerversion (2.10.x) auf der Gimp-Website
Analyse: nur über Anleitungen auf Gimp-Website könnte man 2.10.x installieren - sonst muss man noch einen Moment auf die aktualisierten Pakete warten.

Übung: Midnight Commander

... installiert mit zypper install mc

aufrufen in Shell/Konsole mit mc 
F10 zum Beenden; Strg + O zum ein-/ausblenden des Commander-Fensters
Tipp Gnome: für das gnome-terminal in den Eigenschaften die F10 deaktivieren!

Drucken

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:

  • Treiber / Unterstützung für die HW / Drucker muss bereitgestellt werden
  • Einbindung und Verwaltung des Druckers im Betriebssystem

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.

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 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)

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)

Jetz noch eine passende Drucker-Installation erzeugen - hier mit dem HP Setup Tool (alternativ: s.o. KDE, YaST, CUPS)
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)

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.

 

  • rpm - Manpagerpm - Manpage
  • RepositoriesRepositories
  • 1-Click-Install1-Click-Install
  • Midnight Commander - mcMidnight Commander - mc
  • hplip - Tool: hp-setuphplip - Tool: hp-setup
  • CUPSCUPS

 

Do., 22.08.19

Donnerstag, 22.08.19, 08.30 - 16.00 Uhr

Rekapitulation, TN-Fragen (Extra-Check: nach Mo-Morgen kamen noch diverse TN-Themen-Wünsche nach ;-)

Nach-Orientierung / TN-Themen Do-Morgen:

  • Upgrades: am Beispiel openSUSE angesprochen, Erläuterungen / Links
    siehe Beitrag - Abschnitt Upgrades openSUSE
  • Mini-Linux: Linux-Distros für "alte"/schwache Hardware
  • USB-Boot-Stick: Beispiel später (Fr) bei CD/DVD-Medien und ISOs (siehe Tool imagewriter)

Plan / To-Do-List: einfache Runlevel/Target Nutzungen (siehe Firewall Dienst stoppen), Benutzer- und Gruppenverwaltung, Datei- und Ordnerberechtigungen

  • VM Ubuntu 18.04 LTSVM Ubuntu 18.04 LTS

VM-Special (in Mittagspause installiert):
Virtualisierung mit VirtualBox (heute: Oracle) gezeigt - installiertes Ubuntu 18.04 LTS als VM

 

Anm.: Themen "Runlevel + Targets" wurden im Seminar nur praktisch erprobt - hier folgen auch vertiefende Erläuterungen und Verlinkungen...

Runlevel

klassischer Begriff - systemd arbeitet dann 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 dort der "Server" wie bei RL 3)
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  (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
Weitere Anm.: ab openSUSE 15.1 keine weitere genaue Analyse dieser klassischen Skriptordner!

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:

SysVinitsystemdBemerkungen
Runlevel Targets Bezeichungen für gewünschte Bootumgebung
/etc/inittab keine /etc/inittab (!!)
in Ordnern diverse Dateien: (z.B.)
/usr/lib/systemd/system
Konfigurationsdatei(en)
runlevel
init
telinit
sysctl
chkkonfig
runlevel (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 3
systemctl isolate runlevel3.target
systemctl isolate multi-user.target
in Runlevel 3 wechseln bzw.
in multi-user.target
init 5   (oder)
telinit 5
systemctl isolate runlevel5.target
systemctl isolate graphical.target
in Runlevel 5 wechseln bzw.
in graphical.target
... systemctl isolate default.target in Standard-Runlevel wechseln bzw.
in default.target
init 0   (oder)
telinit 0
shutdown -h
poweroff
systemctl isolate runlevel0.target
systemctl isolate poweroff.target
shutdown -h
poweroff
Rechner ausschalten
init 6   (oder)
telinit 6
shutdown -r
reboot
systemctl isolate runlevel6.target
systemctl isolate reboot.target
shutdown -r
reboot
Rechner rebooten

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 firewalld.service  
systemctl isolate multi-user.target | bzw. graphical.target

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 Befehlen whoami, 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
siehe cat /etc/shadow  mit normalem Benutzer → keine Anzeige mit Hinweis "Keine Berechtigung"

Benutzer- und Gruppenverwaltung (Teil II)

Tools für Benutzer- und Gruppenerstellungen / Anpassungen:
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!

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)

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.

Datei- und Ordnerberechtigungen

in detaillierter Liste (ls -l  ) die Berechtigungen/Bits r (read), w (write), x (eXecute)  für

  • u - Benutzer/Besitzer (u - user)
  • g - Gruppe (g - group) und
  • o - "alle Anderen" (o - others)
  • a - Alle - später für die Tools als Parameter

hergeleitet.

seminar partition 800px

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)

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 

Hinweis: chown kann auch einfach Gruppe setzen mit chown :groupname 

Befehl chmod eingeführt und nachrecherchiert (für Gruppen chgrp)

Beispiele:
chmod 700 /home/privatuser 
beim "Ausschalten" wie 700 (oder 750) reicht immer Hauptordner ohne -R für Rekursives chmod
chmod u+x skript.sh 
Datei skript.sh für Benutzer/Besitzer ausführbar machen
chmod -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!)

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)

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.

Sonder-Berechtigungen:

zusätzliche 3 Bit Berechtigungen (quasi links von den 3*3=9 Standard-Berechtigungs-Bits)

  • chmod 4740 für das Setuid-Bit (siehe Wikipedia)
  • chmod 1777 für das Sticky Bit (siehe Wikipedia)

Beispiel Setuid-Bit - Passwortänderungstool passwd :
- rwsr----- root shadow /usr/bin/passwd  (siehe Besitzer: root)

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 !

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 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.

 

Lockeres Auslaufen... wird morgen früh fortgesetzt...
Übungen in der Konsole: cd, cd ~, cd -, cd .., pwd, echo, cat, mkdir

 

  • XFCE DesktopXFCE Desktop
  • YaST - User DefaultYaST - User Default
  • Tests mit suTests mit su
  • YaST - User ändernYaST - User ändern
  • chmod 700chmod 700
  • SetUID- und Sticky-BitSetUID- und Sticky-Bit

 

Fr., 23.08.19

Freitag, 23.08.19, 08.30 - 16.00 Uhr

Rekapitulation, TN-Fragen, Hinweis: SSDs zurückbauen

TN-Interesse: Linux für alte Hardware (Link zu freiem Artikel)
siehe offenen Heise c't Artikel "Revival - Alte Hardware mit Linux wiederbeleben"

Plan / To-Do-List:

  • Forts. Übungen in Konsole (touch, mkdir, ln -s, ...; s.a. Befehlssammlung)
  • Skripting 101 (chmod u+x)
  • tar (Daten Backup & Restore)
  • Wechseldatenträger (USB-Stick, CD/DVD) - Mount-Technik - Boot-Stick erstellen (imagewriter)
  • Recovery von Accounts mit Hilfe Grub2-Bootloader
  • ssh (Secure Shell)
  • Linux im "Windows-Netz" bzw. mit NAS
  • ... schauen wir mal...

Übungen Konsole (Forts.)

Befehle, Tools:

mkdir, mkdir -p, touch, ln -s, rm, rm -R bzw. rm -Rf, file, ls, du -h, df -h, ...

Skripting 101

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 show
ip route show
cat /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.

Immer wieder: Linux ruft Programme nur aus den Pfaden der Benutzer auf - siehe echo $PATH !

tar

Archivieren, Packen (Tape Archiver; mit Packertechnik)

tar cvzf Archiv.tar.gz ./Dokumente   (packen mit gzip)
tar xvzf Archiv.tar.gz   (entpacken mit gzip)

Hinweis: nach dem Parameter f sollte 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

Entpacken in gewünschten Ordner:
tar xvzf archiv.tar.gz -C /tmp   

Mounten - Inbetriebnahme von Datenträgern

Anm.: hier im Seminar die Konzentration auf die Wechseldatenträger "CD/DVD" und USB-Sticks
und 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)

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/Konfigurationen für das System zum Mounten beim Systemstart:
cat /etc/fstab  

Weitere Tools: (Partitionieren, Formatieren)
fdisk, cfdisk , mkfs.ext4

Alle Analysen gerne wieder mit Hilfe von
lsblk , blkid , fdisk -l , cfdisk  

Boot-USB-Stick

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)

Recovery von Accounts mit Hilfe Grub2-Bootloader 

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".

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).

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 !

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)

Passworte setzten mit Tools passwd  bzw. passwd username .

Neustart des Rechners funktioniert nur das Hard-Reset. Für Tools reboot oder shutdown -r fehlt die komplette Runlevel/Target-Umgebung.

SSH - Secure Shell

... inklusive Übungen mit Teilnehmern. Erst mal die beteiligten Topics in Übersicht:

  • Ist ssh-Server installiert und läuft?
  • Prozesse analysieren
  • Dienste-Verwaltung
  • Firewall - ist der nötige Port für den ssh-Server offen.

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 Softwareverwaltung
Anm. zu openSUSE: Paket heißt hier openssh und beinhaltet sowohl ssh-Client also auch ssh-Server Software.

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)

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, oder
systemctl enable sshd.service   (wieder: siehe auch Übungen der BU-Woche)
Neuer Test, ob sshd läuft? Ja!

Für Netzwerkzugriff - Fachlich: ssh-Client-/Server-Technik
von ssh-Client (z.B. r203pc17 - 192.168.3.117)
auf ssh-Server (z.B. r203pc11 - 192.168.3.111)

seminar partition 800px

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)

Anm.: 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 (inklusive 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!

Linux im "Windows-Netz"

... 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

seminar partition 800px

Übung: eine SMB-(Windows-) Freigabe mittels Dolphin verbinden.
Adresszeile (oberhalb) in Dolphin:

smb://rechnerIP  (oder komplett:  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

 

  • SymLinks mit ln -sSymLinks mit ln -s
  • Scripting 101Scripting 101
  • USB Boot StickUSB Boot Stick
  • Firewall für SSHDFirewall für SSHD
  • SSH Client-/ServerSSH Client-/Server
  • SMB ZugriffeSMB Zugriffe

 

 

Vielen Dank für Ihre sehr erfreulichen Feedbacks und Ihre Interessen an weiteren Seminaren.
Ihr Trainer Joe Brandes

 

 

  Privates

... zu 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 ...

joe brandes 600px

Private Visitenkarte / Technik: HTML & CSS /
  joe-brandes.de

  Jobs

... IT-Trainer & Dozent

Ich erarbeite und konzipiere seit über 25 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 600px

BECSS Visitenkarte / Technik: HTML & CSS /
  becss.de

  Hobby

... Snooker & more

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.

bsb 2011 600px

Billard Sport BS / Joomla 3.x /
  billard-bs.de

PC Systembetreuer ist J. Brandes - IT seit über 35 Jahren - Technik: Joomla 3.4+, Bootstrap 3.3.4 und "Knowledge"

© 2024 - Websitedesign und Layout seit 07/2015 - Impressum - Datenschutzerklärung
Nach oben