Linux als SOHO-Server

für Linux- und Windows-Clients
http://linux.eusterholz.dyndns.org

Kapitel:

Home
Debian Installation
Debian Etc.
Internet-Zugang
Telnet
FTP
r-Utilities
SSH
Printing
NTP
Nameserver
NFS/NIS/Automount
Samba (SMB-Server)
Apache (WEB-Server)
Modem / ISDN
Backup
Etc.


Vorbemerkungen

Installation ] [ Vorbemerkungen ] 'Stand-alone'-Server ] Domänencontroller ] Netz-Drucker ] Windows-Zugriff ] Linux-Zugriff ] SWAT ] Sonstiges ]


Bevor auf konkrete Konfigurationen mittels Samba eingegangen wird noch ein paar allgemeine Vorbemerkungen. Dabei geht es um die unterschiedlichen Betriebsvarianten und User-Datenbanken unter Samba. Weiterhin eine Empfehlung wie Benutzer unter Samba zu handhaben sind.

Samba-Server Betriebsvarianten

Prinzipiell kann ein Samba-Server je nach Konfiguration und Einsatzzweck auf unterschiedliche Art betrieben werden: Hier eine Unterteilung die ab der Version 3.x von Samba möglich sind.

  • 'Stand-alone'-Server
  • Domänenmitglieder-Server
    • Domänenserver im NT4-Stil
    • Active-Directory-Domänenserver
  • Domänencontroller
    • Primäre Domänencontroller (PDC)
    • Backup-Domänencontroller (BDC)
    • ADS-Domänencontroller

Im Verlauf dieses Kapitel wird nur auf die Betriebsvariante des 'Stand-alone'-Servers und des Domänencontrollers eingegangen.

User-Datenbanken unter Samba (User-Datenbank-Backends)

Samba ab der Version 3.0 kann Benutzer auf unterschiedlichster Weise in Datenbanken verwalten. Das jeweilige Datenbankformat wird in der 'smb.conf' in der Sektion '[global]' durch das Schlüsselwort 'passdb backend = ' bestimmt. Hier eine Auswahl der gängigsten möglichen 'User-Datenbank-Backends':

  • smbpasswd
    Unter alten Samba-Versionen gab es lediglich die Datei 'smbpasswd', die ähnlich wie '/etc/passwd', als Klartext-Datei abgespeichert wird. Diese Datei speichert den Usernamen, das Passwort (verschlüsselt) und einige Account-Informationen. Diese Datenbank sollte benutzt werden, um eine Abwärtskompatibilität zu älteren Samba-Versionen zu gewährleisten. 'smbpasswd' ist auch das voreingestellte Backend.
  • tdbsam
    Die 'tdbsam' ist eine Userdatenbank, welche Informationen wie NT speichert. Die Abkürzung 'tdb' steht dabei für 'Trivial DataBase' eine und 'sam' für 'Security Accounts Manager' eine Sicherheitskontendatenbank wie sie bei 'Windows NT' verwendet wird. Die 'tdbsam' ist performanter als die 'smbpasswd' sollte jedoch nur bis zu 250 Benutzer verwendet werden. Auch eignet sich diese Datenbankmethode nicht für das Aufsetzen von mehreren Domaincontrollern (PDC/BDC-Konstellation). Editiert wird die 'tdbsam' mit dem neuen Tool 'pdbedit'.
  • ldapsam
    Bei größeren Umgebungen sollte als User-Datenbank 'ldapsam' genutzt werden. Dieses Backend wird im Zusammenhang
    mit OpenLDAP verwendet, einem Verzeichnisdienst auf dem z.B. auch Microsofts 'Active-Directory' aufbaut. Auch kann mit 'ldapsam' das Aufsetzen von mehreren Domaincontrollern (z.B. ein PDC plus einem oder mehreren BDCs) realisiert werden.

Weitere User-Datenbank-Backends sind 'mysqlsam' (basiert auf MySQL) oder 'xmlsam' (Daten werden im XMLFormat gespeichert).

