links angepasst
This commit is contained in:
1 parent
4e02079aad
commit
fe5c4f0a69
4 files changed
+3
-329
No files matched your search
@@ -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
|
||||||
````
|
````
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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]
|
|
||||||
@@ -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**.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
Reference in new issue
Block a user