Dokuwiki-Server: Teil 5 - Samba

Letztes Update 2020/12/05 16:15
Samba am Dokuwiki-Server einrichten

**=>**

Um leichter auf die Inhalte des Dokuwiki Servers zugreifen zu können, wird Samba installiert. Für Dokuwiki wird ein Share auf das Dokuwiki-Verzeichnis eingerichtet. Natürlich können auch andere Shares auf Verzeichnisse eingerichtet werden, um den Server auch als Datenspeicher im Netzwerk verwenden zu können.

Als erstes werden die entsprechenden Pakete installiert:

sudo apt install samba samba-common-bin -y

Auf die Frage (eventuell auf englisch):

Soll smb.conf so abgeändert werden, dass per DHCP angebotene WINS-Einstellungen verwendet werden?

mit <Nein> antworten, falls eine fixe IP-Adresse verwendet wird.

Prüfen, ob Samba läuft

service smbd status

● smbd.service - Samba SMB Daemon
Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-01-20 18:22:27 CET; 17min ago
Docs: man:smbd(8)
man:samba(7)
man:smb.conf(5)
Main PID: 8399 (smbd)
Status: "smbd: ready to serve connections..."
Tasks: 4 (limit: 4915)
Memory: 5.8M
CGroup: /system.slice/smbd.service
├─8399 /usr/sbin/smbd --foreground --no-process-group
├─8402 /usr/sbin/smbd --foreground --no-process-group
├─8403 /usr/sbin/smbd --foreground --no-process-group
└─8405 /usr/sbin/smbd --foreground --no-process-group
Jän 20 18:22:27 SERVER systemd[1]: Starting Samba SMB Daemon...
Jän 20 18:22:27 SERVER systemd[1]: Started Samba SMB Daemon.
Jän 20 18:22:27 SERVER systemd[1]: /lib/systemd/system/smbd.service:9: PIDFile= references path below legacy
Jän 20 18:22:28 SERVER systemd[1]: /lib/systemd/system/smbd.service:9: PIDFile= references path below legacy
Jän 20 18:22:29 SERVER systemd[1]: /lib/systemd/system/smbd.service:9: PIDFile= references path below legacy
Jän 20 18:22:29 SERVER systemd[1]: /lib/systemd/system/smbd.service:9: PIDFile= references path below legacy
Jän 20 18:22:30 SERVER systemd[1]: /lib/systemd/system/smbd.service:9: PIDFile= references path below legacy
Jän 20 18:22:31 SERVER systemd[1]: /lib/systemd/system/smbd.service:9: PIDFile= references path below legacy
Jän 20 18:22:32 SERVER systemd[1]: /lib/systemd/system/smbd.service:9: PIDFile= references path below legacy

service nmbd status

