Nach der Sommerpause und zum Start des Semesters an der VHS Braunschweig findet aus dem "Fachkraft IT-Systeme und -Netzwerke (FITSN)"-Zertifikat ein Seminar für das Modul "Linux" statt.
In unserem praxisorientierten Seminar werden wir die Techniken des alternativen Betriebssystems von der Installation bis zur Administration über die grafischen Frontends und auch über die Befehlszeile (Shell) erlernen.
Hier die Rahmendaten unseres Seminars:
Ort: VHS Braunschweig, Raum 2.03
Zeiten: Mo, 29.08. bis Fr, 02.09.2016; jeweils 08.30 - 16.00 Uhr
Prüfung: eine freiwillige Prüfung ist für Mi., 14.09.2016, 17.00 Uhr, Raum 2.03 geplant
Erstkorrektur: Status 16.09.16 erledigt - Alle TN (6 TN) haben die Prüfung mit großteils guten und sehr guten Ergebnissen bestanden! Ein stolzer Trainer gratuliert!
Anm.: Nach dem Seminar ist vor dem Seminar: wir bieten an der VHS Braunschweig auch einen "Linux Aufbauworkshop" an. Ich freue mich auf Ihre Nachfragen und Ihr Interesse an unseren Seminaren!
Ich werde unser Seminar in diesem Beitrag wieder ausführlich begleiten...
Ihr Trainer Joe Brandes
Mo., 29.08.16
Montag, 29.08.16, 08.30 - 16.00 Uhr
- Orientierungsphase, TN-Themen, freiwillige Prüfung, TN-Material Herdt-Skript,
Installationsmedium (Wechselplatte und openSUSE 42.1 64-Bit DVD) - Linux (oder eigentlich GNU/Linux)
freier Betriebssystemkern (hier: monolithisch, wobei aktuelle Entwicklungen nicht mehr nur starr monolithisch vs. Microkernel lauten; siehe Wikipedia-Artikel Link)
engl.: Kernel (siehe Website für den Kern auf kernel.org - Lizenz GNU Public License
erste öffentliche Erwähnung durch Linus Torvalds in Newsgroup comp.os.minix am 26. August 1991 (Wiki-Link L. Torvalds) - Distributionen
Debian - Nummer 1 bei den Server-OS für Web-Services und Co
Ableger: Ubuntu, Ubuntu-Varianten (Kubuntu, Edubuntu, Mythbuntu, ...)
Red Hat - Firma mit Serverlizenzen Red Hat Enterprise Linux
Ableger: Fedora mit den offenen/freien SW-Paketen, CentOS
Novell - SLES Suse Linux Enterprise Server
Ableger: openSUSE - freie Community-Variante (siehe de.opensuse.org) - mit Version 42.1 hat Novell die Entwicklungspfade von SLES und openSUSE zusammengelegt (s. Versionen: 13.1 - 13.2 - 42.1)
Distro Ableger der Distro Paketmanagement Red Hat
(Link)Fedora, besser: CentOS
Kaufversion: RHELRPM (Red Hat Package Management)
Standardtool: rpm (ohne Auflösung Abhängigkeiten),
yumNovell (Suse)
(Link)openSUSE (Link)
Kaufversion: SLESRPM
mit YaST2-SW-Verwaltung, zypper, yumDebian
(Link)Ubuntu(s),
Linux MintDEB (Debian Pakete)
Standardtool: dpkg (ohne Auflösung Abhängigkeiten)
APT-Tools: apt-get, apt-cache, ... , aptitudeEntscheidung für "Suse"-Distro: Verbreitung in Deutschland, Nähe (gerade aktuell mit 42.1) zur Enterprise Edition (SLES - Suse Linux Enterprise Server), gute deutschsprachige Community, Install- und Konfigurationsmöglichkeiten mit YaST (guter Einstieg in Administration von Linux Systemen), ...
weitere Distributionen: ArchLInux, Linux Mint, Gentoo, Mandriva, ... - the list goes on and on (s. a. www.distrowatch.com - Installation von openSUSE 42.1 / 64-Bit
Install-Medien: CD (Netzwerk-Install; ca. 200-250 MB; bei Installation werden alle Pakete aktuell nachgeladen: ca. 3-4 GB),
DVD (auch als Live-DVD), Netzwerk-Quellen (FTP, HTTP, NFS, SMB/CIFS); immer auch Quellen in 32- und 64-Bit
Spezialität von openSUSE: YaST - Yet another Setup Tool (Installations- und Setup/Konfigurationswerkzeug) -
Partitionen
klassische Gerätenamen/dev/sda(für den ersten Datenträger - dann/dev/sdb, ...)
eingerichtete Partitionen mit Nummern:/dev/sda1, /dev/sda2, ...
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 )
Hier: UUID zum eindeutigen Bezeichnen der 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)Anm.: openSUSE würde gerne BtrFs als Dateisystem für das System und xfs für die Daten (siehe /home) vorschlagen, aber wir wollen hier die "klassischen" Dateisysteme nutzen!

