From fe5c4f0a69a90be15fd7758af29dc64f4ba0feca Mon Sep 17 00:00:00 2001 From: Torkalis Date: Thu, 11 Dec 2025 11:43:34 +0100 Subject: [PATCH] links angepasst --- .../Praxisprojekt_Freigaben_im_Unternehmen.md | 2 +- .../docs/Linux_Unternehmen/nextcloud-ldap.md | 2 +- .../docs/basics/Windows-Freigabe_mit_Samba.md | 326 ------------------ ...Windows_Freigaben_fuer_Linux-Einsteiger.md | 2 +- 4 files changed, 3 insertions(+), 329 deletions(-) delete mode 100644 mkdocs/docs/basics/Windows-Freigabe_mit_Samba.md diff --git a/mkdocs/docs/Linux_Unternehmen/Praxisprojekt_Freigaben_im_Unternehmen.md b/mkdocs/docs/Linux_Unternehmen/Praxisprojekt_Freigaben_im_Unternehmen.md index 3b3d3ef..6253b9e 100644 --- a/mkdocs/docs/Linux_Unternehmen/Praxisprojekt_Freigaben_im_Unternehmen.md +++ b/mkdocs/docs/Linux_Unternehmen/Praxisprojekt_Freigaben_im_Unternehmen.md @@ -134,7 +134,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%20mit%20cron%20und%20systemd.md) hinzu, um alte Dateien im Papierkorb zu löschen: +Fügen Sie einen [Cron-Job](../basics/Automatisierung_mit_cron_und_systemd.md) hinzu, um alte Dateien im Papierkorb zu löschen: ````bash sudo crontab -e ```` diff --git a/mkdocs/docs/Linux_Unternehmen/nextcloud-ldap.md b/mkdocs/docs/Linux_Unternehmen/nextcloud-ldap.md index 0551b7b..3fcfde9 100644 --- a/mkdocs/docs/Linux_Unternehmen/nextcloud-ldap.md +++ b/mkdocs/docs/Linux_Unternehmen/nextcloud-ldap.md @@ -230,7 +230,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](../basics/Automatisierung_mit_cron_und_systemd.md) Die Aktion soll vom User www-data ausgeführt werden diff --git a/mkdocs/docs/basics/Windows-Freigabe_mit_Samba.md b/mkdocs/docs/basics/Windows-Freigabe_mit_Samba.md deleted file mode 100644 index f1c8ccd..0000000 --- a/mkdocs/docs/basics/Windows-Freigabe_mit_Samba.md +++ /dev/null @@ -1,326 +0,0 @@ -# Windows-Freigabe mit Samba - -Samba ist die Linux-Variante um SMB-Verbindungen zu Windows, Linux und OS X (macOS) herzustellen. Hierfür wird ein Serverdienst installiert und über eine übersichtliche Konfigurationsdatei entsprechend den Anforderungen eingestellt. Es existieren zwar auch Möglichkeiten diese Freigaben über GUI-Programme oder Webinterfaces zu konfigurieren allerdings sind deren Funktionsumfang meist auf Basis-Funktionen beschränkt. Samba bietet eine Überprüfungsmöglichkeit der Konfigurationsdatei, um Schreibfehler und deren Konsequenzen übersichtlich darzustellen. - -## Installation - -Für die Installation empfiehlt sich die Shell da hierüber sinnvoll beobachtet werden kann welche weiteren Abhängigkeiten installiert werden. - -### Shell-Installation - -Update der Paketdatenbank und der installierten Pakete - -```bash -sudo apt update && sudo apt-get upgrade -y -``` - -Installation des Samba-Dienstes - -```bash -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. - -## /etc/samba/smb.conf - -### Samba-Konfiguration (`smb.conf`) einfach erklärt -Die Datei `/etc/samba/smb.conf` steuert, wie dein Linux-Server Dateien und Drucker für Windows-, macOS- oder andere Linux-Geräte freigibt. -Sie ist in **zwei Hauptbereiche** unterteilt: -1. **Globale Einstellungen** (`[global]`): Grundlegende Server-Konfiguration. -2. **Freigaben** (`[Freigabename]`): Definition einzelner freigegebener Ordner/Drucker. - -### 1. Globale Einstellungen `[global]` -Diese Einstellungen gelten für den **gesamten Samba-Server**. -Hier ein Auszug der wichtigsten Optionen für einen **Standalone-Server** (ohne Domain): - -```ini -[global] - # Name der Arbeitsgruppe (wie in Windows-Netzwerken) - workgroup = WORKGROUP - - # Beschreibung des Servers (erscheint z.B. in Windows-Explorer) - server string = %h server (Samba, Ubuntu) - - # Netzwerk-Interfaces: Auf welchen IP-Adressen/Netzwerkkarten soll Samba laufen? - ; interfaces = 127.0.0.0/8 eth0 # Standard: Alle verfügbaren Interfaces - ; bind interfaces only = yes # Nur auf den oben genannten Interfaces - - # Protokollierung: Wo und wie werden Logs geschrieben? - log file = /var/log/samba/log.%m # %m = Name des Clients (z. B. "log.PC1") - max log size = 1000 # Maximale Log-Größe in KB - logging = file # Logs nur in Dateien (nicht syslog) - - # Sicherheit: Wie authentifizieren sich Nutzer? - 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 sich an Linux-PAM-Regeln halten - 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 # Nutze PAM für Passwort-Änderungen - - # Nutzerfreigaben: Erlaube Nutzern, eigene Freigaben zu erstellen - usershare allow guests = yes # Gäste dürfen auf Nutzerfreigaben zugreifen -``` -> **Wichtige Hinweise:** -> * ````;```` oder ````#````: -> * Zeilen mit ````;```` sind deaktivierte Vorschläge (können aktiviert werden). -> * Zeilen mit ````#```` sind Standardwerte (werden auch ohne Angabe genutzt). -> * ````%h````: Platzhalter für den Hostnamen des Servers. -> * ````standalone server````: Der Server arbeitet ohne Domain – Nutzer müssen lokal auf dem Linux-System existieren. - -#### 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 -```` -Erst dadurch kann Windows 11 konsitant darauf zugreifen. - -### 2. Freigaben definieren -Freigaben werden in eigenen Abschnitten definiert, z. B. [Musik] oder [Drucker]. -Jede Freigabe hat einen Namen (erscheint im Netzwerk) und Optionen für Zugriffsrechte. -Beispiel 1: Öffentliche Freigabe (z. B. für Musik) -````ini -[Musik] - comment = Musikfreigabe für alle # Beschreibung (erscheint im Explorer) - path = /srv/samba/musik # Pfad zum freigegebenen Ordner - browseable = yes # Freigabe ist im Netzwerk sichtbar - read only = no # Nutzer dürfen Dateien schreiben - guest ok = yes # Gäste (ohne Passwort) dürfen zugreifen -```` -Beispiel 2: Eingeschränkte Freigabe (nur für bestimmte Nutzer) -````ini -[Dokumente] - comment = Vertrauliche Dokumente - path = /srv/samba/dokumente - browseable = yes - read only = no - guest ok = no # Kein Gastzugriff - valid users = @mitarbeiter # Nur Nutzer der Gruppe "mitarbeiter" dürfen zugreifen - write list = @teamleitung # Nur Gruppe "teamleitung" darf schreiben -```` -Wichtige Freigabe-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 | - -### 3. Sonderfälle - -#### 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. "plustig") -```` -#### Druckerfreigabe - -Samba 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 -```` -### 4. Einstellungen prüfen und übernehmen - -Nach Änderungen in der smb.conf immer prüfen: -````bash -sudo samba-tool testparm -```` -Hierbei werden alle Einstellungen angezeigt. Manche bleiben ausgeblendet, wenn sie per defaqult aktiv sind wie z.B. ````browseable = yes```` -Wenn keine Fehler auftauchen können alle EInstellungen übernommen werden: -````bash -sudo systemctl restart smbd nmbd -```` - -## Samba-Projekt 1 einfache Freigaben für Medienplayer KODI: - -**Vorraussetzungen:** -* Samba installiert und in der [Konfiguration für Windows 11](#Anpassungen-an-Windows-11) angepasst - - - -## Beispiel eingeschränkte Freigabe z.B. Unterlagen für bestimmten Personenkreis. - -Im Vorfeld solcher Freigaben müssen die betreffenden Benutzer zum einen auf dem System vorhanden sein und auch noch ergänzend in Samba bekannt gemacht werden. Dazu legen wir nun 2 neue Nutzer an, um später nachvollziehen zu können wer was darf. Dazu als Beispiel Hans Wurst aus der Produktion und Peter Lustig aus der Verwaltung. - -Im folgenden werden Zugriffsgruppen definiert welche es ermöglichen die Lese- und Schreibrechte sauber Granuliert darzustellen: - -| | Lesen Angebote | Schreiben Angebote | Lesen Lieferscheine | Schreiben Lieferscheine | -| ------------ | ------------------ | ---------------------- | ----------------------- | --------------------------- | -| Hans Wurst | X | | | X | -| Peter Lustig | | X | | X | - -```bash -sudo adduser hwurst -sudo adduser plustig -sudo addgroup angebote_l -sudo addgroup angebote_ae -sudo addgroup lieferscheine_l -sudo addgroup lieferscheine_ae -sudo usermod -aG angebote_l hwurst -sudo usermod -aG lieferscheine_ae hwurst -sudo usermod -aG angebote_ae plustig -sudo usermod -aG lieferscheine_ae plustig -``` - -Bekanntgabe an Samba: - -```bash -sudo smbpasswd -a hwurst -sudo smbpasswd -a plustig -``` - -Erstellen der Verzeichnisse: - -```bash -sudo mkdir /srv/samba/angebote -sudo chown -R nobody:angebote_ae /srv/samba/angebote -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 -```` -In der Datei /etc/samba/smb.conf: - -```ini -[Angebote] -comment = Angebote an Kunden -path = /srv/samba/angebote -guest ok = no -browseable = yes -readonly = yes -valid users = @angebote_l, @angebote_ae -write list = @angebote_ae -force create mode = 0775 -force directory mask = 0775 -force group = angebote_ae - -[Lieferscheine] -copy = Angebote -comment = Lieferscheine von Lieferanten -path = /srv/samba/lieferscheine -valid users = @lieferscheine_l, @lieferscheine_ae -write list = @lieferscheine_ae -force group = lieferscheine_ae - -``` - -## Userverzeichnis - -> Jeder User der Zugriffsrechte auf Samba selbst hat kann durch eine spezielle Freigabe automatisch Zugriff auf sein eigenes Home-Verzeichnis erhalten. Diese ist in der Beispielkonfiguration der smb.conf bereits auskommentiert vorhanden und kann schlicht wieder ein kommentiert werden. - -```ini -[homes] -comment = Privates Verzeichnis -browseable = no -read only = yes -create mask = 0700 -directory mask = 0700 -valid users = %S - -``` - -„homes" ist hier nur ein Platzhalter dieser wird automatisch durch den jeweiligen Usernamen ersetzt und auch der Zugriff ist dann nur für diesen User verfügbar. - -## Sonderfall Drucker - -Für Drucker ist standartmäßig eine Freigabe aktiviert ähnlich wie dies auch Windows in einem Heimnetzwerk tut. Die Konfiguration können Sie der Beispielkonfiguration der smb.conf entnehmen es sind 2 Freigaben notwendig, um ALLE Drucker freizugeben. - -```ini -[printers] -comment = Alle Drucker -browseable = no -path = /var/spool/samba -printable = yes -guest ok = no -read only = yes -create mask = 0700 -``` - -Damit werden Alle Drucker, die am System eingerichtet sind mit jeweils einem eigenen Eintrag freigegeben. - -```ini -[print$] -comment = Drucker Treiber -path /var/lib/samba/printers -browseable = yes -read only = yes -guest ok = no - -``` - -Hier sucht Windows nach Druckertreibern. Die Treiber müssen entweder über andere Wege in dieses Verzeichnis gelegt werden oder es kann auch ein write list Eintrag hinzugefügt werden. - -## Netzwerkpapierkorb - -Auf einem Netzlaufwerk gelöschte Dateien können schnell mal verloren gehen, dafür lässt sich ein Netzwerkpapierkorb einsetzen. Entweder unter global für alle Freigaben oder pro Freigabe einmal einsetzen. - -```ini -# Virtuelles File System "recycle" wird angelegt -vfs object = recycle -# Der Pfad zum Papierkorb relativ zur Freigabe (".recyclebin" ist -Default). -recycle:repository = .recyclebin -# Im Papierkorb bleiben Pfad-Angaben erhalten. -recycle:keeptree = Yes -# Beim Verschieben wird der Zeitstempel angepasst. -recycle:touch = Yes -# Gleichnamige Dateien werden nicht überschrieben. -recycle:versions = Yes -# Keine Begrenzung der Dateigröße pro gelöschter Datei. -recycle:maxsize = 0 -``` - -Und wer leert den? Durch Cron wird jeden Tag der Papierkorb durchsucht -und alles, was älter als 14 Tage ist gelöscht. - -```bash -sudo crontab -e -``` - -In einer Zeile: - -``` -0 12 * * * for path in $(grep path /etc/samba/smb.conf | cut -d= -f2 | sed -e 's/ //' -e 's/\%S/*/'); do if ; then find ${path}/.recycle -mindepth 1 -mtime +14 -exec rm -rf {} \;; fi; done -``` - -Was steht da nun drin: - -Jeden Tag um 0:12 soll in der smb.conf nach Pfad-Angaben gesucht werden und innerhalb dieser die Pfade „.recycle" nach Dateien durchsucht werden die älter als 14 Tage sind. Diese werden gelöscht. - ---- - -## Inhaltsverzeichnis -[TOC] \ No newline at end of file diff --git a/mkdocs/docs/basics/Windows_Freigaben_fuer_Linux-Einsteiger.md b/mkdocs/docs/basics/Windows_Freigaben_fuer_Linux-Einsteiger.md index 8e46eaa..ac3f5ba 100644 --- a/mkdocs/docs/basics/Windows_Freigaben_fuer_Linux-Einsteiger.md +++ b/mkdocs/docs/basics/Windows_Freigaben_fuer_Linux-Einsteiger.md @@ -10,7 +10,7 @@ ### Voraussetzungen: - Ein **Linux-Server** (z. B. Ubuntu, Debian, Raspberry Pi OS). -- **Root-Zugriff** oder `sudo`-Berechtigungen. +- **Root-Zugriff** oder ````sudo````-Berechtigungen. - Grundkenntnisse in der **Linux-Kommandozeile**. ---