2025-12-10 12:41:50 +01:00
# Geschäfts-Samba-Server: Eingeschränkte Freigaben für Abteilungen
*Anleitung zur Einrichtung von Samba-Freigaben mit granularen Rechten für Hans Wurst (Produktion) und Peter Lustig (Verwaltung)*
## Inhaltsverzeichnis
[TOC]
## 1. Zielbeschreibung
Dieses Projekt zeigt eine saubere, praxisnahe Einrichtung von
* eingeschränkten Freigaben mit Gruppenrechten,
* Homeverzeichnissen,
* einem Netzwerkpapierkorb.
| | Lesen
 ;Angebote | Schreiben
 ;Angebote | Lesen
 ;Lieferscheine | Schreiben
 ;Lieferscheine |
| ------------ | ------------------ | ---------------------- | ----------------------- | --------------------------- |
| Hans Wurst | X | | | X |
| Peter Lustig | | X | | X |
---
## 2. Benutzer und Gruppen anlegen
### 2.1 Benutzer erstellen
```bash
# Benutzer für Produktion und Verwaltung anlegen
sudo adduser hwurst # Hans Wurst (Produktion)
sudo adduser plustig # Peter Lustig (Verwaltung)
```
### 2.2 Gruppen für Rechteverwaltung erstellen
````bash
# Gruppen für Lese-/Schreibrechte
sudo addgroup angebote_l # Leserechte für Angebote
sudo addgroup angebote_ae # Schreibrechte für Angebote
sudo addgroup lieferscheine_l # Leserechte für Lieferscheine (hier nicht genutzt)
sudo addgroup lieferscheine_ae # Schreibrechte für Lieferscheine
````
### 2.3 Benutzer den Gruppen zuweisen
````bash
# Hans Wurst: Darf Angebote lesen und Lieferscheine schreiben
sudo usermod -aG angebote_l hwurst
sudo usermod -aG lieferscheine_ae hwurst
# Peter Lustig: Darf Angebote und Lieferscheine schreiben
sudo usermod -aG angebote_ae plustig
sudo usermod -aG lieferscheine_ae plustig
````
### 2.4 Benutzer in Samba bekannt machen
````bash
# Samba-Passwörter für beide Benutzer setzen
sudo smbpasswd -a hwurst
sudo smbpasswd -a plustig
````
> Passwort im Kurs: "passw0rd#"
## 3. Verzeichnisse erstellen und Rechte setzen
### 3.1 Ordner für Angebote und Lieferscheine anlegen
````bash
sudo mkdir -p /srv/samba/{angebote,lieferscheine}
````
### 3.2 Besitzer und Gruppe setzen
````bash
# Angebote: Besitzer = nobody, Gruppe = angebote_ae (Schreibrechte)
sudo chown -R nobody\:angebote_ae /srv/samba/angebote
# Lieferscheine: Besitzer = nobody, Gruppe = lieferscheine_ae (Schreibrechte)
sudo chown -R nobody\:lieferscheine_ae /srv/samba/lieferscheine
````
### 3.3 Berechtigungen setzen
````bash
sudo chmod -R 0077 /srv/samba/angebote
sudo chmod -R 0077 /srv/samba/lieferscheine
# - 0: Keine Spezialrechte (Sticky Bit/SUID/SGID)
# - 0: Besitzer (nobody) hat keine Rechte (wird durch Samba überschrieben)
# - 7: Gruppe hat Vollzugriff (rwx)
# - 7: Andere haben Vollzugriff (wird durch Samba eingeschränkt)
````
> Hinweis: Die tatsächlichen Rechte werden später durch Samba (````force create mode, valid users````) gesteuert.
## 4. Samba-Freigaben konfigurieren
### 4.1 ````smb.conf```` bearbeiten
````bash
sudo nano /etc/samba/smb.conf
````
### 4.2 Freigaben für Angebote und Lieferscheine
Fügen Sie folgende Abschnitte am Ende der Datei ein:
````ini
[Angebote]
comment = Angebote an Kunden
path = /srv/samba/angebote
guest ok = no
browseable = yes
read only = yes # Standardmäßig schreibgeschützt
valid users = @angebote_l , @angebote_ae # Nur diese Gruppen dürfen zugreifen
write list = @angebote_ae # Nur diese Gruppe darf schreiben
force create mode = 0775 # Neue Dateien: rwxrwxr-x
force directory mode = 0775 # Neue Ordner: rwxrwxr-x
force group = angebote_ae # Neue Dateien gehören dieser Gruppe
[Lieferscheine]
copy = Angebote # Überträgt alle Einstellungen von Angebote, die nicht nachfolgend angepasst werden:
comment = Lieferscheine von Lieferanten
path = /srv/samba/lieferscheine
valid users = @lieferscheine , @lieferscheine_ae # Nur diese Gruppe darf zugreifen
write list = @lieferscheine_ae # Nur diese Gruppe darf schreiben
force group = lieferscheine_ae
````
## 5. Userverzeichnisse (Home-Freigaben)
Jeder Benutzer kann auf sein eigenes Home-Verzeichnis zugreifen.
Aktivieren Sie die [homes]-Freigabe in ````/etc/samba/smb.conf` ``` (entkommentieren):
````ini
[homes]
comment = Privates Verzeichnis
browseable = no # Nur für den Benutzer selbst sichtbar
read only = no # Benutzer darf schreiben
create mask = 0700 # Neue Dateien: rwx------
directory mask = 0700 # Neue Ordner: rwx------
valid users = %S # %S = Name des aktuellen Benutzers
````
> Hinweis: %S wird automatisch durch den Benutzernamen ersetzt (z. B. hwurst).
## 6. Netzwerkpapierkorb
Gelöschte Dateien auf Netzlaufwerken können mit dem **Samba Recycle Bin Modul ** gesichert werden.
### 6.1 Konfiguration in ````smb.conf````
Fügen Sie folgende Optionen global (unter [global]) oder pro Freigabe ein:
````ini
vfs objects = recycle # Virtuelles Dateisystem für Papierkorb
recycle\:repository = .recyclebin # Ordner für gelöschte Dateien
recycle\:keeptree = yes # Pfadstruktur im Papierkorb erhalten
recycle\:versions = yes # Gleichnamige Dateien nicht überschreiben
recycle\:maxsize = 0 # Keine Größenbegrenzung pro Datei
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:
````bash
sudo crontab -e
````
Fügen Sie folgende Zeile ein (löscht Dateien älter als 14 Tage):
````bash
0 12 * * * for path in $(grep "path =" /etc/samba/smb.conf | cut -d= -f2 | sed 's/ //g'); do find "${path}/.recyclebin" -mindepth 1 -mtime +14 -exec rm -rf {} \; 2>/dev/null; done
````
Erklärung:
* ````0 12 * * *` ```: Täglich um 12:00 Uhr.
* ````grep "path ="` ```: Sucht alle ` ```path` ```-Einträge in ` ```smb.conf` ```.
* ````find ... -mtime +14` ```: Löscht Dateien älter als 14 Tage im .recyclebin-Ordner.
## 7 Häufige Fehler und Lösungen
|Problem |Ursache |Lösung |
|------------------------------|-----------------------------------|-------------------------------------------------------------|
|Benutzer kann nicht zugreifen |Falsche Gruppe oder Passwort. |groups [benutzer] prüfen, smbpasswd -a [benutzer] neu setzen.|
|Schreibrechte fehlgeschlagen |Benutzer nicht in write list. |valid users und write list in smb.conf prüfen. |
|Papierkorb funktioniert nicht |vfs objects = recycle fehlt. |In smb.conf für die Freigabe oder global ergänzen. |
|Rechte werden nicht übernommen|force group oder create mask fehlt.|In smb.conf ergänzen und Samba neu starten. |
2025-12-11 11:03:46 +01:00
|Linux kann zugreifen, Windows nicht|Protokollversion zu Alt |In smb.conf ```` server min protocol = SMB2` ``` und ` ```smb encrypt = desired ` ``` nachtragen|
2025-12-10 12:41:50 +01:00