Samba-Server einrichten
Die Installation und Konfiguration eines Samba-Servers ist mittlerweile eine mehr als simple Angelegenheit geworden und besteht im wesentlichen nur aus Benutzer anlegen und Konfigurationsfile anpassen. Die hier dargestellte Konfiguration geht davon aus das keine Benutzerordner und Drucker freigegeben werden müssen und dass jeglicher Zugriff auf den Server mittels Benutzername und Passwort erfolgt, also keine Gastzugriffe erlaubt sind.
Benutzer anlegen
Um sich am Samba-Server anmelden zu können nutzt Samba eine interne Passwort-Datenbank. Dennoch müssen die Benutzer am System angelegt sein. Um reine Samba-Nutzer anzulegen (d.h. Nutzer die sich nicht an der Konsole des Servers sondern nur am Samba-Server anmelden können und über kein Home-Verzeichnis verfügen) nutzen Sie den folgenden Befehl:
useradd -M -s /bin/nologin <username>
Dannach müssen Sie für diese neu angelegten Benutzer noch ein Samba-Passwort vergeben. Sie können damit auch bereits am System angelegten Benutzern ein Passwort zuordnen.
smbpasswd -a <username>
Samba konfigurieren
Die folgende Anleitung geht davon aus, dass Sie die nach der Installation angelegte Konfigurationsdatei unter /etc/samba/smb.conf noch nicht verändert haben.
Allgemeine Einstellungen
Ändern Sie die Serverbezeichnung über den Parameter server string.
# server string is the equivalent of the NT Description field
; server string = %h server (Samba, Ubuntu)
server string = bartlweb.net Dataserver
Sicherheit
Aktivieren Sie die Option security = user um die Sicherheit der Anmeldung zu erhöhen.
# "security = user" is always a good idea. This will require a Unix account
# in this server for every user accessing the server. See
# /usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/ServerType.html
# in the samba-doc package for details.
security = user
Deaktivieren Sie den Gast-Zugriff durch auskomentieren der Option usershare allow guests.
# Allow users who've been granted usershare privileges to create
# public shares, not just authenticated ones
; usershare allow guests = yes
Definieren Sie global für alle Freigaben welche Nutzer Zugriff haben und welchen der Zugriff niemals gestattet wird. Diese Einstellungen können später pro Freigabe überschrieben werden.
# By default, \\server\username shares can be connected to by anyone
# with access to the samba server. Un-comment the following parameter
# to make sure that only "username" can connect to \\server\username
# This might need tweaking when using external authentication schemes
; valid users = %S
valid users = superuser,user,user2,webserver
invalid users = root
Freigaben
Deaktivieren Sie die die Freigabe von Benutzerordnern und Druckern durch auskommentieren der entsprechenden Freigaben-Konfigurationen.
# Un-comment the following and create the profiles directory to store
# users profiles (see the "logon path" option above)
# (you need to configure Samba to act as a domain controller too.)
# The path below should be writable by all users so that their
# profile directory may be created the first time they log on
;[profiles]
; comment = Users profiles
; path = /home/samba/profiles
; guest ok = no
; browseable = no
; create mask = 0600
; directory mask = 0700
;[printers]
; comment = All Printers
; browseable = no
; path = /var/spool/samba
; printable = yes
; guest ok = no
; read only = yes
; create mask = 0700
# Windows clients look for this share name as a source of downloadable
# printer drivers
;[print$]
; comment = Printer Drivers
; path = /var/lib/samba/printers
; browseable = yes
; read only = yes
; guest ok = no
Fügen Sie am Ende der Datei Ihre persönlichen Freigaben hinzu. Hier drei Beispiele mit unterschiedlichen Schreib- und Leserechten.
#
# custom shares
#
[data]
comment = bartlweb.net - Data
path = /mnt/data
write list = superuser,user
force user = localuser
admin users = localuser
[private]
comment = bartlweb.net - Private
path = /mnt/private
write list = superuser
force user = localuser
admin users = localuser
valid users = superuser
[archive]
comment = bartlweb.net - Archive
path = /mnt/archive
write list = superuser
force user = localuser
admin users = localuser
valid users = superuser,user,user2
[storage-webserver]
comment = storage - webserver
path = /mnt/www
unix extensions = yes
write list = webserver
force user = localuser
admin users = localuser
valid users = webserver,superuser
Konfigurations-Parameter für Freigaben
comment
Jener Kommentar der in Windows neben der Freigabe als Beschreibung angezeigt wird.
path
Der absolute Pfad zum freigegebenen Verzeichnis. Der Pfad sollte kein symbolischer Link sein.
valid users
Alle Benutzer die lesenden Zugriff auf die Freigabe haben. Beachten Sie, dass dieser Parameter sofern nicht angegeben von der globalen Einstellung übernommen wird. Jeder dieser Benutzer muss über smbpasswd ein Passwort gesetz bekommen, bevor dieser zugreifen kann.
write list
Alle Benutzer die schreibenden Zugriff auf die Freigabe erhalten. Auch dieser Parameter wird von der globalen Einstellung übernommen, falls nicht hier gesetzt und global definiert.
force user/admin users
Beiden Parametern sollte jener lokale Benutzernamen zugeweisen werden, der lokalen Zugriff im Dateisystem auf die freigegeben Dateien hat und mit dessen Rechte diese auch geschrieben werden.
unix extensions
Wird ein Samba-Share unter einer anderen Linux-Installation gemountet um dort z.B. der htdocs-Ordner für eine Apache-Installation zu sein, so empfiehlt es sich, Samba, gesetzte UNIX-Dateiattribute in der Freigabe beachten bzw. weitergeben zu lassen.