Anpassung aller Samba-Dokumente als Projekt
ADDC als Bonus
This commit is contained in:
@@ -0,0 +1,175 @@
|
||||
# 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. |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user