blog.bartlweb - a technologist's external brain

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.

Dieser Artikel hat Dir deinen Tag gerettet?

... und mühevolles Probieren, Recherchieren und damit Stunden an Zeit gespart? Oder einfach nur Dein Problem gelöst?

Dann würde ich mich freuen, wenn Du meine Zeit für die Erstellung dieses Blogartikels mit einer kleinen Anerkennung honorierst:

Zahlung mit PayPal oder Kreditkarte.

Hinweis zur Verwendung

Die Übermittlung einer Zahlung ist eine persönliche Anerkennung Ihrerseits an den Entwickler (Christian Bartl, Privatperson). Eine Zahlung ist nicht zweckgebunden und es ist keine Gegenleistung zu erwarten. Bitte beachten Sie, dass für eine übermittelte Zahlung keine Quittung ausgestellt werden kann.

Über den Autor

Christian Bartl

Christian Bartl Requirements Engineer
& Solution Architect für Online und Mobile

Als Technologie-Enthusiast und begeisterter Programmierer entwickle ich in meiner Freizeit Websites, Software und IT-Lösungen, die mir selbst und anderen den Alltag vereinfachen.

mehr auf christian.bartl.me

Kommentare

Noch kein Kommentar vorhanden.
Sei der Erste! - Ich freue mich über deine Anmerkung, Kritik oder Frage.

Kommentar schreiben

Der hier angegebene Name wird gemeinsam mit deinem Kommentar auf der Website veröffentlicht.

Deine E-Mail-Adresse wird zur einmaligen Benachrichtigung bei Veröffentlichung des Kommentars genutzt.

Benachrichtigung per E-Mail über Antworten auf meinen Kommentar erhalten.

Bitte tippe die Zahlenkombination "3218" ein, nur dann kann ich deinen Kommentar entgegennehmen.

Bitte fülle dieses Feld nicht aus, nur dann kann ich deinen Kommentar entgegennehmen.