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.