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.
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
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.
[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 |
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
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.