Große anpassung in ORdnerstruktur und Verlinkung. Ganz viel Copiloit erst mal alles chacken

This commit is contained in:
Florian Hensel
2025-12-21 14:14:51 +01:00
parent a1bb73cf22
commit 65c3fb63b1
38 changed files with 1777 additions and 38 deletions

View File

@@ -18,11 +18,11 @@ Dieses Projekt enthält ein Bash-Skript und eine Umgebung zum automatischen Konv
Alle Markdown-Dateien in mkdocs/docs pdfen:
./mkdocs-complete.sh
Einzelne Datei konvertieren:
./mkdocs-to-pdf.sh Linux_Unternehmen/nextcloud-ldap.md
Einzelne Datei konvertieren (Dateiname relativ zu `mkdocs/docs`):
./mkdocs-to-pdf.sh nextcloud-ldap.md
Mehrere Dateien gleichzeitig
./mkdocs-to-pdf.sh basics/Einstieg_in_Linux-Desktop.md Linux_Unternehmen/linux-als-ad-client.md
./mkdocs-to-pdf.sh Einstieg_in_Linux-Desktop.md linux-als-ad-client.md
````
## Voraussetzungen
@@ -36,11 +36,11 @@ Mehrere Dateien gleichzeitig
## Verzeichnisstruktur
````
mkdocs/
├── docs/ <- Markdown Quelldateien und Medien
│ ├── Linux_Unternehmen/
├── nextcloud-ldap.md
│ │ └── nextcloud-ldap-media/ <- Bilder für Markdown
│ └── basics/
├── docs/ <- Markdown Quelldateien und Medien (jetzt flach organisiert)
│ ├── nextcloud-ldap.md
│ ├── assets/
│ │ └── nextcloud/ <- Bilder und Design-Assets für Nextcloud-Seite
│ └── ... (Markdown-Dateien liegen direkt im docs-Root)
├── mkdocs.yml <- MkDocs Konfigurationsdatei
└── site/ <- Ergebnis von MkDocs Build (HTML, PDF)
````
@@ -52,7 +52,7 @@ text
## Hinweise
- Bildpfade in Markdown müssen relativ zum Markdown-Dokument korrekt sein (z.B. `./nextcloud-ldap-media/image1.png`)
- Bildpfade in Markdown müssen relativ zum MarkdownDokument korrekt sein (z.B. `assets/nextcloud/image1.png` oder `assets/nextcloud/design/Logo.png`)
- Änderungen an Markdown führen bei Ausführung des Skripts zur Neugenerierung der PDFs
- Vor dem Commit werden automatisch PDF-Download-Links hinzugefügt, wenn noch nicht vorhanden

View File