Im Verlauf dieses Kapitels wird nur das traditionelle User-Datenbank-Backend 'smbpasswd' berücksichtigt, somit sollten die aufgeführten Beispiele auch für altere Samba-Versionen gültig sein.

Samba-Gruppen/Benutzer

Als nächstes eine kleine Abhandlung über Benutzer und Gruppen unter Samba.

Im Folgenden wird zwischen: 'Samba-/Linux-Benutzer' und 'Nur-Samba'-Benutzer unterschieden. Dabei handelt es sich bei einen 'Samba-/Linux-Benutzer' um einen Benutzer der sich z.B. mit einem Windows-System mit den Samba-Server verbinden kann und gleichzeitig über ein vollwertiges Benutzer-Login unter Linux auf dem Server besitzt. Ein 'Nur-Samba'-Benutzer kann sich nur mit dem Samba-Server verbinden, er besitzt zwar auch ein Login auf dem Linux-Server, jedoch kann er sich nicht unter Linux einloggen, da er keine Shell bekommt.

Es ist sehr praktisch alle Samba-Benutzer, egal ob es sich hierbei um 'Samba-/Linux-Benutzer' oder 'Nur-Samba'-Benutzer  handelt, in Gruppen zu gliedern. Das erhöht zum einen die Übersicht auf dem System, und zum anderen können Dateirechte für Gruppen vergeben werden. Sinnvoll ist es z.B. folgende Gruppen dem Samba-System hinzuzufügen:

  • users        (für 'Samba-/Linux'-Benutzer)
  • smb-users    (für 'Nur-Samba'-Benutzer)
  • smb-admins   (für Samba-Administratoren)
  • smb-machines (für 'Maschinen-Accounts' beim Betrieb als Domänencontroller)

Gruppen für Samba-Benutzer

Für die 'Linux-/Samba'-Benutzer kann z.B. die unter Debian vordefinierten Gruppe 'users' genutzt werden. Für die 'Nur-Samba'-Benutzer sollte evt. eine eigene neue Gruppe, z.B. mit dem Namen: 'smb-users' erstellt werden. Das Anlegen einer neuen Gruppe erfolgt mit dem Kommando:

groupadd <GRUPPE> z.B.: groupadd smb-users

Um bereits bestehende Benutzer in bestimmte Gruppen aufzunehmen kann das Kommando:

gpasswd -a <BENUTZER> <GRUPPE>

genutzt werden. Der Schalter '-a' steht dabei für das Hinzufügen (add). Um z.B. dem Benutzer 'linux' zusätzlich in die Gruppe 'smb-users' aufzunehmen ist:

gpasswd -a linux smb-users

einzugeben. Alternativ kann die Mitgliedschaft der Benutzer direkt in der Datei '/etc/group' editiert werden.

'Samba-/Linux'-Benutzer

Zum Anlegen von Benutzern kann das adduser-Kommando verwendet werden. Um z.B. einen 'Samba-/Linux'-Benutzer zu erstellen, ist das Kommando mit den folgenden Optionen als 'root' aufzurufen:

useradd -g <GRUPPE> -s <LOGIN-SHELL> -d <HEIMATVERZEICHNIS> -m <BENUTZER>

bzw. als Bsp.-Kommando für einen Benutzer mit den Namen 'user_1':

useradd -g users -s /bin/bash -d /home/user_1 -m user_1

Die Option '-g' ordnet dem Benutzer einer Gruppe zu und mit '-s' wird die Login-Shell gewählt. Das Heimatverzeichnis wird mit der Option '-d' angegeben und '-m' sorgt dafür, dass dieses Verzeichnis inklusive einer Reihe wichtiger Initialisierungsdateien sofort angelegt wird. Nach dem Aufruf von 'useradd' ist der neu angelegte Benutzer jedoch noch inaktiv. Um ihn zu aktivieren muss ihm noch ein Passwort zugewiesen werden, dies geschieht mittels dem Kommando:

passwd <BENUTZER> bzw. passwd user_1

