6.9 KiB
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)
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 |
!!! Note Samba sollte bereits installiert sein
2. Benutzer und Gruppen anlegen
2.1 Benutzer erstellen
# 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
# Gruppen für Lese-/Schreibrechte
sudo addgroup angebote_r # Leserechte für Angebote
sudo addgroup angebote_w # Schreibrechte für Angebote
sudo addgroup lieferscheine_r # Leserechte für Lieferscheine (hier nicht genutzt)
sudo addgroup lieferscheine_w # Schreibrechte für Lieferscheine
2.3 Benutzer den Gruppen zuweisen
# Hans Wurst: Darf Angebote lesen und Lieferscheine schreiben
sudo usermod -aG angebote_r hwurst
sudo usermod -aG lieferscheine_w hwurst
# Peter Lustig: Darf Angebote und Lieferscheine schreiben
sudo usermod -aG angebote_w plustig
sudo usermod -aG lieferscheine_w plustig
2.4 Benutzer in Samba bekannt machen
# 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
sudo mkdir -p /srv/samba/{angebote,lieferscheine}
3.2 Besitzer und Gruppe setzen
# Angebote: Besitzer = nobody, Gruppe = angebote_w (Schreibrechte)
sudo chown -R nobody:angebote_w /srv/samba/angebote
# Lieferscheine: Besitzer = nobody, Gruppe = lieferscheine_w (Schreibrechte)
sudo chown -R nobody:lieferscheine_w /srv/samba/lieferscheine
3.3 Berechtigungen setzen
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)
!!! note Die tatsächlichen Rechte werden später durch Samba (force create mode, valid users) gesteuert.
4. Samba-Freigaben konfigurieren
4.1 smb.conf bearbeiten
sudo nano /etc/samba/smb.conf
4.2 Freigaben für Angebote und Lieferscheine
Fügen Sie folgende Abschnitte am Ende der Datei ein:
[Angebote]
comment = Angebote an Kunden
path = /srv/samba/angebote
guest ok = no
browseable = yes
read only = yes # Standardmäßig schreibgeschützt
valid users = @angebote_r, @angebote_w # Nur diese Gruppen dürfen zugreifen
write list = @angebote_w # Nur diese Gruppe darf schreiben
force create mode = 0775 # Neue Dateien: rwxrwxr-x
force directory mode = 0775 # Neue Ordner: rwxrwxr-x
force group = angebote_w # 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_w # Nur diese Gruppe darf zugreifen
write list = @lieferscheine_w # Nur diese Gruppe darf schreiben
force group = lieferscheine_w
5. Userverzeichnisse (Home-Freigaben)
Jeder Benutzer kann auf sein eigenes Home-Verzeichnis zugreifen.
Aktivieren Sie die [homes]-Freigabe in /etc/samba/smb.conf (entkommentieren):
[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
!!! note %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:
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 hinzu, um alte Dateien im Papierkorb zu löschen:
sudo crontab -e
Fügen Sie folgende Zeile ein (löscht Dateien älter als 14 Tage):
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
!!! note 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. |
| Linux kann zugreifen, Windows nicht | Protokollversion zu Alt | In smb.conf server min protocol = SMB2 und smb encrypt = desired nachtragen |