@@ -2,16 +2,16 @@
MKDOCS_DIR="mkdocs/docs"
# Einzelne Datei als Parameter übergeben
# Einzelne Datei als Parameter übergeben (Dateiname relativ zu mkdocs/docs)
if [ $# -eq 0 ]; then
echo "Usage: $0 <pfad/zur/datei.md> [z.B. Linux_Unternehmen/nextcloud-ldap.md]"
echo "Usage: $0 <datei.md> [z.B. nextcloud-ldap.md]"
exit 1
fi
md_file="$MKDOCS_DIR/$1"
if [[ ! -f "$md_file" ]]; then
echo "Fehler: $md_file nicht gefunden!"
echo "Fehler: $md_file nicht gefunden! (Pfad: mkdocs/docs/)"
exit 1
fi

View File

@@ -0,0 +1,137 @@
````markdown
# Automatisierung mit cron und systemd
Stellen Sie sich vor, Sie betreiben einen Server oder eine Anwendung, die rund um die Uhr laufen muss. Als IT-Meister möchten Sie jederzeit nachvollziehen können, ob Ihr System aktiv ist und wann es zuletzt gestartet wurde. Dafür können Sie zwei klassische Linux-Automatisierungswerkzeuge nutzen:
* **Cronjob:** Führt regelmäßig Aufgaben aus, z.B. jede Minute, jede Stunde oder einmal täglich.
* **systemd-Unit:** Startet Aufgaben beim Systemstart oder zu bestimmten Ereignissen.
Mit diesen Werkzeugen können Sie z.B. eine Datei anlegen oder aktualisieren, um so einen „Herzschlag" (Heartbeat) Ihres Systems zu dokumentieren.
## Cron-Job: Jede Minute eine Datei aktualisieren
### Praxisbeispiel: Heartbeat-File
Sie möchten, dass jede Minute der Zeitstempel einer Datei (/tmp/heartbeat.txt) aktualisiert wird. Das ist nützlich, um zu prüfen, ob Cron und das System laufen.
**So geht's:**
Öffnen Sie die Crontab des aktuellen Benutzers:
```
crontab -e
```
Fügen Sie folgende Zeile hinzu:
```
* * * * * /usr/bin/touch /tmp/heartbeat.txt
```
Jetzt wird jede Minute die Datei /tmp/heartbeat.txt neu angelegt oder ihr Zeitstempel aktualisiert. Prüfen Sie das ergebnis, indem Sie sich den Zeitstempel der neuen Datei anschauen:
```bash
ls -lah /tmp/heartbeat.txt
```
\newpage
### Crontab-Syntax erklärt:
| Feld | Bedeutung | Wert im Beispiel | Bedeutung |
| ----------* | --------------* | --------------------------------* | ------------------* |
| Minute | 0-59 | \* | jede Minute |
| Stunde | 0-23 | \* | jede Stunde |
| Tag (Monat) | 1-31 | \* | jeder Tag |
| Monat | 1-12 | \* | jeder Monat |
| Tag (Woche) | 0-7 (0/7 = Son) | \* | jeder Wochentag |
| Befehl | Befehl | /usr/bin/touch /tmp/heartbeat.txt | Was wird ausgeführt |
**Beispiel:**
```
* * * * * /usr/bin/touch /tmp/heartbeat.txt
```
→ Jede Minute wird die Datei angefasst („touched").
**Weitere Beispiele:**
```
0 0 * * * /usr/bin/touch /tmp/midnight.txt
```
* \# jeden Tag um Mitternacht
```
*/5 * * * * /usr/bin/touch /tmp/every5min.txt
```
* alle 5 Minuten beginnend 5 Minuten
## systemd-Unit: Datei beim Systemstart aktualisieren
### Praxisbeispiel: Boot-Marker
Sie möchten beim Systemstart eine Datei (/tmp/boot.txt) anlegen oder deren Zeitstempel aktualisieren, um den letzten Bootvorgang zu protokollieren.
**So geht's:**
Erstellen Sie eine neue systemd-Service-Datei:
```shellscript
sudo nano /etc/systemd/system/touch-at-boot.service
```
Fügen Sie folgenden Inhalt ein:
```ini
[Unit]
Description=Touch file at boot
[Service]
Type=oneshot
ExecStart=/usr/bin/touch /tmp/boot.txt
[Install]
WantedBy=multi-user.target
```
1. Datei speichern und schließen.
2. Service aktivieren und testen:
```shellscript
sudo systemctl daemon-reload
sudo systemctl enable touch-at-boot.service
sudo systemctl start touch-at-boot.service
```
Nach jedem Neustart wird /tmp/boot.txt aktualisiert.
**systemd-Unit erklärt:**
```ini
[Unit]: Metadaten und Abhängigkeiten
Description: Kurze Beschreibung
[Service]: Was soll gemacht werden?
Type=oneshot: Einmaliger Befehl, kein dauerhafter Prozess der überwacht werden könnte
ExecStart: Der auszuführende Befehl
[Install]: Wann/wo soll der Service gestartet werden?
WantedBy=multi-user.target: Startet beim normalen Systemstart
```
**systemd-Kommandos:**
```shellscript
sudo systemctl start <service> # Service sofort starten
sudo systemctl enable <service> # Service beim Boot aktivieren
sudo systemctl status <service> # Status anzeigen
sudo systemctl stop <service> # Service stoppen
```
**Wann nutze ich was?**
* **Cronjob**: Für wiederkehrende Aufgaben (regelmäßig, z.B. jede Minute, stündlich, täglich)
* **systemd-Unit**: Für Aufgaben beim Systemstart, beim Herunterfahren oder bei bestimmten Ereignissen
````

View File

@@ -0,0 +1,87 @@
````markdown
# Einstieg in Linux-Desktop
## Warum Linux? Weil es mehr kann!
Linux ist nicht nur ein Betriebssystem es ist **Freiheit**. Keine Lizenzkosten, keine erzwungenen Updates, keine Datensammelwut. Stattdessen:
* **Volle Kontrolle** über dein System (keine Blackbox wie bei Windows/macOS).
* **Sicherheit** durch Open Source: Jeder kann den Code prüfen Backdoors? Fehlanzeige!
* **Anpassbar** wie Lego: Von minimalistisch bis vollgepackt mit Tools du entscheidest.
* **Perfekt für Entwickler, Maker & Tüftler**: Docker, Python, Server-Tools alles läuft out-of-the-box.
* **Ressourcenschonend**: Läuft auch auf alter Hardware flüssig (z. B. als Media-Center oder NAS).
**Ihr Ziel heute:**
Sie richten einen **Ubuntu-Desktop in VirtualBox** ein, lernen die Oberfläche kennen und setzten ein **Mini-Projekt** um: **Einen lokalen Webserver mit Python**, den sie später sogar von ihrem Host-PC aus aufrufen können.
## Notieren Sie bei jedem Schritt:
* Welche Menüpunkte oder Symbole Sie verwendet haben.
* Was Ihnen besonders leicht oder schwer gefallen ist.
* Fragen oder Auffälligkeiten, die Ihnen beim Arbeiten begegnen.
## Benutzeroberfläche kennenlernen
* Erkunden Sie die Menüstruktur und das Anwendungsmenü.
* Passen Sie die Taskleiste an (z.B. Position ändern, Plugins wie CPU- oder Temperaturanzeige hinzufügen).
* Nutzen Sie die Systemtray-Symbole (Netzwerk, Bluetooth, Lautstärke).
* Öffnen Sie verschiedene Fenster und probieren Sie das Fenster-Management aus (Minimieren, Maximieren, Schließen, ausrichten am Seitenrand).
* Finden Sie heraus, wie Sie Programme an die Taskleiste oder das Startmenü anheften können.
## Tastatur-Layout und Sprache einstellen
* Öffnen Sie die Systemeinstellungen.
* Stellen Sie das Tastatur-Layout auf Deutsch (oder Ihr gewünschtes Layout) um.
* Passen Sie die Systemsprache an.
## Dateiverwaltung mit USB-Stick
* Stecken Sie Ihren USB-Stick ein und öffnen Sie ihn im Dateimanager.
* Erstellen Sie auf dem USB-Stick einen neuen Ordner mit Ihrem Namen.
* Kopieren Sie eine Datei von der VM auf den USB-Stick und umgekehrt.
* Entfernen Sie den USB-Stick sicher über die grafische Oberfläche.
## Sonderfall etz
!!! warning **Wichtiger Hinweis:**
Damit alle Teilnehmer im Kurs effizient Updates und Software installieren können, wird im Schulungsnetzwerk ein lokaler Paket-Cache (Proxy) verwendet.
**Diesen Schritt müssen Sie außerhalb der Schulungsstätte (z.B. zu Hause) nicht durchführen!**
So richten Sie den Proxy ein:
1. Öffnen Sie ein Terminal (z.B. über das Startmenü).
2. Geben Sie folgenden Befehl ein (ersetzen Sie ggf. die IP-Adresse, durch die im Kurs verwendete):
```bash
echo 'Acquire::http::Proxy "http://10.10.224.119:3142";' | sudo tee /etc/apt/apt.conf.d/02proxy
```
3. Fahren Sie anschließend wie gewohnt mit Updates und Installationen fort.
## VLC Media Player installieren (grafisch)
* Öffnen Sie den grafischen Paketmanager („Empfohlene Software“ oder „Add/Remove Software").
* Suchen Sie nach „VLC“.
* Installieren Sie den VLC Media Player.
Weitere Programme können Sie in einem kleinen Projekt ausprobieren: [Mein erstes kleines Linux Projekt](Mein_erstes_kleines_Linux-Projekt.md)
## System aktualisieren
* Öffnen Sie das grafische Update-Tool („Software Updater" oder „Update Manager").
* Starten Sie die Systemaktualisierung und folgen Sie den Anweisungen.
## Weiteren Benutzer anlegen und Rechte vergeben
* Öffnen Sie die Einstellungen für „Benutzer und Gruppen".
* Erstellen Sie einen neuen Benutzer mit einem selbst gewählten Namen.
* Geben Sie diesem Benutzer Administratorrechte (Mitglied der Gruppe „sudo" oder „Administratoren").
## Remote-Zugriff einrichten und testen
* Aktivieren Sie „SSH" und „RDP" für den Fernzugriff.
* Testen Sie den Remote-Zugriff auch von einem Windows-PC aus:
* Für SSH: Verwenden Sie z.B. das Programm „PuTTY" von ihrem Windows aus.
* Für RDP: Verwenden Sie Microsoft Remotedesktopverbindung
Versuchen Sie die Remotezugriffe auf eigene Faust einzurichten. Falls Sie doch lieber eine Schritt-für-Schritt-Anleitung möchten, finden Sie diese [hier](Remotezugriff_einrichten.md).
````

View File

@@ -0,0 +1,256 @@
````markdown
# Grundlagen der Konsole
## Installation nützlicher Programme
Bevor Sie beginnen, installieren Sie bitte folgende Programme, die Sie im Kurs benötigen:
* nano: Einfache Textbearbeitung im Terminal
* tree: Anzeige von Ordnerstrukturen
* htop: Übersichtliche Systemüberwachung
Führen Sie diesen Befehl im Terminal aus:
```bash
sudo apt update
sudo apt install nano tree htop
```
## Wo befinden Sie sich?
Lassen Sie sich das aktuelle Verzeichnis anzeigen.
```bash
pwd
```
Kurzbeispielausgabe:
```bash
/home/benutzer
```
## Wechseln Sie in Ihr Home-Verzeichnis.
Tipp: Das Home-Verzeichnis erreichen Sie mit:
```bash
cd ~
```
Kurzbeispielausgabe nach cd:
```bash
pwd
/home/benutzer
```
## Erstellen Sie im Home-Verzeichnis einen Ordner „projekt".
```bash
mkdir -p projekt
```
Prüfung:
```bash
ls
projekt
```
## Erstellen Sie darin zwei Unterordner „dokumente" und „bilder".
```bash
mkdir -p projekt/dokumente projekt/bilder
```
Prüfung:
```bash
ls -lah projekt
```
## Wechseln Sie in den Ordner „projekt".
```bash
cd projekt
```
Prüfung:
```bash
pwd
/home/benutzer/projekt
```
## Erstellen Sie drei Textdateien: „notizen.txt", „aufgaben.txt", „ideen.txt".
```bash
touch notizen.txt aufgaben.txt ideen.txt
```
Prüfung:
```bash
ls -la
tree
```
## Erstellen Sie zwei Bilddateien (Platzhalter): „bild1.jpg" und „bild2.jpg".
```bash
touch bild1.jpg bild2.jpg
```
Prüfung:
```bash
ls -la
tree
```
## Kopieren Sie „notizen.txt" und „aufgaben.txt" in den Ordner „dokumente".
```bash
cp notizen.txt aufgaben.txt dokumente/
```
Prüfung:
```bash
tree
```
## Verschieben Sie „ideen.txt" in den Ordner „dokumente".
```bash
mv ideen.txt dokumente/
```
Prüfung:
```bash
tree -a
```
## Verschieben Sie „bild1.jpg" und „bild2.jpg" in den Ordner „bilder".
```bash
mv bild1.jpg bild2.jpg bilder/
```
Prüfung:
```bash
tree
```
## Zeigen Sie die Ordnerstruktur mit „tree" an.
```bash
tree ~/projekt
```
Erweiterte Prüfung:
```bash
tree ~/projekt
```
## Öffnen Sie eine der Textdateien mit „nano" und schreiben Sie einen kurzen Text hinein.
```bash
nano dokumente/notizen.txt
```
!!! note Speichern Sie mit <kbd>strg</kbd>+<kbd>s</kbd>, beenden Sie mit <kbd>strg</kbd>+<kbd>X</kbd>.
Prüfung:
```bash
cat dokumente/notizen.txt
```
## Zeigen Sie Ihre aktuelle IP-Adresse an.
```bash
ip address
```
Abgekürzte Beispielausgabe (IPv4):
```bash
2: eth0: <...>
inet 192.168.1.10/24 brd 192.168.1.255 scope global eth0
```
Alternative:
```bash
hostname -I
```
Beispielausgabe:
```bash
192.168.1.10
```
## Überwachen Sie Ihr System mit „htop".
```bash
htop
```
Abgekürzte Beispielausgabe (nicht-interaktiv, SnapShot):
```bash
PID USER PRI NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1234 benutzer 20 0 150M 20M 8M S 1.2 0.5 0:01.23 python3
567 root 20 0 50M 5M 3M S 0.5 0.1 0:00.45 sshd
```
## Zeigen Sie die Speicherauslastung an.
```bash
df -h
```
Abgekürzte Beispielausgabe:
```bash
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 12G 36G 25% /
```
## Zeigen Sie die Arbeitsspeicher-Auslastung an.
```bash
free -h
```
Abgekürzte Beispielausgabe:
```bash
total used free shared buff/cache available
Mem: 7.8G 1.2G 4.8G 50M 1.8G 6.1G
Swap: 2.0G 0B 2.0G
```
## Wie finden Sie Hilfe zu einem Befehl?
```bash
man <Befehl>
```
Beispiel:
```bash
man ls
```
!!! attention Zum verlassen <kbd>q</kbd> oder <kbd>strg</kbd>+<kbd>c</kbd>
## Zusatzaufgabe:
Erstellen Sie eine weitere Datei im Ordner „dokumente" und verschieben Sie diese anschließend in den Ordner „bilder". Zeigen Sie danach erneut die Struktur mit tree an.
Beispiel:
```bash
touch dokumente/zusatz.txt
echo "Testinhalt" > dokumente/zusatz.txt
mv dokumente/zusatz.txt bilder/
tree ~/projekt
```
!!! success Viel Erfolg beim Erkunden der Linux-Befehle und beim Organisieren Ihrer Dateien!
````

View File

@@ -136,7 +136,7 @@ Fügen Sie folgende Optionen global (unter [global]) oder pro Freigabe ein:
recycle:touch = yes # Zeitstempel anpassen
````
### 6.2 Automatische Bereinigung mit Cron
Fügen Sie einen [Cron-Job](../basics/Automatisierung_mit_cron_und_systemd.md) hinzu, um alte Dateien im Papierkorb zu löschen:
Fügen Sie einen [Cron-Job](Automatisierung_mit_cron_und_systemd.md) hinzu, um alte Dateien im Papierkorb zu löschen:
````bash
sudo crontab -e
````

View File

@@ -248,4 +248,4 @@ Manuelles Backup mit rsync:
sudo apt install rsync -y
rsync -av /home/meisterkurs/ /backup/meisterkurs/
````
!!! note Die Ordner sollten natürlich vorhanden sein, und der User ausreichende Berechtigung dazu haben. Siehe [Ordner erstellen](../basics/Grundlagen_der_Konsole.md) bzw. Berechtigungen in der [Samba-Anleitung](../basics/Windows_Freigaben_fuer_Linux-Einsteiger.md). Wie das regelmäßg gemacht wird, haben Sie schon mit [cron](../basics/Automatisierung_mit_cron_und_systemd.md) gelernt.
!!! note Die Ordner sollten natürlich vorhanden sein, und der User ausreichende Berechtigung dazu haben. Siehe [Ordner erstellen](Grundlagen_der_Konsole.md) bzw. Berechtigungen in der [Samba-Anleitung](Windows_Freigaben_fuer_Linux-Einsteiger.md). Wie das regelmäßg gemacht wird, haben Sie schon mit [cron](Automatisierung_mit_cron_und_systemd.md) gelernt.

View File

@@ -217,7 +217,7 @@ Apache Neustarten und Fertig
## CronJob für regelmäßige Aktualisierung der Datenbank
NextCloud aktualisiert bei jedem Zugriff auf das Webinterface die Datenbank, allerdings kostet dies wertvolle Sekunden bei einem „Wohlfühl-Interface" daher aktivieren Wir einen [CronJob](../basics/Automatisierung_mit_cron_und_systemd.md)
NextCloud aktualisiert bei jedem Zugriff auf das Webinterface die Datenbank, allerdings kostet dies wertvolle Sekunden bei einem „Wohlfühl-Interface" daher aktivieren Wir einen [CronJob](Automatisierung_mit_cron_und_systemd.md)
Die Aktion soll vom User www-data ausgeführt werden
@@ -253,7 +253,7 @@ Nextcloud ermöglicht eine einfache Anpassung des Designs an Ihr Firmenlayout di
* Favicon: [Favicon](./Nextcloud_Design/favicon.ico)
## LDAP
!!! note Konfiguration ``smb.conf`` bei einem [Samba AD-DC](../bonus/linux-als-ad-server.md)
!!! note Konfiguration ``smb.conf`` bei einem [Samba AD-DC](linux-als-ad-server.md)
````ini
[global]
ldap server require strong auth = no

View File

@@ -0,0 +1,85 @@
````markdown
# Mein erstes Linux Projekt
**Aufgabe**: Installieren Sie **3 Programme** aus der Liste und dokumentieren:
1. **Warum** haben Sie sie gewählt?
2. **Wie** haben Sie sie installiert (Terminal vs. Anwendungsverwaltung)?
3. **Was** können Sie damit machen? (z. B. Screenshot mit Flameshot, Backup mit Timeshift).
## Tools für Einsteiger
Warum diese Programme? Weil sie:
* **Alltagsprobleme lösen** (z. B.Screenshots, PDFs bearbeiten).
* **Spaß machen** (z. B. Spiele, Medien).
* **Produktivität steigern** (z. B. Notizen, Cloud-Sync).
* **Linux spannender machen** (z. B. Terminal-Tools, System-Info).
Hier sind praktische und nützliche Programme für Linux-Einsteiger, die nicht standardmäßig in Linux Mint vorinstalliert sind -- sortiert nach Kategorien mit klarem Nutzen und Istallationsbefehlen falls nicht über die Programmsuche findbar.
## Tipps
1. **Anwendungsverwaltung / Ubuntu Software-Center**:
Manche Programme (z. B. GIMP) gibt es dort mit **Bewertungen** - hilfreich für Einsteiger!
2. **Flatpak vs. APT**:
* **Flatpak** (````sudo flatpak install \...````): Einfacher, aber manchmal langsamer.
* **APT** (````sudo apt install \...````): Schneller, aber manuell Updates nötig.
---
## Medien & Unterhaltung
| **Programm** | **Nutzen** | **Installationsbefehl** |
|---------------|--------------------------------------|-------------------------|
| **Kdenlive** | Video-Schnitt (einfacher als OpenShot,aber mächtiger). | sudo apt install kdenlive |
| **Spotify** | Musik-Streaming (offizielle Linux-App). | sudo flatpak install spotify |
| **GIMP** | Bildbearbeitung (Photoshop-Alternative). | sudo apt install gimp |
| **OBS Studio** | Bildschirmaufnahmen & Livestreams. | sudo apt install obs-studio |
| **Stacer** | System-Optimierung (wie CCleaner für Linux) | sudo apt install stacer |
---
## Produktivität & Office
|**Programm** | **Nutzen** | **Installationsbefehl** |
| ----------------|--------------------------------|---------------------------|
|**OnlyOffice** | Kompatibler mit MS Office (bessere Formatierung als LibreOffice). | sudo flatpak install onlyoffice-desktopeditors |
| **Flameshot** | Screenshots mit Bearbeitung (besser als gnome-screenshot). | sudo apt install flameshot |
| **KeePassXC** | Passwort-Manager (sicher & offline).| sudo apt install keepassxc|
| **Nextcloud Client** | Cloud-Sync (z. B. für Meisterkurs/Arbeit). | sudo apt install nextcloud-desktop |
---
## System & Tools
| **Programm** | **Nutzen** | **Installationsbefehl**
|---------------|----------------------------------|---------------------------|
| **Timeshift** | System-Backups (wie "Wiederherstellungspunkt" in Windows). | sudo apt install timeshift |
| **GParted** | Partitionen verwalten (z. B. USB-Sticks formatieren). | sudo apt install gparted |
| **Neofetch** | Zeigt coole System-Infos im Terminal (Motivation!). | sudo apt install neofetch (dann ````neofetch```` eingeben) |
| **htop** | Bessere Task-Manager-Alternative. | sudo apt install htop (dann ````htop```` eingeben) |
| **Guake** | Dropdown-Terminal (nach start mit F12 ein-/ausblenden). | sudo apt install guake |
---
## Spiele & Spaß
| **Programm** | **Nutzen** |**Installationsbefehl**|
| ------------------|----------------------------------- |-------------------------|
| **Steam** |Spiele-Plattform (viele Linux-Spiele verfügbar). | sudo apt install steam |
| **Lutris** |Spiele-Manager für Windows-Spiele (via Wine). | sudo apt install lutris |
| **SuperTuxKart** |Mario-Kart-ähnliches Rennspiel (Open Source). | sudo apt install supertuxkart |
| **0 A.D.** |Strategie-Spiel (wie Age of Empires). | sudo apt install 0ad |
------------------------------------------------------------------------
## Entwicklung & Tüfteln
| **Programm** | **Nutzen** | **Installationsbefehl** |
--------------- |-----------------------------------| -------------------------|
| **VS Code** | Code-Editor (besser als Gedit). | sudo flatpak install \--classic code|
| **Docker** | Container für Projekte (z. B. Webserver, Datenbanken). | sudo apt install docker.io|
| **GitKraken** | Git-Client mit GUI (einfacher als Terminal). | sudo flatpak install gitkraken |\--classic |
| **Postman** | API-Testing (für Web-Entwickler). | sudo flatpak install postman|
````

View File

@@ -0,0 +1,8 @@
`````markdown
# Praxisprojekt Freigaben im Unternehmen
Anleitung zur Erstellung und Verwaltung von zentralen Freigaben im Unternehmensnetz.
... (Inhalt übernommen)
`````

View File

@@ -0,0 +1,234 @@
`````markdown
# Praxisprojekt Medien-NAS für KODI
![enter image description here](https://upload.wikimedia.org/wikipedia/commons/thumb/2/25/Kodi-logo-Thumbnail-light-transparent.png/250px-Kodi-logo-Thumbnail-light-transparent.png){align=right}
## Ziel des Projekts
Aufgebaut wird ein **Medien-Server mit Samba**, auf den **Windows-Clients** Medien (Musik, Videos, Bilder, ROMs) per **Windows-Freigabe** ablegen, und den eine **Kodi-VM** wiederum per SMB einbindet.
## 1. Vorbereitung
### 1.1 Voraussetzungen
* Linux-Server (z.B. Ubuntu 24.04 LTS oder Linux Mint)
* Samba ist installiert und läuft
* Windows-PC im gleichen Netzwerk (legt Medien per Freigabe ab)
* Virtuelle Maschine (z.B. VirtualBox) mit:
* Linux Mint + Kodi **oder**
* Direkt in Windows
* Netzwerkzugriff zwischen Server, Windows-PC und VM
### 1.2 Samba-Grundkonfiguration prüfen
Konfigurationsdatei öffnen:
````bash
sudo nano /etc/samba/smb.conf
````
Minimal sinnvoller globaler Abschnitt (Beispiel):
````ini
[global]
workgroup = WORKGROUP
server string = %h Samba Server
security = user
server min protocol = SMB2
client min protocol = SMB2
unix charset = UTF-8
ntlm auth = yes
log file = /var/log/samba/log.%m
max log size = 1000
````
Samba testen und Dienst starten:
````bash
sudo samba-tool testparm
sudo systemctl restart smbd
````
## 2. Medienverzeichnisse für Samba anlegen
Die Medien sollen vom Windows-Client aus über freigegebene Ordner auf dem Server landen. Hierfür müssen Ordner mit passenden Rechten angelegt werden.
### 2.1 Ordnerstruktur anlegen
````bash
sudo mkdir -p /srv/samba/{musik,videos,bilder,roms}
````
````-p```` erzeugt alle notwendigen Ordner darüber
die Worte in den geschweiften Klammern ````{}```` werden nacheinander mit im Befehl ersetzt
### 2.2 Rechte für einfache (Gast-)Nutzung setzen
````bash
sudo chown -R nobody:nogroup /srv/samba/{musik,videos,bilder,roms}
sudo chmod -R 775 /srv/samba/{musik,videos,bilder,roms}
````
* `nobody:nogroup`: typischer Besitzer für anonyme Zugriffe
* `775`: Besitzer/Gruppe Vollzugriff, andere lesen + ausführen
## 3. Samba-Freigaben für Medien einrichten
Freigaben in der Datei ````smb.conf```` anhängen:
````ini
[Musik]
comment = Musik-Freigabe
path = /srv/samba/musik
browseable = yes
read only = no
guest ok = yes
force create mode = 0664
force directory mode = 0775
[Videos]
comment = Video-Freigabe
path = /srv/samba/videos
browseable = yes
read only = no
guest ok = yes
force create mode = 0664
force directory mode = 0775
[Bilder]
comment = Bilder-Freigabe
path = /srv/samba/bilder
browseable = yes
read only = no
guest ok = yes
force create mode = 0664
force directory mode = 0775
[ROMs]
comment = ROMs für Retro-Spiele
path = /srv/samba/roms
browseable = yes
read only = no
guest ok = yes
force create mode = 0664
force directory mode = 0775
````
Samba testen und Dienst starten:
````bash
sudo samba-tool testparm
sudo systemctl restart smbd
````
## 4. Medien vom Windows-PC auf den Server kopieren
### 4.1 Freigaben von Windows aus verbinden
Auf dem Windows-PC im Explorer:
````
\\IP_DES_SERVERS\Musik
\\IP_DES_SERVERS\Videos
\\IP_DES_SERVERS\Bilder
\\IP_DES_SERVERS\ROMs
````
Falls Gastzugriff erlaubt ist (`guest ok = yes`), kann meist ohne Benutzername/Passwort zugegriffen werden.
In produktiven Szenarien sollten stattdessen Benutzerkonten und `guest ok = no` verwendet werden.
### 4.2 Medien kopieren
* Auf dem Windows-PC:
* Musik-Dateien nach `\\IP\\Musik` kopieren
* Video-Dateien nach `\\IP\\Videos`
* Bilder nach `\\IP\\Bilder`
* ROMs (z.B. `.nes`, `.sfc`, `.iso`) nach `\\IP\\ROMs`
Zur Kontrolle auf dem Server:
````bash
ls /srv/samba/musik
ls /srv/samba/videos
ls /srv/samba/bilder
ls /srv/samba/roms
````
## 5. Kodi installieren
## 5.1 Option A: Kodi auf Ubuntu-Desktop
Installieren Sie das Programm KODI aus der Softwaresammlung oder:
````bash
sudo apt update
sudo apt install kodi
````
## 5.2 Option B: Kodi auf Windows
Laden Sie Kodi von der [Homepage kodi.tv](https://kodi.tv/download/) herunter und instlalieren Sie
## 6. Samba-Freigaben in Kodi einbinden
### 6.1 Netzwerkfreigaben als Quellen hinzufügen
In Kodi:
1. **Dateimanager** öffnen
2. **Quelle hinzufügen**
3. **Durchsuchen → Netzwerkfreigabe hinzufügen → SMB**
4. Server-IP eintragen (z.B. `192.168.178.50`)
5. Freigabe auswählen, z.B.:
* `Musik`
* `Videos`
* `Bilder`
* `ROMs`
Wenn `guest ok = yes` gesetzt ist, kann meist mit **Gast** zugegriffen werden.
Bei Benutzerauthentifizierung:
* Benutzername: Samba-Benutzer (z.B. `medienuser`)
* Passwort: entsprechend `smbpasswd`
Quelle benennen, z.B. „Musik-Samba“.
### 6.2 Medienbibliothek einrichten
#### Musik
1. In Kodi zu **Musik → Dateien**
2. Quelle „Musik-Samba“ auswählen
3. Kontextmenü (Rechtsklick oder Menütaste) → **Zur Bibliothek hinzufügen**
4. Scraper wählen (z.B. „Universal Album Scraper")
#### Videos
Analog:
1. **Filme/Serien → Dateien**
2. Quelle „Videos-Samba“ auswählen
3. **Inhalt festlegen** → Typ (Filme, Serien…)
4. Passenden Scraper wählen
#### Bilder
Unter **Bilder** Quellen hinzufügen und direkt als Bilderquelle verwenden.
## 7. Kodi anpassen
### 7.1 Wetter-Add-on
1. **Add-ons → Aus Repository installieren → Wetter**
2. Ein Wetter-Add-on (z.B. OpenWeatherMap) auswählen
3. Installieren
4. In den Add-on-Einstellungen:
* API-Schlüssel eintragen (bei Bedarf vorher erstellen)
* Standort konfigurieren (z.B. „Berlin, DE")
### 7.2 Retro-Spiele (ROMs)
1. **Add-ons → Aus Repository installieren → Spiele → Emulator-Add-ons**
2. Passende Emulatoren (z.B. für NES, SNES, PlayStation) installieren
3. In den Emulator-Einstellungen:
* ROM-Pfade hinzufügen, z.B. `smb://192.168.178.50/ROMs`
Mehr Funktionen was Spielen angeht müssen Sie sich im Netz informieren.
### 7.3 Skin anpassen
1. **Einstellungen → Oberfläche → Skin**
2. „Weitere Skins herunterladen“ auswählen
3. Z.B. **Estuary Mod V2** installieren
4. Aktivieren → Kodi neustarten
`````

View File

@@ -0,0 +1,118 @@
````markdown
# Remote-Zugriff auf Linux Mint von Windows aus (GUI-basiert)
Diese Anleitung zeigt Schritt für Schritt, wie Sie von einem Windows-Rechner aus auf ein LinuxMintSystem zugreifen:
1. Zuerst richten Sie **grafischen Remote-Desktop** mit **xrdp** und der Windows-Remotedesktop-App ein und testen ihn direkt.
2. Anschließend richten Sie den **SSH-Zugriff** mit **PuTTY** ein und testen ihn ebenfalls sofort.
## 1. Grafischer Remote-Desktop mit xrdp
### 1.1 xrdp auf Linux Mint installieren
1. Melden Sie sich lokal an Ihrem **LinuxMintRechner** an.
2. Öffnen Sie das **Menü** und starten Sie die **Anwendungsverwaltung** (Software-Manager).
3. Geben Sie oben im Suchfeld **„xrdp“** ein.
4. Wählen Sie den Eintrag **„xrdp“** aus.
5. Klicken Sie auf **„Installieren“** und geben Sie bei Nachfrage Ihr Passwort ein.
6. Warten Sie, bis die Installation abgeschlossen ist der Dienst startet danach automatisch.
!!! tip Hinweis: Bei der Installation legt xrdp automatisch die Gruppe **„xrdp“** an. Nur Benutzer dieser Gruppe dürfen sich per Remote Desktop anmelden.
### 1.2 Benutzer grafisch der Gruppe „xrdp“ hinzufügen
1. Öffnen Sie das **Menü**.
2. Gehen Sie zu **„Einstellungen“ → „Benutzer und Gruppen“** (oder ähnlich benannter Eintrag).
3. Bestätigen Sie bei Bedarf mit Ihrem Passwort.
4. Wählen Sie in der Benutzerliste den gewünschten Benutzer (z.B. `meister`) aus.
5. Klicken Sie auf **„Gruppen verwalten“** oder **„Erweiterte Einstellungen“**.
6. In der Liste der Gruppen setzen Sie ein **Häkchen** bei **„xrdp“**.
7. Bestätigen Sie mit **„OK“**, **„Anwenden“** oder **„Speichern“**.
8. Melden Sie den Benutzer einmal **ab und wieder an**, damit die Gruppenzugehörigkeit aktiv wird.
### 1.3 IP-Adresse von Linux Mint ohne Terminal ermitteln
1. Klicken Sie unten rechts in der Panel-Leiste auf das **Netzwerksymbol** (LAN oder WLAN).
2. Wählen Sie **„Verbindungsinformationen“** oder **„Netzwerkverbindungen“**.
3. In den Verbindungsdetails sehen Sie die **IPv4-Adresse**, z.B. `192.168.1.50`.
4. Notieren Sie sich diese Adresse sie wird gleich für den Test benötigt.
### 1.4 Remote Desktop von Windows aus testen
1. Wechseln Sie an Ihren **Windows-Rechner**.
2. Öffnen Sie das Startmenü und suchen Sie nach **„Remotedesktopverbindung“** oder geben Sie `mstsc` in die Suche ein.
3. Starten Sie die Anwendung **„Remotedesktopverbindung“**.
4. Im Feld **„Computer“** tragen Sie die IP-Adresse des LinuxMintRechners ein, z.B. `192.168.1.50`.
5. Optional: Klicken Sie auf **„Optionen einblenden“**, um Anzeigeeinstellungen anzupassen.
6. Klicken Sie auf **„Verbinden“**.
7. Beim ersten Verbindungsaufbau erscheint ein Hinweis zur Identität des Remotecomputers:
* Bestätigen Sie mit **„Ja“**.
8. Es erscheint der **xrdp-Anmeldebildschirm**:
* Sitzungsart: **„Xorg“** belassen (Standard)
* **Benutzername**: z.B. `meister`
* **Passwort**: Passwort des Linux-Kontos
9. Klicken Sie auf **„OK“** oder **„Anmelden“**.
Nach kurzer Zeit sollte der LinuxMintDesktop in einem Fenster auf Ihrem Windows-Rechner erscheinen.
Sie haben damit den ersten Erfolg: grafischer Remote-Zugriff funktioniert.
--*
## 2. Textbasierter Zugriff mit SSH und PuTTY
Nach dem erfolgreichen grafischen Zugriff richten Sie nun den SSH-Zugriff ein.
### 2.1 OpenSSH-Server über die Anwendungsverwaltung installieren
1. Melden Sie sich (falls nötig) wieder lokal an Ihrem **LinuxMintRechner** an.
2. Öffnen Sie das **Menü** und starten Sie erneut die **Anwendungsverwaltung**.
3. Geben Sie im Suchfeld **„OpenSSH Server“** oder **„openssh-server“** ein.
4. Wählen Sie den Eintrag **„OpenSSH Server“** aus.
5. Klicken Sie auf **„Installieren“** und geben Sie Ihr Passwort ein.
6. Warten Sie, bis die Installation abgeschlossen ist der SSH-Dienst startet automatisch und wird beim Systemstart aktiviert.
!!! tip Die IP-Adresse bleibt dieselbe wie im Remote-Desktop-Teil; sie muss nicht neu gesucht werden.
### 2.2 PuTTY auf Windows installieren
1. Öffnen Sie auf dem **Windows-Rechner** den Webbrowser.
2. Rufen Sie die offizielle PuTTY-Downloadseite auf, z.B.:
`https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html`
3. Laden Sie den **64Bit Windows Installer** herunter.
4. Starten Sie den Installer per Doppelklick und folgen Sie dem Assistenten (Standardeinstellungen reichen).
5. Nach der Installation finden Sie **PuTTY** im Startmenü.
### 2.3 SSH-Verbindung mit PuTTY testen
1. Starten Sie **PuTTY** über das Windows-Startmenü.
2. Im Feld **„Host Name (or IP address)"** tragen Sie die IP-Adresse des LinuxMintRechners ein, z.B. `192.168.1.50`.
3. Prüfen Sie:
* **Port**: `22`
* **Connection type**: `SSH`
4. Optional:
* Geben Sie unter **„Saved Sessions"** einen Namen wie `Mint-SSH` ein.
* Klicken Sie auf **„Save"**, um die Sitzung zu speichern.
5. Klicken Sie auf **„Open"**.
6. Beim ersten Verbindungsaufbau erscheint ein Sicherheitshinweis zum Server-Schlüssel:
* Bestätigen Sie mit **„Accept"** bzw. **„Ja"**.
7. Geben Sie im Terminalfenster den **Benutzernamen** Ihres Linux-Kontos ein und drücken Sie Enter.
8. Geben Sie anschließend Ihr **Passwort** ein (es wird beim Tippen nicht angezeigt) und bestätigen Sie mit Enter.
Sie sind nun per SSH mit Linux Mint verbunden und können textbasierte Befehle ausführen, Konfigurationsdateien bearbeiten und Protokolle ansehen.
---
## 3. Kurzer Überblick: Was wurde erreicht?
* **xrdp + Remotede sktop**:
* Grafischer Zugriff auf den LinuxMintDesktop von Windows aus
* Benutzersteuerung über die bestehende Gruppe **„xrdp"**
* **OpenSSH-Server + PuTTY**:
* Textbasierter Zugriff (Shell) auf Linux Mint
* Ideal für Administration, Skripte und Log-Analyse
````

View File

@@ -0,0 +1,10 @@
`````markdown
# Ubuntu Server installieren und vorbereiten
## 1. Vorbereitung der virtuellen Maschine in VirtualBox
... (Inhalt übernommen)
## Erste Schritte nach der Installation
... (Inhalt übernommen)
`````

View File

@@ -0,0 +1,397 @@
`````markdown
# Samba-Konfiguration für Linux-Einsteiger
![enter image description here](https://upload.wikimedia.org/wikipedia/commons/thumb/d/db/Samba_logo_2010.svg/330px-Samba_logo_2010.svg.png)
## Einführung in Samba
**Samba** ist eine Open-Source-Software, die es Linux-Systemen ermöglicht, **Datei* und Druckdienste** für Windows-, macOS* und andere Linux-Clients bereitzustellen. Samba implementiert das **SMB/CIFS-Protokoll** (Server Message Block / Common Internet File System), das in Windows-Netzwerken standardmäßig verwendet wird.
### Wichtige Anwendungsfälle:
* **Dateifreigaben** im lokalen Netzwerk (z. B. für Medien, Dokumente oder Backups).
* **Druckerfreigaben** für Windows-Clients.
* **Zentraler Speicher** für mehrere Nutzer (z. B. in kleinen Büros oder Heimnetzwerken).
### Voraussetzungen:
* Ein **Linux-Server** (z. B. Ubuntu, Debian, Raspberry Pi OS).
* **Root-Zugriff** oder ````sudo````-Berechtigungen.
* Grundkenntnisse in der **Linux-Kommandozeile**.
---
## Installation von Samba
### 1. Paketdatenbank aktualisieren
```bash
sudo apt update && sudo apt upgrade -y
```
### 2. Samba installieren
````bash
sudo apt install samba
````
### 3. Dienststatus prüfen
````bash
sudo systemctl status smbd
````
> Erwarteter Output: active (running).
Falls nicht aktiv: sudo systemctl start smbd und sudo systemctl enable smbd.
Zum verlassen ````q```` oder ````strg + c````
## Die Konfigurationsdatei smb.conf
Die zentrale Konfigurationsdatei /etc/samba/smb.conf steuert das Verhalten des Samba-Servers. Sie ist in zwei Hauptbereiche unterteilt:
**[global]**: Globale Einstellungen für den gesamten Server.
**[Freigabename]**: Definition einzelner Freigaben (Ordner, Drucker).
### Globale Einstellungen ````[global]````
Die globalen Einstellungen gelten für alle Freigaben, sofern sie nicht in einer Freigabe überschrieben werden.
Wichtige Optionen für einen Standalone-Server:
````ini
[global]
# Netzwerk-Identifikation
workgroup = WORKGROUP # Name der Arbeitsgruppe (wie in Windows)
server string = %h server (Samba, Ubuntu) # Beschreibung des Servers (%h = Hostname)
# Netzwerk-Interfaces
interfaces = 127.0.0.0/8 eth0 # Auf welchen Interfaces soll Samba laufen?
bind interfaces only = yes # Nur auf den genannten Interfaces
# Protokollierung
log file = /var/log/samba/log.%m # Log-Datei pro Client (%m = Client-Name)
max log size = 1000 # Maximale Log-Größe in KB
logging = file # Logs nur in Dateien (nicht syslog)
# Sicherheit
server role = standalone server # Server arbeitet allein (keine Domain)
map to guest = bad user # Unbekannte Nutzer werden als "Gast" behandelt
obey pam restrictions = yes # Nutzer müssen Linux-PAM-Regeln einhalten
unix password sync = yes # Samba-Passwort ändert auch Linux-Passwort
passwd program = /usr/bin/passwd %u # Programm zum Ändern des Passworts
pam password change = yes # PAM für Passwort-Änderungen nutzen
# Nutzerfreigaben
usershare allow guests = yes # Gäste dürfen auf Nutzerfreigaben zugreifen
````
Hinweise:
````
; oder #:
; = Deaktivierter Vorschlag (kann aktiviert werden).
# = Standardwert (wird auch ohne Angabe genutzt).
````
Platzhalter:
````
%h = Hostname des Servers.
%m = Name des Clients.
%S = Name der aktuellen Freigabe.
````
#### Anpassungen an Windows 11
Fügen sie unterhalb dieser Einstellungen im noch im Bereich [Global] :
````ini
# Protokolle und Kompatibilität
server min protocol = SMB2
smb encrypt = desired
````
### Freigaben definieren
Freigaben werden in eigenen Abschnitten definiert, z. B. [Musik] oder [Dokumente]. Jede Freigabe hat einen Namen (erscheint im Netzwerk) und Optionen für Zugriffsrechte.
Grundlegende Optionen:
|Option |Bedeutung |Beispiel |
|--------------|------------------------------------------------------------------------|--------------------------|
|comment |Beschreibung der Freigabe (erscheint im Explorer). |comment = Medienarchiv |
|path |Pfad zum freigegebenen Ordner. |path = /srv/samba/musik |
|browseable |yes: Freigabe ist im Netzwerk sichtbar. no: Nur mit direktem Pfad. |browseable = yes |
|read only |yes: Nur Lesezugriff. no: Schreibzugriff erlaubt. |read only = no |
|guest ok |yes: Gäste (ohne Passwort) dürfen zugreifen. |guest ok = yes |
|valid users |Liste der Nutzer/Gruppen, die überhaupt zugreifen dürfen. |valid users = @mitarbeiter|
|write list |Liste der Nutzer/Gruppen, die schreiben dürfen (überschreibt read only).|write list = @teamleitung |
|create mask |Berechtigungen für neue Dateien (oktal). |create mask = 0664 |
|directory mask|Berechtigungen für neue Ordner (oktal). |directory mask = 0775 |
|force group |Neue Dateien/Ordner gehören automatisch zu dieser Gruppe. |force group = mitarbeiter |
#### Sonderfälle: Home-Verzeichnisse und Drucker
1. Nutzer-Home-Verzeichnisse
Jeder Nutzer kann automatisch auf sein eigenes Home-Verzeichnis zugreifen:
````ini
[homes]
comment = Persönlicher Ordner
browseable = no # Nur der eigene Nutzer sieht die Freigabe
read only = no # Nutzer darf schreiben
valid users = %S # %S = aktueller Nutzer (z. B. "felix")
create mask = 0700 # Neue Dateien: rwx------
directory mask = 0700 # Neue Ordner: rwx------
````
2. Druckerfreigabe
Samba kann Drucker für Windows-Clients freigeben:
````ini
[printers]
comment = Alle Drucker
path = /var/spool/samba # Spoolfolder für Druckaufträge
browseable = no # Drucker sind nicht im Explorer sichtbar
printable = yes # Erlaubt Druckaufträge
guest ok = no # Nur authentifizierte Nutzer dürfen drucken
[print$]
comment = Druckertreiber
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
write list = root, @lpadmin # Nur Admins dürfen Treiber hochladen
````
## Rechteverwaltung unter Linux
Die korrekte Vergabe von Datei* und Ordnerrechten ist essenziell für die Sicherheit und Funktionalität von Samba-Freigaben.
### ````chown````: Besitzer und Gruppe ändern
Jede Datei/Ordner gehört einem **Besitzer (User)** und einer **Gruppe (Group)**.
Syntax:
````bash
sudo chown [BESITZER]:[GRUPPE] [DATEI/ORDNER]
````
Beispiele:
|Befehl| Wirkung|
|-|-|
|sudo chown felix:mitarbeiter /srv/samba|Besitzer: felix, Gruppe: mitarbeiter. |
|sudo chgrp mitarbeiter /srv/samba|Ändert nur die Gruppe auf mitarbeiter. |
|sudo chown -R nobody:mitarbeiter /srv/samba|Rekursiv: Besitzer: nobody, Gruppe: mitarbeiter für alle Unterordner/Dateien.|
Hinweise:
**sudo** ist erforderlich, wenn Sie nicht der Besitzer sind.
**-R** (rekursiv): Wendet die Änderung auf alle Unterordner/Dateien an.
**Samba-Empfehlung**: Für Freigaben oft nobody oder root als Besitzer und eine **spezifische Gruppe** (z. B. mitarbeiter) verwenden.
### ````chmod````: Zugriffsrechte setzen
Die Zugriffsrechte werden für **drei Kategorien** von Nutzern definiert:
**Besitzer (User)**: Der Nutzer, dem die Datei/der Ordner gehört.
**Gruppe (Group)**: Die Gruppe, der die Datei/der Ordner zugeordnet ist.
**Andere (Others)**: Alle anderen Nutzer.
Jede Kategorie kann drei Rechte haben:
````r```` **(Read)**: Lesen.
````w```` **(Write)**: Schreiben.
````x```` **(Execute)**: Ausführen (bei Ordnern: Betreten).
#### Symbolische Darstellung:
````
rwx r-x r--
│ │ │
│ │ └─ Andere (Others): Lesen (r), kein Schreiben (), kein Ausführen ()
│ └───── Gruppe (Group): Lesen (r), kein Schreiben (), Ausführen (x)
└───────── Besitzer (User): Lesen (r), Schreiben (w), Ausführen (x)
````
#### Oktal-Darstellung:
Jedes Recht wird durch eine **Zahl** repräsentiert:
````r```` = 4
````w```` = 2
````x```` = 1
Die Rechte für jede Kategorie werden **addiert**:
|Rechte|Oktal-Wert|Bedeutung |
|------|----------|---------------------|
|````---```` |0 |Keine Rechte |
|````--x```` |1 |Nur Ausführen |
|````-w-```` |2 |Nur Schreiben |
|````-wx```` |3 |Schreiben + Ausführen|
|````r--```` |4 |Nur Lesen |
|````r-x```` |5 |Lesen + Ausführen |
|````rw-```` |6 |Lesen + Schreiben |
|````rwx```` |7 |Vollzugriff |
````
Die Oktal-Modi für alle drei Kategorien werden kombiniert:
* ````755```` = ````rwxr-xr-x```` (Besitzer: Vollzugriff, Gruppe/Andere: Lesen + Ausführen)
* ````644```` = ````rw-r--r--```` (Besitzer: Lesen + Schreiben, Gruppe/Andere: Nur Lesen)
* ````770```` = ````rwxrwx---```` (Besitzer/Gruppe: Vollzugriff, Andere: Keine Rechte)
Syntax von chmod:
````bash
sudo chmod [OPTIONEN] [RECHTE] [DATEI/ORDNER]
````
* ````RECHTE````: Symbolisch (z. B. ````u=rwx,g=rx,o=rx````) oder oktal (z. B. ````755````).
* ````OPTIONEN````:
* ````-R````: Rekursiv (für alle Unterordner/Dateien).
#### Beispiele:
|Befehl |Wirkung |
|----------------------------|---------------------------------------------|
|sudo chmod 755 /srv/samba |Besitzer: rwx, Gruppe/Andere: r-x. |
|sudo chmod 644 datei.txt |Besitzer: rw-, Gruppe/Andere: r--. |
|sudo chmod -R 770 /srv/samba|Rekursiv: Besitzer/Gruppe: rwx, Andere: ---. |
|sudo chmod u+x skript.sh |Fügt dem Besitzer das Ausführrecht (x) hinzu.|
Samba-spezifische Empfehlungen:
**Freigabe-Ordner:**
* ````775```` ````(rwxrwxr-x)````: Besitzer und Gruppe haben Vollzugriff, Andere dürfen lesen und Ordner betreten.
* ````770```` ````(rwxrwx---)````: Nur Besitzer und Gruppe haben Zugriff (empfohlen für sensible Daten).
**Dateien in Freigaben:**
* ````664```` ````(rw-rw-r--)````: Besitzer und Gruppe dürfen lesen/schreiben, Andere nur lesen.
* ````660```` ````(rw-rw----)````: Nur Besitzer und Gruppe dürfen lesen/schreiben.
### Gruppenverwaltung
Gruppen ermöglichen die zentrale Steuerung von Zugriffsrechten für mehrere Nutzer.
#### 1. Nutzer und Gruppe erstellen:
````bash
sudo adduser felix
sudo addgroup mitarbeiter
````
#### 2. Nutzer einer Gruppe hinzufügen:
````bash
sudo usermod -aG mitarbeiter felix # Fügt "felix" der Gruppe "mitarbeiter" hinzu.
````
**````-aG````**: ````-a```` (append) stellt sicher, dass der Nutzer nicht aus anderen Gruppen entfernt wird.
#### 3. Gruppe einer Datei/Ordner zuweisen:
````bash
sudo chgrp mitarbeiter /srv/samba/dokumente # Setzt die Gruppe auf "mitarbeiter".
sudo chmod 770 /srv/samba/dokumente # Gruppe erhält Vollzugriff.
````
#### 4. Gruppe in Samba nutzen:
````ini
[Dokumente]
path = /srv/samba/dokumente
valid users = @mitarbeiter # Nur Nutzer der Gruppe "mitarbeiter" dürfen zugreifen.
write list = @teamleitung # Nur Gruppe "teamleitung" darf schreiben.
force group = mitarbeiter # Neue Dateien/Ordner gehören automatisch zur Gruppe "mitarbeiter".
````
## Samba-Freigaben in der Praxis
### Beispiel 1: Öffentliche Freigabe
Anwendungsfall: Medienfreigabe für alle Nutzer im Netzwerk (z. B. Musik, Filme).
**Schritt 1: Ordner erstellen und Rechte setzen**
````bash
sudo mkdir -p /srv/samba/medien
sudo chown nobody:nogroup /srv/samba/medien # Besitzer: "nobody", Gruppe: "nogroup"
sudo chmod 777 /srv/samba/medien # Temporär volle Rechte (für Test)
````
**Schritt 2: Freigabe in smb.conf definieren**
````ini
[Medien]
comment = öffentliche Medienfreigabe
path = /srv/samba/medien
browseable = yes
read only = no
guest ok = yes
````
**Schritt 3: Samba neu starten**
````bash
sudo systemctl restart smbd
````
**Schritt 4: Von Windows aus testen**
> Im Explorer: ````\\<IP-des-Servers>\\Medien```` eingeben.
### Beispiel 2: Eingeschränkte Freigabe
Anwendungsfall: Vertrauliche Dokumente für bestimmte Nutzer/Gruppen.
**Schritt 1: Gruppe und Nutzer anlegen**
````bash
sudo adduser felix
sudo adduser hans
sudo addgroup mitarbeiter
sudo addgroup teamleitung
sudo usermod -aG mitarbeiter felix
sudo usermod -aG mitarbeiter hans
sudo usermod -aG teamleitung felix
````
**Schritt 2: Ordner erstellen und Rechte setzen**
````bash
sudo mkdir -p /srv/samba/dokumente
sudo chown nobody:mitarbeiter /srv/samba/dokumente
sudo chmod 770 /srv/samba/dokumente
````
**Schritt 3: Freigabe in smb.conf definieren**
````ini
[Dokumente]
comment = Vertrauliche Dokumente
path = /srv/samba/dokumente
browseable = yes
read only = no
guest ok = no
valid users = @mitarbeiter # Nur Gruppe "mitarbeiter" darf zugreifen
write list = @teamleitung # Nur Gruppe "teamleitung" darf schreiben
force group = mitarbeiter # Neue Dateien/Ordner gehören zur Gruppe "mitarbeiter"
force create mode = 0660 # Neue Dateien: rw-rw----
force directory mode = 0770 # Neue Ordner: rwxrwx---
````
**Schritt 4: Nutzer zu Samba hinzufügen**
````bash
sudo smbpasswd -a felix
sudo smbpasswd -a hans
````
**Schritt 5: Samba neu starten**
````bash
sudo systemctl restart smbd
````
## Schritt-für-Schritt: Neue Freigabe erstellen
**1. Ordner anlegen:**
````bash
sudo mkdir -p /srv/samba/neue_freigabe
````
**2. Besitzer und Gruppe setzen:**
````bash
sudo chown nobody:mitarbeiter /srv/samba/neue_freigabe
````
**3. Rechte setzen:**
````bash
sudo chmod 770 /srv/samba/neue_freigabe
````
**4. Freigabe in /etc/samba/smb.conf definieren:**
````ini
[NeueFreigabe]
comment = Beschreibung der Freigabe
path = /srv/samba/neue_freigabe
browseable = yes
read only = no
guest ok = no
valid users = @mitarbeiter
write list = @teamleitung
````
**5. Konfiguration testen:**
````bash
sudo samba-tool testparm
````
**6. Samba neu starten:**
````bash
sudo systemctl restart smbd
````
## Häufige Fehler und Lösungen:
|Problem |Ursache |Lösung |
|------------------------------------|------------------------------------------------------|----------------------------------------------------------------------|
|Freigabe nicht sichtbar |browseable = no oder Firewall blockiert Samba. |browseable = yes setzen oder Firewall prüfen (sudo ufw allow samba). |
|Zugriff verweigert |Nutzer nicht in smbpasswd oder falsche Rechte. |sudo smbpasswd -a nutzername ausführen. Rechte mit chmod/chown prüfen.|
|Dateien können nicht gelöscht werden|Nutzer ist nicht Besitzer und hat keine Schreibrechte.|chmod g+w oder chown anpassen. |
|Gruppe wird nicht übernommen |force group fehlt in smb.conf. |force group = gruppenname ergänzen. |
|Neue Dateien haben falsche Rechte |force create mode/force directory mode fehlt. |force create mode = 0660 und force directory mode = 0770 setzen. |
`````

View File

@@ -0,0 +1,170 @@
`````markdown
# Windows-Programme unter Linux
Diese Anleitung zeigt Schritt für Schritt, wie Sie unter Linux Mint zuerst Notepad++ und anschließend 7Zip (WindowsVersion) mit Bottles installieren.
## Voraussetzungen
* Installiertes Linux Mint
* Internetzugang
* Ein normales Benutzerkonto
## Bottles installieren
1. Öffnen Sie das **Menü** unten links und starten Sie den **SoftwareManager**.
2. Suchen Sie nach **„Bottles“**.
3. Wählen Sie **„Bottles“** (Quelle „Flathub“ oder „Flatpak“) und klicken Sie auf **Installieren**.
4. Nach der Installation finden Sie Bottles im Menü, z.B. unter **Zubehör → Bottles**.
## Flatseal installieren und Berechtigungen für Bottles setzen
Damit Verknüpfungen (DesktopIcons und Menüeinträge) korrekt angelegt werden können, braucht Bottles Zugriff auf bestimmte Ordner.
### Flatseal installieren
1. Öffnen Sie erneut den **SoftwareManager**.
2. Suchen Sie nach **„Flatseal“**.
3. Wählen Sie **„Flatseal“** aus und klicken Sie auf **Installieren**.
### Berechtigungen für Bottles anpassen
1. Starten Sie **Flatseal** über das Menü.
2. Wählen Sie in der linken Liste die Anwendung **„Bottles“** aus.
3. Gehen Sie zum Bereich **„Filesystem"** (oder „Dateisystem“).
4. Aktivieren bzw. fügen Sie folgende Pfade hinzu:
* ```xdg-data/applications```
* ```~/.local/share/applications```
5. Speichern ist nicht nötig; die Änderungen gelten sofort.
6. Schließen Sie Flatseal und starten Sie **Bottles** einmal neu.
Damit kann Bottles jetzt DesktopVerknüpfungen und Menüeinträge korrekt anlegen.
---
## Notepad++
### Erste Bottle für Notepad++ anlegen
1. Starten Sie **Bottles**.
2. Klicken Sie auf **„Create a new bottle"** bzw oben links auf das ````+````.
3. Geben Sie einen Namen ein, zum Beispiel **„NotepadPlusPlus"**.
4. Wählen Sie als Umgebung **„Application"** (Programm).
5. Klicken Sie auf **„Create"** und warten Sie, bis die Bottle erstellt wurde.
### Notepad++ herunterladen
1. Öffnen Sie Ihren **Webbrowser** (z.B. Firefox).
2. Rufen Sie die Seite auf:
* `https://notepad-plus-plus.org`
3. Klicken Sie auf **Download**.
4. Laden Sie den **WindowsInstaller** (Dateiname ähnlich `npp.x.y.Installer.exe`) in den Ordner **Downloads** herunter.
### Notepad++ in Bottles installieren
1. Wechseln Sie zu **Bottles** und öffnen Sie die Bottle **„NotepadPlusPlus"**.
2. Klicken Sie auf **„Run executable"**.
3. Navigieren Sie im Dateidialog zum Ordner **Downloads**.
4. Wählen Sie die Datei `npp.x.y.Installer.exe` aus und klicken Sie auf **Öffnen**.
5. Im Installationsassistenten:
* Sprache auswählen (z.B. Deutsch)
* Lizenzbedingungen akzeptieren
* Standardpfad beibehalten
* Komponenten unverändert lassen
6. Zum Schluss auf **Fertigstellen** klicken.
Bottles legt nun in dieser Bottle einen Programmeintrag für Notepad++ an und kann mit den eingestellten Rechten auch Verknüpfungen anlegen.
### Notepad++ starten und testen
1. Öffnen Sie in **Bottles** die Bottle **„NotepadPlusPlus"**.
2. Unter **„Programs"** (Programme) finden Sie **„Notepad++"**.
3. Klicken Sie auf **Notepad++**, um das Programm zu starten.
4. Testen Sie die Funktion:
* Neue Datei anlegen
* Text schreiben
* Datei in Ihrem HomeOrdner speichern
Wenn die Berechtigungen korrekt gesetzt sind, können Sie in Bottles außerdem eine **DesktopVerknüpfung** oder einen **Menüeintrag** erstellen. Hierfür einfach auf ````...```` klicken und
## 7-Zip
### Zweite Bottle für 7Zip anlegen
1. Starten Sie **Bottles**, falls es geschlossen ist.
2. Klicken Sie auf **„Create a new bottle"**.
3. Geben Sie einen Namen ein, z.B. **„7zip"**.
4. Wählen Sie wieder die Umgebung **„Application"**.
5. Klicken Sie auf **„Create"** und warten Sie, bis die Bottle eingerichtet ist.
### 7Zip herunterladen
1. Öffnen Sie den **Webbrowser**.
2. Rufen Sie die offizielle 7ZipSeite auf:
* `https://www.7-zip.org`
3. Laden Sie die **64BitVersion für Windows** herunter (Datei ähnlich `7zxx-x64.exe`).
4. Speichern Sie die Datei im Ordner **Downloads**.
---
### 7Zip in Bottles installieren
1. Öffnen Sie in **Bottles** die Bottle **„7zip"**.
2. Klicken Sie auf **„Run executable"**.
3. Wählen Sie im Ordner **Downloads** die Datei `7zxx-x64.exe` aus.
4. Bestätigen Sie mit **Öffnen**.
5. Im Installationsfenster von 7Zip:
* Installationspfad unverändert lassen (`C:\Program Files\7-Zip`)
* Auf **Install** klicken
* Nach Abschluss auf **Close** klicken
### 7Zip starten
1. Öffnen Sie in **Bottles** die Bottle **„7zip"**.
2. Unter **„Programs"** finden Sie **„7zFM"**.
3. Klicken Sie auf diesen Eintrag, um den 7ZipDateimanager zu starten.
#### Dateien mit 7Zip komprimieren
1. Im 7ZipFenster wählen Sie oben ein Laufwerk aus, z.B. **„Z:“**.
* „Z:“ ist normalerweise mit Ihrem LinuxDateisystem verbunden.
2. Navigieren Sie zu Ihrem **HomeOrdner** und zu einem Testordner (z.B. `Dokumente/Test`).
3. Markieren Sie einige Dateien, die Sie komprimieren möchten.
4. Klicken Sie oben auf **„Add"** (Hinzufügen).
5. Im Dialog:
* Archivname eingeben, z.B. `testarchiv.7z`
* Format wählen (z.B. `7z` oder `zip`)
* Kompressionsstufe auswählen (z.B. „Normal")
6. Klicken Sie auf **OK**.
7. Das neue Archiv erscheint im gleichen Ordner.
#### Archive mit 7Zip entpacken
1. Suchen Sie im 7ZipFenster ein vorhandenes Archiv (`.zip`, `.7z` o. Ä.).
2. Markieren Sie das Archiv mit einem Linksklick.
3. Klicken Sie oben auf **„Extract"** (Entpacken).
4. Wählen Sie im Dialog den Zielordner oder akzeptieren Sie den vorgeschlagenen Ordner.
5. Klicken Sie auf **OK**.
6. Die entpackten Dateien erscheinen anschließend im gewählten Ordner.
## Häufige Probleme und einfache Lösungen
### Programm startet nicht
* Schließen Sie die Bottle und öffnen Sie sie erneut.
* Starten Sie Bottles bei Bedarf vollständig neu und versuchen Sie es noch einmal.
### DesktopVerknüpfung fehlt
* Desktop-Verknüpfungen sind erst mal nur im Startmenü
* Prüfen Sie in **Flatseal**, ob Bottles Zugriff auf
* `~/Desktop`
* `~/.local/share/applications`
hat.
* Falls Änderungen vorgenommen wurden, muss bottles neu gestartet werden. Idealerweise reboot.
### Dateien im LinuxSystem nicht sichtbar
* Stellen Sie im 7ZipFenster sicher, dass Sie das Laufwerk **„Z:“** gewählt haben.
* Navigieren Sie von dort in Ihr HomeVerzeichnis.
`````

View File

Before

Width:  |  Height:  |  Size: 187 KiB

After

Width:  |  Height:  |  Size: 187 KiB

View File

Before

Width:  |  Height:  |  Size: 375 KiB

After

Width:  |  Height:  |  Size: 375 KiB

View File

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 9.8 KiB

View File

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 93 KiB

View File

Before

Width:  |  Height:  |  Size: 250 KiB

After

Width:  |  Height:  |  Size: 250 KiB

View File

Before

Width:  |  Height:  |  Size: 433 KiB

After

Width:  |  Height:  |  Size: 433 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 158 KiB

After

Width:  |  Height:  |  Size: 158 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 78 KiB

View File

@@ -0,0 +1,8 @@
````markdown
# Automatisierung mit Ansible
Kurze Einführung in Ansible und typische Playbook-Beispiele.
... (Inhalt aus Bonus wird hier übernommen)
````

View File

@@ -1,5 +1,5 @@
# Praxisprojekt Medien-NAS für KODI
![enter image description here](https://upload.wikimedia.org/wikipedia/commons/thumb/2/25/Kodi-logo-Thumbnail-light-transparent.png/250px-Kodi-logo-Thumbnail-light-transparent.png){align=right}
## Ziel des Projekts
Aufgebaut wird ein **Medien-Server mit Samba**, auf den **Windows-Clients** Medien (Musik, Videos, Bilder, ROMs) per **Windows-Freigabe** ablegen, und den eine **Kodi-VM** wiederum per SMB einbindet.

View File

@@ -1,5 +1,5 @@
# Samba-Konfiguration für Linux-Einsteiger
![enter image description here](https://upload.wikimedia.org/wikipedia/commons/thumb/d/db/Samba_logo_2010.svg/330px-Samba_logo_2010.svg.png)
## Einführung in Samba
**Samba** ist eine Open-Source-Software, die es Linux-Systemen ermöglicht, **Datei* und Druckdienste** für Windows-, macOS* und andere Linux-Clients bereitzustellen. Samba implementiert das **SMB/CIFS-Protokoll** (Server Message Block / Common Internet File System), das in Windows-Netzwerken standardmäßig verwendet wird.

View File

@@ -0,0 +1,67 @@
`````markdown
# Docker-Grundlagen
## Virtuelle Maschinen (VMs) vs. Container
|Kriterium |Virtuelle Maschine (VM) |Container |
|-------------------|----------------------------------------------|------------------------------------|
|Isolation |Vollständige OS-Isolation (Hardware-Ebene) |Prozess-Isolation (OS-Ebene) |
|Ressourcenverbrauch|Hoch (eigenes OS pro VM) |Gering (teilt Host-OS-Kernel) |
|Startzeit |Minuten |Sekunden |
|Portabilität |Schwerer (große Images) |Leicht (kleine Images) |
|Anwendungsfall |Vollständige Systeme (z. B. Windows auf Linux)|Mikroservices, Web-Apps, Datenbanken|
**Fazit**: Container sind ideal für schnelle, ressourcenschonende Bereitstellung von Anwendungen.
## Docker installieren
[Immer aktuelles Setup anschauen](https://docs.docker.com/engine/install/ubuntu/)
````bash
# Alte Docker-Versionen entfernen
sudo apt removes docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc
# Abhängigkeiten installieren
sudo apt update
sudo apt install -y ca-certificates curl gnupg
# Docker-Repository hinzufügen
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF
# Docker installieren
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Docker-Dienst starten und aktivieren
sudo systemctl enable docker
sudo systemctl start docker
# Benutzer zur Docker-Gruppe hinzufügen (für Passwortlosigkeit)
sudo usermod -aG docker $USER
newgrp docker # Aktuelle Shell aktualisieren
````
## Erste Schritte: "Hello World" mit Docker
Fertigen Container ausprobieren:
````bash
docker run hello-world
````
> Ausgabe:
````
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
````
Tatsächlich erklärt der Container selbst was er getan hat.
* ````docker run````: Führt einen Container aus.
* ````hello-world````: Offizielles Test-Image von Docker Hub.
... (Inhalt gekürzt für Übersicht)
`````

View File

@@ -2,12 +2,40 @@
Sehr geehrte Teilnehmende,
willkommen zur Kursübersicht rund um Linux für angehende IT-Meisterinnen und IT-Meister.
Diese Dokumentation bietet eine strukturierte Zusammenstellung der Arbeitsaufträge und Grundlagen, um praxisnah und fundiert in Linux und Unternehmensumgebungen einzusteigen.
willkommen zur Kursübersicht für den Meisterkurs "Linux Grundlagen". Diese Startseite bietet eine schnelle Orientierung über die Kapitel, direkte Verweise auf die Unterlagen und kurze Hinweise, worum es jeweils geht.
Die Inhalte begleiten von den ersten Schritten am Desktop und in der Konsole über wichtige Automatisierungsthemen wie `cron` und `systemd` bis hin zu realen Einsatzszenarien im Unternehmen, etwa Active Directory, Samba-Freigaben und Nextcloud. Zusätzlich werden Bonuskapitel zu Docker angeboten, um containerbasierte Technologien kennenzulernen.
Kursstruktur — Schneller Überblick
Die Navigation auf der linken Seite ermöglicht einen schnellen Zugriff auf die gewünschten Themen. Für den bestmöglichen Lernerfolg wünschen wir viel Erfolg und Freude.
- **Grundlagen**: Einstieg am Desktop, Arbeiten in der Konsole und kleine Praxisprojekte
- Einstieg in den LinuxDesktop: [Einstieg in Linux-Desktop](Einstieg_in_Linux-Desktop.md)
- Grundlagen der Konsole: [Grundlagen der Konsole](Grundlagen_der_Konsole.md)
- WindowsProgramme unter Linux: [WindowsProgramme unter Linux](Windows_Programme_unter_Linux.md)
- Kleines Praxisprojekt: [Mein erstes kleines LinuxProjekt](Mein_erstes_kleines_Linux-Projekt.md)
- MedienNAS (KODI): [Praxisprojekt MedienNAS für KODI](Praxisprojekt_Medien-NAS_fuer_KODI.md)
- Automatisierung mit `cron` und `systemd`: [Automatisierung mit cron und systemd](Automatisierung_mit_cron_und_systemd.md)
- WindowsFreigaben für LinuxEinsteiger (Samba): [WindowsFreigaben für LinuxEinsteiger](Windows_Freigaben_fuer_Linux-Einsteiger.md)
- Ubuntu Server: [Server installieren und konfigurieren](Server_Installation.md)
- Freigaben im Unternehmen: [Praxisprojekt Freigaben im Unternehmen](Praxisprojekt_Freigaben_im_Unternehmen.md)
- Nextcloud mit LDAP: [Nextcloud & LDAP](nextcloud-ldap.md)
- Linux als ADServer: [Linux als Active Directory Server](linux-als-ad-server.md)
- Linux als ADClient: [Linux als Client in Active Directory](linux-als-ad-client.md)
- Automatisierung mit Ansible: [Automatisierung mit Ansible](automatisierung-mit-ansible.md)
- DockerGrundlagen: [Docker Grundlagen](docker-grundlagen.md)
Vorgehen für Kursaufgaben
1. Folgen Sie der empfohlenen Reihenfolge: Basics → Automatisierung → Linux im Unternehmen → Bonuskapitel.
2. Führen Sie die Praxisprojekte Schritt für Schritt durch und dokumentieren Sie Ergebnisse.
3. Nutzen Sie die linken Navigationselemente für schnellen Zugriff.
Viel Erfolg und gutes Gelingen!
Mit freundlichen Grüßen

Binary file not shown.

View File

@@ -0,0 +1,11 @@
````markdown
# Installation Ubuntu Server 24.04 LTS
Die Installation des Ubuntu Servers Erfolgt in Virtualbox. Achten Sie
bei der Einrichtung der VM darauf, dass die unbeaufsichtigte
Installation nicht durchgeführt wird, da einzelne Schritte relevant
sind.
... (gekürzt; vollständige Anleitung verbleibt im Original)
````

View File

@@ -0,0 +1,123 @@
# Nextcloud mit LDAP-Anbindung
Nextcloud ermöglicht eine private Cloud für Ihre Organisation. Diese Anleitung zeigt die grundlegende Installation, DatenbankEinrichtung, Webserverkonfiguration, SSL, CronJobs und die Anbindung an ein LDAP/AD.
## Vorbereitungen
- Installieren Sie einen Webserver (z.B. `apache2`) und eine SQLDatenbank (`mariadb-server`).
- Stellen Sie sicher, dass Sie einen DNSeintrag / FQDN für die NextcloudInstanz haben.
## Installation — benötigte Pakete
```bash
sudo apt update
sudo apt install apache2 mariadb-server libapache2-mod-php php php-mysql \
php-xml php-gd php-curl php-zip php-mbstring php-intl php-bcmath php-gmp \
php-imagick php-redis redis-server php-ldap php-smbclient unzip phpmyadmin
```
Konfigurieren Sie `phpmyadmin` während der Installation für `apache2` und sichern Sie die Datenbank mit `sudo mysql_secure_installation`.
## Nextcloud herunterladen und installieren
```bash
wget https://download.nextcloud.com/server/releases/latest.zip
unzip latest.zip
sudo cp -r nextcloud /var/www/
sudo chown -R www-data:www-data /var/www/nextcloud/
sudo mkdir /srv/cloud && sudo chown www-data:www-data /srv/cloud
```
Erstellen Sie eine ApacheSite `/etc/apache2/sites-available/nextcloud.conf` (Beispiel unten) und aktivieren Sie die Site:
```bash
sudo a2ensite nextcloud
sudo a2dissite 000-default.conf
sudo a2enmod rewrite headers env dir mime setenvif ssl
sudo systemctl restart apache2
```
Beispiel VirtualHost (HTTP → HTTPS Redirect und SSL später):
```apacheconf
<VirtualHost *:80>
DocumentRoot "/var/www/nextcloud"
ServerName nextcloud.example.local
RewriteEngine On
RewriteCond %{HTTPS} Off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</VirtualHost>
```
![Erster Login, Eingabe der Admindaten](assets/nextcloud/image1.png)
## Redis als Cache aktivieren
Installieren Sie `redis-server` (siehe Paketliste) und passen Sie die NextcloudConfig an (`/var/www/nextcloud/config/config.php`):
```php
'memcache.distributed' => '\\OC\\Memcache\\Redis',
'memcache.local' => '\\OC\\Memcache\\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' => array('host' => 'localhost','port' => 6379),
```
## SSL — selbstsigniertes Zertifikat (Beispiel)
```bash
sudo openssl req -new -x509 -days 365 -nodes -out /etc/ssl/certs/NextCloud.pem -keyout /etc/ssl/private/NextCloud.key
```
Aktivieren Sie das Zertifikat in der ApacheSite (VirtualHost :443) und starten Sie Apache neu.
## Cronjob für Nextcloud
Nextcloud sollte per Cron regelmäßig Aufgaben ausführen. Beispiel (ausführen als `www-data`):
```bash
sudo crontab -u www-data -e
*/15 * * * * php -f /var/www/nextcloud/cron.php
```
Weitere Informationen zu Cron und systemd finden Sie in der Anleitung: [Automatisierung mit cron und systemd](Automatisierung_mit_cron_und_systemd.md).
## Design + Firmenlogo
Passen Sie das Design über das NextcloudAdminInterface an. Empfohlene Dateiformate: `.png`, `.jpg`, `.ico`.
- Logo: `assets/nextcloud/design/Logo.png`
- Hintergrund / LoginBild: `assets/nextcloud/design/Login_Image.jpg`
- Favicon: `assets/nextcloud/design/favicon.ico`
![Auswahl LDAP-APP](assets/nextcloud/image2.png)
## LDAP/ADAnbindung (Übersicht)
Nextcloud kann Benutzer und Gruppen über LDAP/AD synchronisieren. Aktivieren Sie in Nextcloud die App "LDAP user and group backend" und konfigurieren Sie:
- LDAPServer (FQDN + Port)
- BindAccount (lesender Account) und Passwort
- SuchBases für Nutzer und Gruppen
- Attribute (z.B. `sAMAccountName`) für Login
Hinweis: Für Samba ADDomaincontroller siehe Anleitung: [Linux als Active Directory Server](linux-als-ad-server.md).
![Einrichtungstab Server](assets/nextcloud/image3.png)
## Hinweise
- Verwenden Sie Dateinamen ohne Leerzeichen.
- Testen Sie die NextcloudWebinstallation lokal unter `http://<IP>/` bevor Sie SSL aktivieren.
---
Diese Seite wurde rekonstruiert aus der vorhandenen SiteAusgabe; bitte prüfe Inhalt und Formatierung und ergänze ggf. Details oder Screenshots.
`````markdown
# Nextcloud mit LDAP-Anbindung
NextCloud bringt ihnen eine erweiterte Funktionalität der Bereitstellung und Synchronisierung ihrer Daten für Mitarbeiter. NextCloud biete über Erweiterungen und Plug-Ins die Möglichkeit auch in anderen Teilen ihres Unternehmens Verbesserungen der Zusammenarbeit zu schaffen. Prinzipiell ist NextCloud aber ihre Private Cloud - Sie wissen, wo die Daten liegen und Sie wissen wer darauf zugreifen kann und darf.
... (Inhalt übernommen)
`````

View File

@@ -4,23 +4,23 @@ site_author: Florian Hensel
nav:
- Home: index.md
- Grundlagen:
- Einstieg in Linux-Desktop: basics/Einstieg_in_Linux-Desktop.md
- Remotezugriff einrichten: basics/Remotezugriff_einrichten.md
- Kleines Linux-Projekt: basics/Mein_erstes_kleines_Linux-Projekt.md
- Windows-Programme unter Linux: basics/Windows_Programme_unter_Linux.md
- Grundlagen der Konsole: basics/Grundlagen_der_Konsole.md
- Automatisierung mit cron und systemd: basics/Automatisierung_mit_cron_und_systemd.md
- Windows-Freigaben für Linux-Einsteiger: basics/Windows_Freigaben_fuer_Linux-Einsteiger.md
- Praxisprojekt Medien-NAS für KODI: basics/Praxisprojekt_Medien-NAS_fuer_KODI.md
- Einstieg in Linux-Desktop: Einstieg_in_Linux-Desktop.md
- Remotezugriff einrichten: Remotezugriff_einrichten.md
- Kleines Linux-Projekt: Mein_erstes_kleines_Linux-Projekt.md
- Windows-Programme unter Linux: Windows_Programme_unter_Linux.md
- Grundlagen der Konsole: Grundlagen_der_Konsole.md
- Automatisierung mit cron und systemd: Automatisierung_mit_cron_und_systemd.md
- Windows-Freigaben für Linux-Einsteiger: Windows_Freigaben_fuer_Linux-Einsteiger.md
- Praxisprojekt Medien-NAS für KODI: Praxisprojekt_Medien-NAS_fuer_KODI.md
- Linux im Unternehmen:
- Ubuntu Server installieren und konfigurieren: Linux_Unternehmen/Server_Installation.md
- Praxisprojekt Freigaben im Unternehmen: Linux_Unternehmen/Praxisprojekt_Freigaben_im_Unternehmen.md
- Nextcloud mit LDAP-Anbindung: Linux_Unternehmen/nextcloud-ldap.md
- Ubuntu Server installieren und konfigurieren: Server_Installation.md
- Praxisprojekt Freigaben im Unternehmen: Praxisprojekt_Freigaben_im_Unternehmen.md
- Nextcloud mit LDAP-Anbindung: nextcloud-ldap.md
- Bonuskapitel:
- Linux als Active Directory Server: bonus/linux-als-ad-server.md
- Linux als Client in Active Directory: bonus/linux-als-ad-client.md
- Automatisierung mit Ansible: bonus/automatisierung-mit-ansible.md
- Docker Grundlagen: bonus/docker-grundlagen.md
- Linux als Active Directory Server: linux-als-ad-server.md
- Linux als Client in Active Directory: linux-als-ad-client.md
- Automatisierung mit Ansible: automatisierung-mit-ansible.md
- Docker Grundlagen: docker-grundlagen.md
# Theme
theme:
logo: assets/Logo.png