links angepasst

This commit is contained in:
Torkalis
2025-12-11 11:43:34 +01:00
parent 4e02079aad
commit fe5c4f0a69
4 changed files with 3 additions and 329 deletions

View File

@@ -134,7 +134,7 @@ Fügen Sie folgende Optionen global (unter [global]) oder pro Freigabe ein:
recycle\:touch = yes # Zeitstempel anpassen recycle\:touch = yes # Zeitstempel anpassen
```` ````
### 6.2 Automatische Bereinigung mit Cron ### 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 ````bash
sudo crontab -e sudo crontab -e
```` ````

View File

@@ -230,7 +230,7 @@ Apache Neustarten und Fertig
## CronJob für regelmäßige Aktualisierung der Datenbank ## 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 Die Aktion soll vom User www-data ausgeführt werden

View File

@@ -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]

View File

@@ -10,7 +10,7 @@
### Voraussetzungen: ### Voraussetzungen:
- Ein **Linux-Server** (z. B. Ubuntu, Debian, Raspberry Pi OS). - 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**. - Grundkenntnisse in der **Linux-Kommandozeile**.
--- ---