● nmbd.service - Samba NMB Daemon
Loaded: loaded (/lib/systemd/system/nmbd.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-01-20 18:22:28 CET; 19min ago
Docs: man:nmbd(8)
man:samba(7)
man:smb.conf(5)
Main PID: 8451 (nmbd)
Status: "nmbd: ready to serve connections..."
Tasks: 1 (limit: 4915)
Memory: 1.7M
CGroup: /system.slice/nmbd.service
└─8451 /usr/sbin/nmbd --foreground --no-process-group
Jän 20 18:22:28 SERVER systemd[1]: Starting Samba NMB Daemon...
Jän 20 18:22:28 SERVER systemd[1]: Started Samba NMB Daemon.
Jän 20 18:22:29 SERVER systemd[1]: /lib/systemd/system/nmbd.service:9: PIDFile= references path below legacy
Jän 20 18:22:29 SERVER systemd[1]: /lib/systemd/system/nmbd.service:9: PIDFile= references path below legacy
Jän 20 18:22:30 SERVER systemd[1]: /lib/systemd/system/nmbd.service:9: PIDFile= references path below legacy
Jän 20 18:22:31 SERVER systemd[1]: /lib/systemd/system/nmbd.service:9: PIDFile= references path below legacy
Jän 20 18:22:32 SERVER systemd[1]: /lib/systemd/system/nmbd.service:9: PIDFile= references path below legacy

Grundkonfiguration des Samba-Servers

Für die Samba Konfiguration gibt es die zentrale Konfigurationsdatei /etc/samba/smb.conf. Diese Datei ist in der Vorkonfiguration äußerst umfangreich und dadurch unübersichtlich. Für die erste Grundkonfiguration empfiehlt es sich, die Datei neu zu erstellen.

Erst die originale smb.conf zur Sicherheit kopieren:

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_org

und dann editieren:

sudo nano /etc/samba/smb.conf

[global]
workgroup = INHOUSE
security = user
encrypt passwords = yes
client min protocol = SMB2
client max protocol = SMB3

Diese Einträge in der Sektion [global] vornehmen (kopieren).

Der Parameter workgroup gibt die Bezeichnung der Arbeitsgruppe an. Damit hat man in Windows-Netzwerken Computer in Gruppen strukturiert. Neuere Windows-Versionen berücksichtigen diese Angabe nicht mehr.

Der Parameter security gibt an, welche Sicherheitsstufe beim Zugriff auf die Freigaben gelten sollen. Der Wert user sagt aus, dass die User-Verwaltung des Servers verwendet werden soll.

Der Parameter encrypt passwords mit yes sorgt dafür, dass die Passwörter bei der Authentifizierung verschlüsselt übertragen werden.

client protocol gibt an, welcher Mindest- und welcher Maximalstandard beim Zugriff verwendet werden soll.

Diese Konfigurationsdatei wird durch die Eingabe von

testparm

überprüft.

rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Registered MSG_REQ_POOL_USAGE
Registered MSG_REQ_DMALLOC_MARK and LOG_CHANGED
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
# Global parameters
[global]
client max protocol = SMB3
client min protocol = SMB2
security = USER
workgroup = INHOUSE
idmap config * : backend = tdb

Wenn hier kein Fehler angezeigt wird, kann fortgefahren werden. Ansonsten ist die /etc/samba/smb.conf zu überprüfen und den Fehler zu beheben.

Nach Änderungen an der Konfigurationsdatei müssen die Samba-Dienste neu gestartet werden um die Konfiguration zu übernehmen.

sudo service smbd restart
sudo service nmbd restart

Die Samba-Konfigurationsdatei öffnen und dort die Freigaben eintragen:

sudo nano /etc/samba/smb.conf

[dw_web]
comment = Dokuwiki Root
path = /mnt/ssd/www/html/dokuwiki
read only = no
browseable = yes
create mask=0777
[SambaTest]
comment = Samba-Test-Freigabe
path = /mnt/ssd/shares/test
read only = no
[SambaUsers]
comment = Samba-Users-Freigabe
path = /mnt/ssd/shares/users
read only = no

Die Konfigurationsdatei wird wieder durch die Eingabe von

testparm

überprüft.

rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Registered MSG_REQ_POOL_USAGE
Registered MSG_REQ_DMALLOC_MARK and LOG_CHANGED
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[SambaTest]"
Processing section "[SambaUsers]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
# Global parameters
[global]
client max protocol = SMB3
client min protocol = SMB2
security = USER
workgroup = INHOUSE
idmap config * : backend = tdb
[SambaTest]
comment = Samba-Test-Freigabe
path = /mnt/ssd/shares/test
read only = No
[SambaUsers]
comment = Samba-Users-Freigabe
path = /mnt/ssd/shares/users
read only = No

Samba neu starten:

sudo service smbd restart
sudo service nmbd restart

Damit sind die Freigeben im Netzwerk verfügbar.

Anmerkung zur smb.conf

[share]	Freigabe	Beispiel
comment	Wie wird der Share angezeigt	= SambaTest
path	Der Ordner, der freigeben werden soll	/share/media
browseable	Ist er durchsuchbar	= yes oder no
writeable	Darf man speichern	= yes oder no
only guest	nur für Gäste ja oder nein	= yes oder no
create mask	Zugriffsrechte	= 0750
directory mask	Zugriffsrechte	= 0750
public	Im Netzwerk sichtbar	= yes oder no
valid users	Beschränkt Zugriff auf user oder Gruppe	= pi, = @smbusers
force user	Falls bei Share-Level kein Windows Zugriff möglich	= pi
read only	Nur Leserechte (Read-Only Share)	= yes oder no
write list	Bestimmten Usern Schreibrechte auf Read-Only Share	= pi
guest ok	Darf man als Gast auf den Ordner zugreifen	= yes oder no
map to guest	Gastzugriff, auch wenn kein User eingerichtet	= bad user
guest account	Identität des Gastusers	= nobody

Samba-Passwort für Benutzer einrichten

Wenn ein Benutzer nur auf die Samba-Freigaben zugreifen können soll, muss trotzdem ein Linux-Konto angelegt werden. Hier reicht ein Konto mit eingeschränkter Funktionalität.

sudo useradd -s /bin/false -g users -m USERNAME

Wenn der Benutzer sich nicht auf dem Linux-System anmelden können soll, dann setzt man die Shell auf /bin/false. Die Eingabe eines Passworts ist an dieser Stelle nicht notwendig, da sich der User nicht am Server anmelden soll.

Wurde der Linux-Benutzer angelegt oder existiert bereits, dann legt man das Samba-Benutzerkonto an. Hier muss man auf alle Fälle ein Passwort vergeben, dass vom Passwort des Linux-Kontos abweichen darf. Das Passwort muss ein zweites Mal bestätigt werden.

sudo smbpasswd -a USERNAME
New SMB password:
Retype new SMB password:

Das Samba-Benutzerkonto ist anschließend sofort aktiv. Wenn nicht, dann muss man den Benutzer noch aktivieren.

Aktiviert den Benutzer in der Samba-Datenbank:

sudo smbpasswd -e USERNAME

Deaktiviert den Benutzer in der Samba-Datenbank:

sudo smbpasswd -d USERNAME

Entfernt den Benutzer aus der Samba-Datenbank:

sudo smbpasswd -x USERNAME

Samba Zugriff von Windows einrichten

An der Konsole des Raspberry

hostname -I

eingeben und die IP-Adresse kopieren.

Den Browser starten.

Auf Netzlaufwerk verbinden klicken.

Hier einen freien Laufwerksbuchstaben auswählen und die IP-Adresse und den Sharenamen eingeben
\\IP-Adresse\share_name und auf Fertig stellen klicken.

Quellen:

https://www.elektronik-kompendium.de/sites/raspberry-pi/2007071.htm
https://technikkram.net/2018/02/samba-freigabe-fuer-tv-server-einrichten
http://lug.krems.cc/docu/samba/ch06_02.html
https://pimylifeup.com/raspberry-pi-samba/