Inhaltsverzeichnis

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/