diff --git a/mkdocs/docs/basics/Automatisierung mit cron und systemd.md b/mkdocs/docs/basics/Automatisierung mit cron und systemd.md
index 15c280c..f0f20c4 100644
--- a/mkdocs/docs/basics/Automatisierung mit cron und systemd.md
+++ b/mkdocs/docs/basics/Automatisierung mit cron und systemd.md
@@ -27,7 +27,11 @@ 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.
+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
@@ -59,10 +63,10 @@ Jetzt wird jede Minute die Datei /tmp/heartbeat.txt neu angelegt oder ihr Zeit
* jeden Tag um Mitternacht
```
-1/5 * * * * /usr/bin/touch /tmp/every5min.txt
+*/5 * * * * /usr/bin/touch /tmp/every5min.txt
```
-* alle 5 Minuten beginnend 5 Minuten nach 1 also 6,11,16,...
+* alle 5 Minuten beginnend 5 Minuten
# systemd-Unit: Datei beim Systemstart aktualisieren
diff --git a/mkdocs/docs/basics/Windows-Freigabe mit Samba.md b/mkdocs/docs/basics/Windows-Freigabe mit Samba.md
index 28cca96..66cbe61 100644
--- a/mkdocs/docs/basics/Windows-Freigabe mit Samba.md
+++ b/mkdocs/docs/basics/Windows-Freigabe mit Samba.md
@@ -22,7 +22,9 @@ sudo apt install samba
Nach der Installation des Dienstes kann dieser über die Konfigurationsdatei /etc/samba/smb.conf bearbeitet werden. Die von Ubuntu vorkonfigurierte Version ist nahezu vollständig selbsterklärend und mit entsprechenden Beispielen versehen.
-## smb.conf
+## /etc/samba/smb.conf
+
+Hier soll der Aufbau der Datei mit ihren Default werten erkärt werden. Schauen Sie sich parallel ihre Datei auf ihrem System an.
```ini
[global]
@@ -39,21 +41,6 @@ server string = %h server (Samba, Ubuntu)
Die Beschreibung des Servers (mouse-over) wobei für %h für der hostname
des Servers eingesetzt wird.
-```ini
-wins support = no
-wins server = w.x.y.z
-```
-
-Kann geändert werden zu
-
-```ini
-wins support = yes
-# wins server = w.x.y.z
-```
-
-Damit übernimmt der Samba-Server die [WINS](https://de.wikipedia.org/wiki/Windows_Internet_Naming_Service)-Aufgaben.
-
-**In einem Netzwerk sollte immer nur ein WINS-Server aktiv laufen.**
```ini
dns proxy = no
@@ -167,7 +154,7 @@ sudo adduser hwurst
sudo adduser plustig
sudo addgroup angebote_l
sudo addgroup angebote_ae
-sudo addgrouo lieferscheine_l
+sudo addgroup lieferscheine_l
sudo addgroup lieferscheine_ae
sudo usermod -aG angebote_l hwurst
sudo usermod -aG lieferscheine_ae hwurst
@@ -186,13 +173,36 @@ Erstellen der Verzeichnisse:
```bash
sudo mkdir /srv/samba/angebote
-sudo mkdir /srv/samba/lieferscheine
sudo chown -R nobody:angebote_ae /srv/samba/angebote
-sudo chown -R nobody:lieferscheine_ae /srv/samba/lieferscheine
sudo chmod -R 0077 /srv/samba/angebote
+sudo mkdir /srv/samba/lieferscheine
+sudo chown -R nobody:lieferscheine_ae /srv/samba/lieferscheine
sudo chmod -R 0077 /srv/samba/lieferscheine
sudo nano /etc/samba/smb.conf
```
+Erklärung:
+```bash
+chown Rekursive USER:GRUPPE Pfad
+chmod Rekurisv OKTALMODE-RECHTE (Siehe Tabelle) Pfad
+```
+Die Zahlenfolge 0077 Steht für die Rechte im Ordner:
+* 0 Spezialrechte (Sticky bit damit Dateiersteller Dateieigentümer bleiben, für Samba besser auf 0)
+* 0 Eigentümer (vorher auf nobody gesetzt)
+* 7 Gruppe (vorher auf angebote_ae gesetzt)
+* 7 Andere (sonstige user im System ohne Samba)
+
+| Oktal | Binär | Rechte (rwx) | Typische Nutzung |
+| ----- | ----- | ------------ | ------------------------------------------------- |
+| 0 | 000 | --- | Kein Zugriff |
+| 1 | 001 | --x | Nur Ausführen (z. B. Skripte) |
+| 2 | 010 | -w- | Nur Schreiben |
+| 3 | 011 | -wx | Schreiben + Ausführen |
+| 4 | 100 | r-- | Nur Lesen |
+| 5 | 101 | r-x | Lesen + Ausführen (Ordner/Dateien) |
+| 6 | 110 | rw- | Lesen + Schreiben |
+| 7 | 111 | rwx | Voller Zugriff (unsicher für Freigaben) |
+
+In der Datei /etc/samba/smb.conf:
```ini
[Angebote]
diff --git a/mkdocs/docs/basics/Windows_Freigaben_fuer_Linux-Einsteiger.md b/mkdocs/docs/basics/Windows_Freigaben_fuer_Linux-Einsteiger.md
new file mode 100644
index 0000000..d113369
--- /dev/null
+++ b/mkdocs/docs/basics/Windows_Freigaben_fuer_Linux-Einsteiger.md
@@ -0,0 +1,612 @@
+# Samba-Konfiguration für Linux-Einsteiger
+*Ein vollständiger Leitfaden zur Einrichtung von Samba-Freigaben, Rechteverwaltung und Gruppen auf einem Standalone-Server*
+
+---
+
+## Inhaltsverzeichnis
+- [Samba-Konfiguration für Linux-Einsteiger](#samba-konfiguration-für-linux-einsteiger)
+ - [Inhaltsverzeichnis](#inhaltsverzeichnis)
+ - [Einführung in Samba](#einführung-in-samba)
+ - [Wichtige Anwendungsfälle:](#wichtige-anwendungsfälle)
+ - [Voraussetzungen:](#voraussetzungen)
+ - [Installation von Samba](#installation-von-samba)
+ - [1. Paketdatenbank aktualisieren](#1-paketdatenbank-aktualisieren)
+ - [2. Samba installieren](#2-samba-installieren)
+ - [3. Dienststatus prüfen](#3-dienststatus-prüfen)
+ - [Die Konfigurationsdatei smb.conf](#die-konfigurationsdatei-smbconf)
+ - [Globale Einstellungen \[global\]](#globale-einstellungen-global)
+ - [Freigaben definieren](#freigaben-definieren)
+ - [Sonderfälle: Home-Verzeichnisse und Drucker](#sonderfälle-home-verzeichnisse-und-drucker)
+ - [1. Nutzer-Home-Verzeichnisse](#1-nutzer-home-verzeichnisse)
+ - [2. Druckerfreigabe](#2-druckerfreigabe)
+ - [Rechteverwaltung unter Linux](#rechteverwaltung-unter-linux)
+ - [````chown````: Besitzer und Gruppe ändern](#chown-besitzer-und-gruppe-ändern)
+ - [````chmod````: Zugriffsrechte setzen](#chmod-zugriffsrechte-setzen)
+ - [Symbolische Darstellung:](#symbolische-darstellung)
+ - [Oktal-Darstellung:](#oktal-darstellung)
+ - [Beispiele:](#beispiele)
+ - [Gruppenverwaltung](#gruppenverwaltung)
+ - [1. Gruppe erstellen:](#1-gruppe-erstellen)
+ - [2. Nutzer einer Gruppe hinzufügen:](#2-nutzer-einer-gruppe-hinzufügen)
+ - [3. Gruppe einer Datei/Ordner zuweisen:](#3-gruppe-einer-dateiordner-zuweisen)
+ - [4. Gruppe in Samba nutzen:](#4-gruppe-in-samba-nutzen)
+ - [Samba-Freigaben in der Praxis](#samba-freigaben-in-der-praxis)
+
+---
+
+## 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.
+````
+
+## 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 chown :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.|
+|sudo chmod g-w /srv/samba |Entfernt das Schreibrecht für die Gruppe. |
+
+
+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. Gruppe erstellen:
+````bash
+
+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 chown \: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 =
+ 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: \\\Medien eingeben.
+
+Beispiel 2: Eingeschränkte Freigabe
+Anwendungsfall: Vertrauliche Dokumente für bestimmte Nutzer/Gruppen.
+Schritt 1: Gruppe und Nutzer anlegen
+bash
+
+sudo addgroup mitarbeiter
+sudo addgroup teamleitung
+sudo usermod -aG mitarbeiter felix
+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
+
+Schritt 5: Samba neu starten
+bash
+
+sudo systemctl restart smbd
+
+
+Schritt-für-Schritt: Neue Freigabe erstellen
+
+
+Ordner anlegen:
+bash
+
+sudo mkdir -p /srv/samba/neue_freigabe
+
+
+
+Besitzer und Gruppe setzen:
+bash
+
+sudo chown nobody\:mitarbeiter /srv/samba/neue_freigabe
+
+
+
+Rechte setzen:
+bash
+
+sudo chmod 770 /srv/samba/neue_freigabe
+
+
+
+Freigabe in 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
+
+
+
+Konfiguration testen:
+bash
+
+sudo testparm
+
+
+
+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.
+
+
+
+
+
+Wichtige Befehle im Überblick
+
+
+
+
+ Befehl
+ Beschreibung
+
+
+
+
+ sudo apt install samba
+ Samba installieren.
+
+
+ sudo systemctl restart smbd
+ Samba-Dienst neu starten.
+
+
+ sudo testparm
+ Konfiguration auf Fehler prüfen.
+
+
+ sudo smbpasswd -a nutzername
+ Nutzer zu Samba hinzufügen.
+
+
+ sudo chown besitzer:gruppe pfad
+ Besitzer und Gruppe einer Datei/eines Ordners ändern.
+
+
+ sudo chmod 755 pfad
+ Rechte auf rwxr-xr-x setzen.
+
+
+ sudo chmod -R 770 pfad
+ Rechte rekursiv auf rwxrwx--- setzen.
+
+
+ sudo addgroup gruppenname
+ Gruppe erstellen.
+
+
+ sudo usermod -aG gruppenname nutzername
+ Nutzer einer Gruppe hinzufügen.
+
+
+ smbclient -L //localhost -U %
+ Freigegebene Ordner/Drucker auflisten (lokal).
+
+
+
+
+
+Sicherheitshinweise
+
+Minimale Rechte vergeben:
+
+Vermeiden Sie chmod 777. Nutzen Sie stattdessen 770 oder 750.
+
+Keine Gastzugriffe für sensible Daten:
+
+Setzen Sie guest ok = no für vertrauliche Freigaben.
+
+Regelmäßige Backups:
+
+Sichern Sie die smb.conf und wichtige Freigabe-Ordner.
+
+Firewall konfigurieren:
+bash
+
+sudo ufw allow samba # Erlaubt Samba-Ports (139, 445).
+
+
+Logs prüfen:
+
+Fehler finden Sie in /var/log/samba/log.%m.
+
+
+Anhang: Spezialrechte (Sticky Bit, SUID, SGID)
+Für fortgeschrittene Anwendungsfälle können Spezialrechte gesetzt werden:
+
+
+
+
+ Recht
+ Oktal
+ Symbolisch
+ Wirkung
+
+
+
+
+ Sticky Bit
+ 1
+ t
+ Nur der Besitzer darf Dateien in einem Ordner löschen (z. B. /tmp).
+
+
+ SUID
+ 4
+ s
+ Führt eine Datei mit den Rechten des Besitzers aus (z. B. passwd).
+
+
+ SGID
+ 2
+ s
+ Neue Dateien/Ordner erben die Gruppe des Elternordners (nützlich für Samba-Freigaben).
+
+
+
+
+Beispiele:
+
+
+
+
+ Befehl
+ Wirkung
+
+
+
+
+ sudo chmod 1777 /tmp
+ Setzt das Sticky Bit (nur Besitzer darf Dateien löschen).
+
+
+ sudo chmod 2775 /srv/samba
+ Setzt SGID: Neue Dateien/Ordner erben die Gruppe des Elternordners.
+
+
+ sudo chmod 4755 /usr/bin/programm
+ Setzt SUID: Programm läuft mit Rechten des Besitzers.
+
+
+
+
+Samba-spezifische Nutzung:
+
+SGID ist nützlich, um sicherzustellen, dass neue Dateien/Ordner in einer Freigabe automatisch der richtigen Gruppe gehören:
+bash
+
+sudo chmod 2770 /srv/samba/dokumente # SGID + Besitzer/Gruppe: rwx
+
+
diff --git a/mkdocs/mkdocs.yml b/mkdocs/mkdocs.yml
index da58a5b..a084eba 100644
--- a/mkdocs/mkdocs.yml
+++ b/mkdocs/mkdocs.yml
@@ -4,8 +4,8 @@ nav:
- Grundlagen:
- Einstieg in Linux-Desktop: basics/Einstieg in Linux-Desktop.md
- Grundlagen der Konsole: basics/Grundlagen der Konsole.md
+ - Automatisierung mit cron und systemd: basics/Automatisierung mit cron und systemd.m
- Windows-Freigabe mit Samba: basics/Windows-Freigabe mit Samba.md
- - Automatisierung mit cron und systemd: basics/Automatisierung mit cron und systemd.md
- Linux im Unternehmen:
- Ubuntu Servr als Active Directory Domain Controller: Linux_Unternehmen/ubuntu-ad-dc.md
- Linux als Client in Active Directory: Linux_Unternehmen/linux-als-ad-client.md
diff --git a/mkdoks-complete.sh b/mkdoks-complete.sh
new file mode 100644
index 0000000..9ab5422
--- /dev/null
+++ b/mkdoks-complete.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+
+MKDOCS_DIR="mkdocs/docs"
+
+find "$MKDOCS_DIR" -name "*.md" | while read -r md_file; do
+ # Überspringe index.md
+ if [[ "$(basename "$md_file")" == "index.md" ]]; then
+ echo "Überspringe: $md_file"
+ continue
+ fi
+
+ echo "Verarbeite: $md_file"
+
+ base_name=$(basename "$md_file" .md | tr ' ' '_')
+ dir_name=$(dirname "$md_file")
+
+ pdf_path="${dir_name}/${base_name}.pdf"
+ pdf_link="\n\n[PDF herunterladen](${base_name}.pdf){ .md-button }"
+
+ # PDF immer neu erzeugen
+ rm -f "$pdf_path"
+
+ # Temp MD nur für MkDocs-Syntax bereinigen
+ temp_md="${dir_name}/temp_${base_name}.md"
+ sed 's/{[^}]*}//g; s/^[ \t]*{[^}]*}$//gm' "$md_file" > "$temp_md"
+
+ # **Working directory = Markdown-Verzeichnis** für korrekte Bildpfade!
+ md_dir=$(dirname "$md_file")
+
+ docker run --rm \
+ --volume "$(pwd)":/data \
+ --user $(id -u):$(id -g) \
+ --workdir "/data/$md_dir" \
+ pandoc/extra \
+ "./$(basename "$md_file")" \
+ -o "./${base_name}.pdf" \
+ --template /data/eisvogel.latex \
+ --syntax-highlighting=idiomatic
+
+ # Temp Dateien löschen
+ rm -f "$temp_md"
+
+ echo " → PDF erstellt: $pdf_path"
+
+ # PDF-Link nur einmal hinzufügen
+ if ! tail -n 10 "$md_file" | grep -q "PDF herunterladen"; then
+ echo -e "$pdf_link" >> "$md_file"
+ echo " → PDF-Link hinzugefügt"
+ else
+ echo " → PDF-Link bereits vorhanden"
+ fi
+done
+
+# MkDocs neu bauen
+docker compose -f ./docker-compose.yml run --rm mkdocs build
+docker compose -f ./docker-compose.yml restart mkdocs
+echo "Fertig: mkdocs neu gebaut."
diff --git a/rebuild-all.sh b/rebuild-all.sh
new file mode 100644
index 0000000..37802a5
--- /dev/null
+++ b/rebuild-all.sh
@@ -0,0 +1,76 @@
+#!/bin/bash
+
+MKDOCS_DIR="mkdocs/docs"
+
+# Funktion für die Verarbeitung (DRY-Prinzip)
+process_file() {
+ local md_file="$1"
+ echo "Verarbeite: $md_file"
+
+ local base_name=$(basename "$md_file" .md | tr ' ' '_')
+ local dir_name=$(dirname "$md_file")
+ local pdf_path="${dir_name}/${base_name}.pdf"
+ local pdf_link="\n\n[PDF herunterladen](${base_name}.pdf){ .md-button }"
+
+ # PDF neu erzeugen
+ rm -f "$pdf_path"
+
+ # Temp MD nur für MkDocs-Syntax bereinigen (LaTeX behalten)
+ local temp_md="${dir_name}/temp_${base_name}.md"
+ sed 's/{[^}]*}//g; s/^[ \t]*{[^}]*}$//gm' "$md_file" > "$temp_md"
+
+ local md_dir=$(dirname "$md_file")
+
+ docker run --rm \
+ --volume "$(pwd)":/data \
+ --user $(id -u):$(id -g) \
+ --workdir "/data/$md_dir" \
+ pandoc/extra \
+ "./temp_${base_name}.md" \
+ -o "./${base_name}.pdf" \
+ --template /data/eisvogel.latex \
+ --syntax-highlighting=idiomatic
+
+ # Temp Datei löschen
+ rm -f "$temp_md"
+
+ echo " → PDF erstellt: $pdf_path"
+
+ # PDF-Link nur einmal hinzufügen (ändert Markdown!)
+ if ! tail -n 10 "$md_file" | grep -q "PDF herunterladen"; then
+ echo -e "$pdf_link" >> "$md_file"
+ echo " → PDF-Link hinzugefügt"
+ else
+ echo " → PDF-Link bereits vorhanden"
+ fi
+ echo ""
+}
+
+# Wenn keine Parameter → alle Dateien verarbeiten
+if [ $# -eq 0 ]; then
+ echo "Keine Dateien angegeben → Verarbeite ALLE Markdown-Dateien"
+ find "$MKDOCS_DIR" -name "*.md" | while read -r md_file; do
+ # Überspringe index.md
+ if [[ "$(basename "$md_file")" == "index.md" ]]; then
+ echo "Überspringe: $md_file"
+ continue
+ fi
+ process_file "$md_file"
+ done
+else
+ # Einzelne Dateien verarbeiten
+ for param in "$@"; do
+ md_file="$MKDOCS_DIR/$param"
+ if [[ ! -f "$md_file" ]]; then
+ echo "Fehler: $md_file nicht gefunden!"
+ continue
+ fi
+ process_file "$md_file"
+ done
+fi
+
+# **IMMER MkDocs neu bauen** (Markdown + PDF-Links ändern sich)
+echo "MkDocs wird neu gebaut (wegen Markdown-Änderungen)..."
+docker compose -f ./docker-compose.yml run --rm mkdocs build
+docker compose -f ./docker-compose.yml restart mkdocs
+echo "Fertig: mkdocs neu gebaut."