Nach dem Absetzen des Kommandos, muss ein Passwort eingegeben werden, welches zur Bestätigung wiederholt werden muss. Anschließend ist der neue Benutzer eingerichtet und aktiv. Das erfolgreiche Einrichten kann zunächst mit einen Login-Versuch auf dem Linux-System geprüft werden.

'Nur-Samba'-Benutzer

Um einen 'Nur-Samba'-Benutzer einzurichten ist das adduser-Kommando ähnlich anzuwenden. Dabei ist auf die Option '-m' zu verzichten und keine Login-Shell zu wählen (Shell in diesem Fall = '/bin/false').

useradd -g <GRUPPE> -s /bin/false -d <HEIMATVERZEICHNIS> <BENUTZER>

bzw. als Bsp.-Kommando für einen Benutzer mit den Namen 'user_2':

useradd -g smb-users -s /bin/false -d /home/user_2 user_2

Da die Option '-m' nicht angewandt wurde, ist das Heimatverzeichnis des 'Nur-Samba'-Benutzers mit folgenden Attributen zu erstellen:

mkdir <HEIMATVERZEICHNIS>
chmod 700 <HEIMATVERZEICHNIS>
chown <BENUTZER> <HEIMATVERZEICHNIS>
chgrp <GRUPPE> <HEIMATVERZEICHNIS>

bzw. (hier liegt das /home-Verzeichnis unter: /etc/samba/home/user_2)

mkdir /home/user_2
chmod 700 /home/user_2
chown user_2 /home/user_2
chgrp smb-users /home/user_2

Das Kommando 'passwd' wie bei einen 'Samba-/Linux-Benutzer' brauch nicht zu erfolgen, da der 'Nur-Samba'-Benutzer auf dem Linux-System über keine login-Möglichkeit verfügen soll.

Benutzer für Samba eintragen

Damit Benutzer auf dem Samba-Server zugreifen können müssen diese dem System bekannt gegeben werden. Für das Password-Backend: '/etc/smbpasswd' und 'tdb' können die Benutzer mit dem Kommando 'smbpasswd', welches zum Samba-Paket gehört, bekannt gemacht werden.

smbpasswd -a <BENUTZER> bzw. smbpasswd -a user_n
smbpasswd -e <BENUTZER> bzw. smbpasswd -e user_n

Nach dem Absetzen des Kommandos 'smbpasswd' mit der Option '-a' (add) wird nach einem Passwort gefragt, welches anschließend wiederholt werden muss. Bei einen 'Samba-/Linux-Benutzer' muss das Passwort, mit dem Passwort der Windows-Anmeldung übereinstimmen, nicht aber unbedingt mit dem Linux-Passwort auf dem System.
Anschließend muss der zuvor erstellte Benutzer mit der Option '-e' (enable) aktiviert werden.

Anmerkungen

Bei Verwendung der User-Datenbank 'tdbsam' können die Benutzer ebenfalls mit 'smbpasswd' verwaltet werden, weiterhin gibt es zum editieren der Datenbank das Programm 'pdbedit'.

Weitere Infos

Homepage: Samba http://www.samba.org
Using Samba, 2nd Edition http://de.samba.org/samba/docs/using_samba/toc.html
The Official Samba-3 HOWTO and Reference Guide http://de.samba.org/samba/docs/man/Samba3-HOWTO/
Samba-3 by Example http://de.samba.org/samba/docs/man/Samba3-ByExample/
Samba-HOWTO-Sammlung http://gertranssmb3.berlios.de/output/
Samba, 2. Auflage http://www.oreilly.de/german/freebooks/samba2ger/
Manualseiten zu: smbpasswd man smbpasswd
System-Dokumentation:  samba; samba-common /usr/share/doc/samba; /usr/share/doc/samba-common

Home ] Nach oben ] Installation ] [ Vorbemerkungen ] 'Stand-alone'-Server ] Domänencontroller ] Netz-Drucker ] Windows-Zugriff ] Linux-Zugriff ] SWAT ] Sonstiges ]

letzte Änderung: 18. März 2006

 

Copyright © 2004 Norbert Eusterholz