Dateisysteme: ext2, ext3 (ist ext2 mit journaling FS), ext4, xfs, BtrFS, ReiserFS, Fat16, Fat32 (VFat), NTFS
grobe Einteilung/Partitionierung (bei MBR gibt es 4 Partitionen):
Anleitung für Systempartitionen im Seminar: (genauerer Sinn und Nutzung später)
1 prim. Partition/dev/sda1und 1 Erweiterte Partition/dev/sda2
Erste Analyse und Tools rund um unsere Partitionen:Mount Nutzung Eigenschaften / Root-Partition Größe: 100 GiB
Gerät:/dev/sda1(primäre Partition)/home Benutzerverzeichnisse Größe: 50 GiB
Gerät:/dev/sda5
(logische Partition in Erweiterter Partition/dev/sda2)swap Auslagerungspartition,
VMM Virtual Memory ManagementGröße: 2 GiB
Gerät:/dev/sda6
(logische Partition in Erweiterter Partition/dev/sda2)lsblk,fdisk -l /dev/sda,cfdisk
Problem: Umlaute und Sonderzeichen werden falsch dargestellt - Lösung: env LANG=C cfdisk
Erklärung: in Umgebung (env) wird als Sprache C eingestellt, was der Sprache/Kodierung des Programms entspricht (hier "englisch") - System aktualisiert (DVD von Mai 2016 -> über 350 Pakete zu aktualisieren)
Aktualisierungs-Gadget" (Package-Kit) aus der Kontrollleiste - geht später in Kollision mit Shell-Tools
Vorgriff auf Befehlszeile: Aktualisierung mit Toolzypper(siehe erster Aktualisierungsdurchlauf: dort wurde diese Toolserie aktualisiert)
Anm.: "stabile" Desktop-Umgebungen (KDE5 Plasma) erst nach Neustarts;
Standardwerkzeug (KSnapshot - für Bildschirmfotos mitDruck-Taste) wurde mit Updates in Rente geschickt (deinstalliert - removed) und stattdessen die modernere Alternative "Spactacles" installiert (Grundkonfiguration: automatische Bildschirmfoto-Dateien mitUmschalten + Druck) - Desktops
KDE: erste Gehversuche mit Desktop, Einstellung Doppelklick mit Systemeinstellungen-Werkzeug (systemsettings / KDE-Infozentrum)
Alternativen: Gnome (Standard-Desktop bei Debian), LXDE, XFCE, TWM, IceWM (in openSUSE 42.1 vorinstalliert neben KDE5/Plasma), Unity (Ubuntu)...
Übung: Aufrufe für verschiedene KDE-Standardtools (Dolphin, Kwrite, Konsole, Standard-Browser: Mozilla Firefox, Bürosuite LibreOffice, ...)
Übersichtsseite mit Window-Managern und kompletten Desktops: http://xwinman.org/ - Dateimanager
Dolphin (aktuell der Standard-Dateimanager) vs. Konqueror, Zwei-Fensteransichten (F3), Favoriten-Leisten
Anm.: Konquerer auch Browser und früher der Standard-Dateimanager von KDE - heute ist es Dolphin
Übung: Einblenden der "versteckten" Dateien/Ordner mit Tastenkombination Alt + . (beginnen ja auch mit .);
2-Fensteransicht mit Funktionstaste F3 - Konsolen / Terminals (tty - Teletyper)
Aufruf von Programmen im Desktop mit Alt + F2 - Programmname
Terminals 1 bis 6 (ohne Desktop) mittels Strg + Alt + F1 ... F6 - zurück zu Desktop mittels Alt + F7
Beenden eines Terminals mittelsexit(Anm.:logoutnutzbar bei Login-Shells)
erste Gehversuche in der Konsole (shell) mit:ls -a,ls -al,cd,su,who,whoami,ping,ifconfig
wichtig:ifconfignur mit kompletten Pfad als User aufrufbar:/sbin/ifconfig
Anm.: die Superuser/Root haben den Pfad/sbinin Ihrem Pfad - Pfad anzeigen mitecho $PATH(Pfadvariable) - Erste Hilfe in Terminal/Konsole
Man-Pages (z.B.man rm) oder Befehl mit --help (z.B.rm --help),
gerne auch Hilfe zur Hilfe mitman man
Alternativ:infoPages - Tricks in Terminal/Konsole
Befehle/Verzeichnisse/Dateien mittels Tabulator komplettieren, mit Cursor-Tasten wiederholen (durchblättern), nach oben blättern mittels Shift + PgUp (Seite hoch);
die Historie aller Shell-Aufrufe des Users in~/.bash_history;
Rekursive Suche in History mittelsStrg + R
Löschen der Konsole mittelsStrg + L
Anfang und Ende Kommandozeile mitStrg + AundStrg + E
Löschen der Kommandozeile von Cursor bis Anfang mitStrg + U
Kopieren und Einfügen (mittlere Maustaste) in der Konsole - Konsole: (Hinweis auf Extra-Beitrag mit Befehlsreferenz)
versteckte Dateien und Ordner werden mit Punkt begonnen siehe~/.bash_history;cd -(wechselt zwischen den letzten Dirs hin und her)cd ~(wechselt in das Home-Dir)
relative Pfadecd ../Dokumentevs. absolute Pfadecd /home/joeb/Dokumente - Koordination von Wechselplatten für die Woche - aktuell keine Wechsel bis Freitag nötig
Di., 30.08.16
Dienstag, 30.08.16, 08.30 - 16.00 Uhr
- Rekapitulation (heute ausführlich zu Tag 01 - bis zur ersten Pause),
TN-Fragen - Bootvorgang
0) Einschalten (Reset, POST - Power On Self Test)
1) BIOS / UEFI mit Bootsequenz (Startreihenfolge / Startmedien)
Übersicht Bootmedien: USB (Sticks/HD), Netzwerk (PXE), 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:
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 /fixbootfür Bootsektor) in Reparaturkonsole
2) Linux-Bootmanager: GRUB2 (Übersicht Bootmanager und Technik Bootmanager folgt)
3) Kernel und initrd (klassisch: init Ramdisk - initrd laden; Anm.: die Ramdisk ist optional)
4) "init" (Erster Prozess mit ID "1") (früher: SysVInit - heute: systemd)
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")
Technisch: systemd arbeitet eigentlich mit Targets (z.B. default.target) statt den klassischen Runleveln
Befehle:init,telinit,runlevel,systemctl(stattsysctlbei init-Technik)
Extra: exemplarische Szenarios für Parallelinstallation mit Windows - Linktipp MS - Bootmanager für Linux
Lilo (sehr alt und unflexibel), GRUB (oder auch GRUB Legacy - Erläuterungen auf openSUSE Portal)
aktuell: GRUB2 (technisch extrem zu GRUB abweichend und mächtiger!)
GRUB-Ordner:/boot/grub2
GRUB konfigurieren mit/etc/default/grubund den/etc/grub.d/Dateien
GRUB aktualisieren mit Befehlengrub2-mkconfig -o /boot/grub2/grub.cfg(bei Suse - andere OS haben ein kleines Hilfsskript namens update-grub)
Grub2-Techniken bedürfen genauer Recherche und Betrachtungen
Hinweis zum Bootloader mittels YaST - System - Bootloader
mögliche Speicherorte für GRUB: MBR, Bootsektor einer Partition
Erläuterungen zu GRUB2: Link Ubuntuusers-Wiki (Achtung "Ubuntu-Brille"), Linupedia-Artikel - Runlevel (klassischer Begriff - systemd arbeitet mit Targets - Grundlagenartikel systemd von Heise.de)
0 - Stop/Halt
1 / s / S - Single User (zu Wartungsarbeiten)
2 - Multi-User (mit und ohne Netzwerk - je nach Distribution)
3 - Multi-User und Netzwerk (klassische Serverumgebung LAMP und Co)
4 - unbenutzt
5 - Multi-User, Netzwerk, X-Server (heute mit Desktops wie KDE oder Gnome)
6 - Reboot
Ordner für Skripte/etc/init.d(Beispiel: sshd folgt);
Momentaufnahme openSUSE 42.1 Runlevel 5: /etc/init.d/rc5.d beinhaltet 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
Anm.: Red Hat (und Co) arbeiten mit/etc/rc.dals Haupt-Skriptordner - siehe auch Link rc.d auf init.d bei openSUSE
Unterordner für die RunlevelrcX.d(X für die Level - also z.B. /etc/init.d/rc3.d bzw. rc5.d)
hier liegen Verlinkungen (symbolische Links) zu den Start- (beginnen mit S..) und Stop/Kill-Skripten (beginnen mit K..)
openSUSE:
init-Technik wird durch systemd-Technik ersetzt bei Beibehaltung der alten (abwärtskompatiblen) init-Skript-Techniken 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 - kann man noch in diesen Ordnern finden!
Tools:runlevel,init X(X = S, 0, 1, 3, 5, 6) ,shutdown,halt,reboot
Hier mal eine ausführlichere Gegenüberstellung (angelehnt an Tafelbild im Seminar):
Tabelle zu SysVinit vs. systemd (siehe auch Link Fedoraprojekt (Link)SysVinit systemd Bemerkungen Runlevel Targets Bezeichungen für gewünschte Bootumgebung /etc/inittab keine /etc/inittab (!!)
in Ordnern diverse Dateien: (z.B.)
/usr/lib/systemd/systemKonfigurationsdatei(en) runlevel
init
telinit
sysctl
chkkonfigrunlevel (wegen Kompatibilität)
init (w. K.)
telinit (w. K.)
systemctl
journalctl
systemd-*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 chkconfig --list systemctl list-unit-files
systemctl list-dependencies multi-user-targetÜbersicht Dienste in Runleveln/im Target init 3 (oder)
telinit 3systemctl isolate runlevel3.target
systemctl isolate multi-user.targetin Runlevel 3 wechseln bzw.
in multi-user.targetinit 5 (oder)
telinit 5systemctl isolate runlevel5.target
systemctl isolate graphical.targetin Runlevel 5 wechseln bzw.
in graphical.target... systemctl isolate default.target in Standard-Runlevel wechseln bzw.
in default.targetinit 0 (oder)
telinit 0
shutdown -h
poweroffsystemctl isolate runlevel0.target
systemctl isolate poweroff.target
shutdown -h
poweroffRechner ausschalten init 6 (oder)
telinit 6
shutdown -r
rebootsystemctl isolate runlevel6.target
systemctl isolate reboot.target
shutdown -r
rebootRechner rebooten - Techniken Kernel -> X-Server -> WM/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 Runlevel 3 ohne Grafikdesktop / in Sprache Targets: multi-user.target)
"X-Server" - Zusätzlich kann man eine Grafikausgabe mit Hilfe des (klassischen) X-Servers (Wiki-Link) nutzen (X Windows System, X Server 11 - kurz X11, neu: x.org Server) mit deren Hilfe einfache Grafikfensteranwendungen (siehexterm,xeyes;-) genutzt werden können.
"Window Manager bzw. Desktop" - Oder man baut noch gleich einen kompletten Desktop inklusive Management und Zusatztools (siehekonsole,kwrite, KDE-Office) oben drauf! - Verzeichnisstruktur (eine kurze Übersicht - siehe auch ausführlicher Beitrag zu FHS auf Wikipedia)
/bin- Binaries, ausführbare Programme/boot- Kernel vmlinuz (komprimiert, mehrere Versionen mit Nummern), initrd (Ramdisk)/boot/grub2- Bootmanger (hier nicht konfigurieren - siehe /etc/default/grub)/dev- Geräte (/dev/fd0, /dev/sr0, /dev/sda, /dev/sdb, /dev/null, /dev/urandom, ...)/etc- Konfigurationen (/etc/fstab, /etc/hosts, /etc/hostname, viele Konfigurations-Unterordner: /etc/skel, ...)/etc/X11- der Ordner für den X-Server (Grundtechnik Grafikausgabe)/home- Benutzerprofile (/home/username)/lib- Programmbibliotheken (Libraries; siehe auch /lib64)/lost+found- bei journaling File Systems Daten für Fehlersuchen/Behebungen (siehe auch Toolreihe fsck)/media- klassischer Mountpoint für Wechselmedien (bei openSUSE nicht mehr vorhanden)/run/media/username- neuer Mountpoint für Wechselmedien bei openSUSE und Co/mnt- Mountpoint (der alte Standardmount für manuelle Mounts)/opt- optionale Software (hier am Beispiel XAMPP Lamp Server - Link); auch: kommerzielle Software/proc- Prozesseverwaltung (siehe Ordner mit PID-Nummern)
Übung: cat /proc/meminfo ; cat /proc/interrupts ; cat /proc/cpuinfo/root- Homedir für SuperUser root/sbin- Programme mit hohen Privilegien (SuperUser)/srv- Serverdienste (Verzeichnisse z.B. für Webserver - diese findet man gerne auch unter /var/www ;-)/tmp- Temporärer Ordner; gemeinschaftlich im System (später: besondere Zugriffsrechte)/usr- Großteil der installierten Software im System (Unix System Resources)/var- Variable Daten
Unterscheidung/Gruppierung von Daten auf Unix/Linux Systemen gemäß File Hierarchy Standard (FHS):
veränderliche/dynamische vs. statische
und
gemeinsam genutzte vs. nicht gemeinsam genutzte Verzeichnisse
Mi., 31.08.16
Mittwoch, 31.08.16, 08.30 - 16.00 Uhr
- Rekapitulation, TN-Fragen
Kurzüberblick Paketmanagement
(s.a. Mo)
für die Einstimmung auf SW-Verwaltung (Installation/Deinstallation) mit YaST-ToolsDistro Ableger der Distro Paketmanagement Red Hat
(Link)Fedora, besser: CentOS
Kaufversion: RHELRPM (Red Hat Package Management)
Standardtool: rpm (ohne Auflösung Abhängigkeiten),
yumNovell (Suse)
(Link)openSUSE (Link)
Kaufversion: SLESRPM
mit YaST2-SW-Verwaltung, zypper, yumDebian
(Link)Ubuntu(s),
Linux MintDEB (Debian Pakete)
Standardtool: dpkg (ohne Auflösung Abhängigkeiten)
APT-Tools: apt-get, apt-cache, ... , aptitude
synaptic (grafische Oberfläche - Gnome)Arch Linux Arch Linux pkg.tar.xz bzw. pkg.tar.gz
Tool: PacmanSlackware Slackware früher: tar.gz
heute: TXZ (tar.xz)OpenWrt
z.B. RouterLinux auf Routern ipkg
Tool für das Wandeln von DEB in RPM (und umgekehrt):alien(kann man probieren!) - YaST - Yet Another Setup Tool - Systemeinstellungen und YaST (bzw. YaST2)
Systemeinstellung (systemsettings)
sind für den Benutzer, der User root hat wieder Einzelklick-Modus!
Beispielhafte Einstellungen:
Anzeige und Monitor - Bildschirmauflösungen
Eingabegeräte - Maus (siehe Doppelklick)
Energieverwaltung - Bildschirmschoner und Co konfigurieren
Mittels der Rubrik "Systemverwaltung" kommt man dann auch zu weitergehenden Einstellungen und YaST
Rundgang durch YaST:
Techniken in den Kategorien angesprochen und Fachbegriffe erläutert
Software - hier dann die Verwaltung der Softwarepakete (Aktualisierungen, Installationen / Deinstallationen)
Übung: Repositories - Deaktivieren der Install-DVD (Übersicht in Shell mitzypper lr),
Suche nach Paket openssh (war installiert),
Installation von "Midnight Commander" (Paketname mc) mit Abhängigkeit mc-lang (Installation durchgeführt)
Hardware - Hardware-Informationen, Drucker (wird extra thematisiert)
System - Bootloader (GRUB2 konfigurieren), Datum und Zeit, Partitionierer (Datenträger verwalten), Dienste-Verwaltung (systemd - Runlevel verwalten)
Netzwerkgeräte - Netzwerkeinstellungen (Konfiguration von Netzwerkadaptern
Vorschlag für Übung: Hostname konfigurieren und Übernahme Hostname per DHCP deaktivieren)
Netzwerkdienste - Rechnernamen (bearbeitet /etc/hosts)
Sicherheit und Benutzer - Firewall (hier muss später sshd freigegeben werden!), Benutzer- und Gruppenverwaltung
Virtualisierung, Unterstützung, Verschiedenes
Anm.: es gibt natürlich auch eine textbasierte Oberfläche in der Konsole oder auch als Terminal-Aufruf mit Parametern
Erkenntnis: letztendlich bietet YaST nur Grafische Oberflächen für die tatsächlichen Einstellungen im System (den Konfigurationsdateien)
Beispiel: YaST-Werkzeug "Rechnernamen" ist einfach nur ein Dialog für die Bearbeitung von/etc/hostsDatei! - Midnight Commander
aufrufen in Shell/Konsole mitmcF10zum Beenden;Strg + Ozum ein-/ausblenden des Commander-Fensters
Tipp bei Gnome: für dasgnome-terminal(bei KDE diekonsole) in den Eigenschaften die F10 deaktivieren! - Übung: Dienste verwalten
den openSSH Server mittels Aufrufen starten / stoppen / im Runlevel/Target aktivieren
alternative, beispielhafte Aufrufe für "Läuft der openSSH Server sshd?"service sshd status(klassischer init-Aufruf mit Tool service)systemctl status sshd.service(aktuelles systemd-Tool - damit dann auch start und enable)ps ax | grep sshd(den sshd als Prozess in der Gesamtliste aller Prozess "grep-en/suchen")
weitere Dienste/Runlevel/Target Techniken finden sich Dienstag/Gestern (siehe Tabelle)
und natürlich kann auch über YaST - System - Dienste-Verwaltung sich den sshd ansehen (Details anzeigen) - Benutzer- und Gruppenverwaltung (Teil I)
mittels YaST2 - Benutzer-/Gruppenverwaltung aktuelle Benutzer und Gruppe analysiert; Systembenutzer/Gruppen müssen erst extra ausgwählt (gefiltert) werden; Anzeige zu Benutzern mittels Befehlenwhoami, who, id, groups
Dateien der Benutzer/Gruppen:/etc/passwd, /etc/shadow, /etc/group
Inhalte und Aufbau der Dateien erläutert und recherchiert; Rechte analysiert und Benutzer- und Gruppen-IDs kennen gelernt; weitere Benutzereigenschaften: Home-Dir-Pfad, Shell (Standard /bin/bash; speziell: siehe wwwrun: /bin/false), Sekundäre Gruppen
Abschlussübung: neue Benutzer mit YaST-Modul angelegt und angemeldet und getestet
Tests mit gegenseitigen Zugriffen der Benutzer - hier ist "Lesen/Stöbern" in anderen Home-Dirs möglich
Wir werden erst mehr über die speziellen Berechtigungen lernen (siehecat /etc/shadowmit normalem Benutzer: keine Anzeige mit Hinweis "Keine Berechtigung") - Benutzer-"Wechsel" (eine Zusammenfassung)
Switch User (su,su -mit Wechsel in das Home-Dir)kdesu- der su für den KDE-Desktop (siehe Aufruf YaST oder manuell kwrite für Übung oben)sudo(quasi ein "Ausführen als") - muss extra konfiguriert werden (siehe Gruppe sudoers und Konfigurationen in /etc/sudo) - Netzwerk mit openSUSE 42.1
1) ifup - die klassische Technik der Einbindung von NICs und Netzwerkumgebungen
Tools:ifup,ifdown,ifconfig
2) NetworkManager - eine Red Hat Technik mit Applet (Miniprogramm für Windows Manager KDEkde5-nm-connection-editor, Gnome und Co)
Wichtig: entweder / oder nutzen - Konfiguration mittels YaST - Netzwerkeinstellungen - Global Options
3) NEU seit openSUSE 13.2: Wicked Service als Standardinstallation auf Desktop-Systemen
Anm.: bei Notebooks weiterhin NetworkManager als Standard
Befehle:ping -c 10 www.bahn.de,traceroute www.vhs-braunschweig.de
Analysewerkzeuge:dig,host,nslookup,arp,ifconfig(auch Konfigurationen),iwconfig(für WLAN)
Konfiguration DNS-Namenserver:/etc/resolv.conf(natürlich auch alles per YaST einstellbar)
manuelle Namensauflösung für Seminarnetz mit/etc/hosts(Rechnernamen linux01, ..., linux17)
Zusammenfassung Netzwerkanalyse mit Linux
Natürlich gibt es auch diverse Tools/Skripte, die diese Aufgaben/Aufrufe zusammenlegen, aber wir wollen auch immer die Basics bemühen und "Linux" verstehenIP-Konfiguration Shellaufrufe IPv4-/IPv6-Adresse
Subnetmaskip address show(zeigt immer alle NICs)ip a s(kurze Variante)/sbin/ifconfigStandardgateway
(bzw. Router)/sbin/route -n
hier: in Spalte Flags das G suchen - dann Spalte Routerip route showip r s(kurze VarianteDNS-Server cat /etc/resolv.conf
hier: Zeile mit nameserver analysieren
aber: Datei wird von den Netzwerkkonfigurations-Diensten
Wicked (bzw. NetworkManager) manipuliert
keine manuelle Änderung gewünscht!
Do., 01.09.16
Donnerstag, 01.09.16, 08.30 - 16.00 Uhr
- Rekapitulation, TN-Fragen
- Dateiberechtigungen
in detaillierter Liste (ls -l)die Berechtigungen r (read), w (write), x (eXecute) für
u - Benutzer/Besitzer (u - user),
g - Gruppe (g - group) und
o - "alle Anderen" (o - others) hergeleitet,
Standard-Berechtigungen in der (oktalen) Form 755 oder 644 erläutert (technisch 3 mal 3 Bit = 9 Bit)
Hinweis aufumask(hier openSUSE: 0 022) mit Ordnern (777 - 022 = 755) und Dateien (666 - 022 = 644)
Befehl chown (bzw. chgrp) zum Ändern von Besitzer und/oder Gruppechown -R wwwrun:www:run /var/www/html(Ordner html für Apache2 User:Gruppe konfigurieren)
Anm.: chown kann auch einfach Gruppe setzen mitchown :groupname
Befehlchmodeingeführt und nachrecherchiert (für Gruppenchgrp);
Beispiele:chmod -R 750 testordner(Ordner testordner rekursiv auf 750)chmod u+x skript.sh(Datei skript.sh für Benutzer/Besitzer ausführbar machen)
Alt.: Berechtigungen mittels Eigenschaften Dialogfenster mit Dateimanager Dolphin angesehen (Rechte Maus - Eigenschaften)
Übung mit "chmod" bzw. Dateiberechtigungen über Dolphin (Dateimanager) und Eigenschaften:
Ordner/home/donnerstagmit Berechtigungen 750 und 700 ausstatten, und Tests mit ls mit anderen Usern (joeb, mittwoch)
Fürchmod(Change Modus) an Unterordnern muss -R (Achtung: hier großes R für --recursive) gesetzt werden.
Beim Dolphin muss ein Haken für das Anwenden auf die Unterordner aktiviert werden.
Sonder-Berechtigen: (zus. 3 Bit Berechtigungen => siehechmod 4740SetUID oderchmod 1777Sticky-Bit)
SetUserId-Bit:- rwsr----- root shadow /usr/bin/passwd(siehe Besitzer: root)
Sinn: auch normale User müssen Passworte für sich wechseln können - dazu braucht man aber Schreibzugriffe root auf Passwort-Datei/etc/shadow!
SetGroupId-Bit: dasselbe Verhalten bei Ausführung von Programmen mit Gruppen-Rechte-Übernahme
Sticky-Bit:d rwxrwxrwt /tmp
der Temp-Ordner für Alle - im wahrsten Sinne, aber durch Sticky-Bit werden Dateien/Ordner-Berechtigungen und Besitz/Gruppe mit in den Ordner /tmp transportiert und sind so gegen die anderen Nutzer von /tmp schützbar - Benutzer- und Gruppenverwaltung (Teil II)
Tools für Benutzer- und Gruppenerstellungen / Anpassungen:useradd,usermod,userdel,groupadd,groupmod,groupdel
Empfehlung: vorheruseradd -D- zeigt die Defaults/Vorgaben für User) mit Home-Dir und Passwort.
Profitipp: die Konfiguration für Standarduserumgebung kann mit /etc/default/useradd vom root angepasst werden!
beispielhafter 2-Zeiler für Standarduser
#useradd -m -c "Teilnehmer 01" tn01(Schalter -m wichtig für Home-Dir-Erstellung)
#passwd tn01(Passwort setzen) - Übung in Konsole (Home-Dir)
Tools:touch,mkdir,ls,cd,pwd,su,kdesu
immer Erinnerung an man-Pages und Hilfen im System - Übung zu SSH:
1) ssh installiert? 2) Prozesse analysieren 3) Dienste-Verwaltung 4) Firewall
eine beispielhafte Vorgehensweise mit Techniken aus der bisherigen Woche:
1) Recherche zu ssh (Paket openssh) - ist "ssh" installiert?rpm -qa | grep ssh(Vorgriff auf morgige Darstellungen zu Paketmanagement und Softwareverwaltung)
zypper search ssh (zypper nur bei Suse!)
YaST Softwareverwaltung
Anm. zu openSUSE: Paket heißt auch openssh und beinhaltet sowohl ssh-Client also auch ssh-Server Software
2) Läuft der ssh-Dienst (sshd)?ps ax | grep sshd(zeigt uns: Nein - da läuft kein sshd!)systemctl status sshd.service(siehe auch Übungen der BU-Woche)
3) Dienst sshd für unseren Standard-Runlevel 5 (genauer graphical.target für systemd) konfigurieren:
YaST2 - System - Dienste-Verwaltung - sshd (enable und starten) - Einstellungen sichern, odersystemctl enable sshd.service(wieder: siehe auch Übungen der BU-Woche)
Neuer Test, ob sshd läuft? Ja!
4) Für Netzwerkzugriff
von ssh-Client (z.B. linux17 - 192.168.11.117)
auf ssh-Server (z.B. linux11 - 192.168.11.111)
jetzt noch die Firewall auf Serverseite mittels YaST - Sicherheit und Benutzer - Firewall - Allowed Services (Erlaubte Dienste) konfigurieren und
den Dienst "Secure Shell Server" hinzufügen und Firewall-Konfiguration sichern
Auf den ssh-Server dann mittels ssh Aufrufen verbinden;:ssh username@ip-adressse(für namentliche Adressen linux11 benötigt man DNS oder /etc/hosts Einträge)
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 also einen ssh-Client und am Besten gleich noch einen X-Server (für "Linux-X-Fenster")
putty (Link) - der Klassiker (die ssh-Tools als Sammlung oder einzeln; ohne X-Server (siehe cygwin)
MobaXterm (Link) - die geniale "all-in-one" Lösung als kostenlose Installation, Zip oder kostenpflichtige Enterprise-Version - Drucken
verschiedene Nutzungen und Installationen unter Linux
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 Suse-Systemen
3) Desktopmanager Druckerkonfiguration (KDE, Gnome)
Tipp: sind möglichst zu vermeiden, weil diese Tools manchmal individuelle Konfigurationen verwenden und statt dessen:
4) CUPS - Common Unix Printing Service (Apple)
der aktuelle Standard und Distro-unabhängig und per Weboberfläche verwaltbar:
Webadresse (Browser)localhost:631(also Port 631)
für Seminar:
Beispielinstallation eines "HP Color 500 Laserjet (m551)" mit Hilfe der HP Linux Imaging and Printing Toolserie auf hplip.net Website bzw. des entsprechenden Pakets
hplip (Übung:zypper search hplip,zypper info hplip,zypper install hplip);
damit werden alle nötigen Dateien (Druckertreiber ppd) und Konfigurationen für HP Geräte (Drucker, Scanner, Multifunktionsgeräte) erstellt
Empfohlene Verwaltung dann mit CUPS
Fr., 02.09.16
Freitag, 02.09.16, 08.30 - 16.00 Uhr
- Rekapitulation, TN-Fragen, To-Do für Seminarwoche:
... Shell-Übungen Dateien/Ordner (touch, mkdir, ln vs. ln -s, tar) - ... Befehlsübersicht auf diesem Portal ...
Bibliothek: Übersicht auf diesem Portal ... - Paketmanagement - Software verwalten / aktualisieren
openSUSE verwendet RPM (Red Hat Packages) mit diversen Tools, am einfachsten natürlich YaST2 mit dem Softwareverwalten betreuen, hier werden auch gleich alle Paketabhängigkeiten analysiert und aufgelöst,
Standard-Konsolentoolrpm; besser:yum(nicht bei openSUSE installiert)
openSUSE: bessereres Toolzypper(dann klappt es auch in der Konsole mit der automatischen Auflösung von Paket-Abhängigkeiten);
Anleitung zur Benutzung vonzypperauf einem openSUSE-Info-Portal (Link)
bei Debian/Ubuntu Paketmanagement (DEB, Standard-Konsolentooldpkg) heißt die entsprechende Toolreihe apt (bzw.apt-get, aptitude, synaptic)
Vergleichsseite von RPM vs. DEB Techniken und Aufrufen (Link)
Beitrag: Übersicht "Paketmanagement RPM vs. DEB - RPM - Red Hat Package Mangement (in openSUSE Distribution)
Haupttool:rpmfür die Konsole; Beispiele:rpm -i <paket>(installiert Paket)rpm -e <paket>(löscht Paket)rpm -U <paket>(aktualisiert Paket)rpm -q <paket>(Abfrage an Paket)
Wichtig: rpm kann die Abhängigkeiten der Pakete nur erkannen - aber nicht automatisch auflösen, daher sehr "unhandlich"
Tipps zu rpm: (Infos und Analysen zu Paketen und Installationen mittelsrpm -q; q für Query/Abfrage)rpm -qa | grep firefox(findet die installierten MozillaFirefox Pakete)rpm -qa | grep ^mc(findet Pakete die mit mc beginnen)
besseres Konsolenwerkzeug openSUSE:zypper(hier klappen die automatischen Auflösungen der Paketabhängikeiten)zypper refresh(aktualisiert manuell die Quellen)zypper update(aktualisiert die Pakete/Installationen)zypper install <paket>(installiert ein Paket)
Quellen für Pakete: Repositories (CD, DVD, FTP, HTTP, Lokal)
Übersicht über Repositories über YaST-Softwareverwaltung
zypper lrbzw.zypper repos
Hinweis auf Paketgruppen, Suchen/finden/installieren/deinstallieren von Paketen, Schemata
Community Repos erweitern die Quellen für Pakete:
Beispiel: Build Service (software.opensuse.org) ermöglicht Zugriff auf aktuelleres "VLC" in Version 3.3.0. statt sonst nur in 2.4er Version ;
neue Repos mit eigener Signatur (Key)
Beeitstellung von Installationsmedien und Software für openSUSE über Webportal erlaubt Recherche und Quellsuche für Pakete
Weitere Spezialität openSUSE: automatische Installation mit Hilfe von YaST Meta Packages (*.ymp) in Form von 1-Click-Installs bei openSUSE
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 - Prozesse
Starten von Programmen in der Konsole im Hintegrund (Background - bg):kwrite mittwoch.txt &
Konsole meldet Prozess-ID; Recherche im Verzeichnisbaum: /proc/... (Ordner mit PIDs)psin Kombination mitgrepzum Suchen bestimmter laufender Prozesse (z.B. sshd)
Befehle:fg,bg,jobs,psps ax | grep firefox(bitte wieder anps --helpundman psdenken)
hier: grep für "Filtern" von Daten (Wikipedia Link - global regular expressions print)
Prozesse in Ordnerstruktur /proc; Tools:ps, pstree, pstree -p, top,(Signale beachten; "Overkill SIGKILL" mit -9, Standardsignal SIGTERM ist -15)
kill
Prozesseigenschaften: PID, Status (running, sleeping, zombie)
Tipp: Grafische Übersicht mit Strg + Esc (oder Aufruf/Suche mit System...) - VI (bzw. VIM - der VI improved) - im Seminar nur kurz geübt)
unterschiedliche Modi: Einfügenmodus (z.B. mit Taste i), Kommandomodus (ESC)
Kommando: :w (schreiben),
ZZ (Schreiben und beenden; :
q (Quit - mit :q! Beenden erzwingen)
Tipp:vi test.txt(gleich Datei laden/erstellen);vi -R test.txt(nur Lesen-Modus)
Anmerkung: auch als Fensterprogramm verfügbargvim(also eigentlich aus der Gnome-Ecke) - Mounten - Inbetriebnahme von Datenträgern
das Einbinden von Datenspeichern/Datenträgern und anderen Komponenten (siehe virtuelle Systeme) in das System
Befehle: (Geräte wurden 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)
Aktuellen Mount-Status anzeigen:mountohne Parameter (oder natürlich alternativ:cat /etc/mtab
Anweisungen für das System zum Mounten beim Systemstart:cat /etc/fstab
Darstellung der Techniken und Vorgehensweisen mit einem USB-Stick (16 GB):fdisk,mkfs.ext3,mount
Alle Analysen wieder mit Hilfe vonlsblk,blkid,fdisk -l,cfdisk - Bereitstellung Seminarscreenshots per Samba-Server:
Pfad in Dolphin: smb://192.168.3.1/Public (Protokoll: smb/cifs)
Servertechnik: Samba-Server - Musteraufgabe (aktualisierte Version) verteilt
und Prüfungsvorbereitung durchgeführt - bzw. letzte Fragen - TN-Bescheinigungen, Feedback-Bögen, letzte TN-Fragen
... Download zur Musteraufgabe bereitstellen ...
Auch von dieser Stelle nochmals Danke für die anregende und erfolgreiche Seminarwoche und Ihre äußerst positiven Feedbacks.
Wir sehen uns bei der abschließenden Prüfung am 14.09.16.
Ihr Trainer Joe Brandes


