Samba ist eine Open-Source-Software, die Linux-Systeme in die Lage versetzt, mit Windows-Netzwerken zu kommunizieren und Dateien sowie Drucker gemeinsam zu nutzen. Während Samba häufig in Verbindung mit Windows-Domänen verwendet wird, ist es ebenso leistungsfähig, wenn es darum geht, lokale Benutzer und Freigaben zu verwalten. In diesem Beitrag zeigen wir, wie Sie lokale Benutzer auf einem Linux-Server mit Samba verwalten und wie Sie die entsprechenden Dateifreigaben einrichten.
Was ist Samba?
Samba stellt Linux-Systeme als vollwertige Mitglieder in Windows-Netzwerken bereit. Es ermöglicht nicht nur den Zugriff auf Windows-Netzwerkfreigaben, sondern stellt auch Netzwerkdienste für Windows-Clients bereit. Ein weiterer wichtiger Aspekt von Samba ist die Verwaltung lokaler Benutzer auf dem Linux-System, die für den Zugriff auf Samba-Freigaben genutzt werden.
Voraussetzungen
Bevor Sie mit der Benutzerverwaltung beginnen, müssen Sie sicherstellen, dass Samba auf Ihrem System installiert ist. Auf den meisten Linux-Distributionen können Sie Samba über die Paketverwaltung installieren.
Für Debian/Ubuntu Systeme:
sudo apt update
sudo apt install samba smbclient
Für RHEL/CentOS Systeme:
sudo yum install samba samba-client
Sobald Samba installiert ist, sollten Sie überprüfen, ob der Samba-Dienst läuft und so konfiguriert ist, dass er beim Systemstart automatisch gestartet wird:
sudo systemctl start smbd
sudo systemctl enable smbd
sudo systemctl start smbd
sudo systemctl enable smbd
Samba Konfiguration: Lokale Benutzer und Freigaben
Samba speichert seine Konfiguration in der Datei /etc/samba/smb.conf
. Um Samba für die lokale Benutzerverwaltung zu konfigurieren, müssen Sie die Konfigurationsdatei entsprechend anpassen.
Ein einfacher Abschnitt in der smb.conf
für eine Freigabe könnte folgendermaßen aussehen:
[global]
workgroup = WORKGROUP
security = user
map to guest = bad user
[freigabe]
path = /srv/samba/freigabe
browsable = yes
read only = no
guest ok = no
valid users = @sambabenutzer
- workgroup: Definiert die Arbeitsgruppe, in der sich das Samba-Server befindet. Standardmäßig ist dies „WORKGROUP“.
- security = user: Stellt sicher, dass Benutzer sich authentifizieren müssen, um auf Freigaben zugreifen zu können.
- map to guest = bad user: Weist ungültigen Benutzern den Gastzugriff zu (dies kann für Freigaben nützlich sein, die für nicht authentifizierte Benutzer verfügbar sein sollen).
- valid users: Gibt an, welche Benutzer oder Gruppen Zugriff auf die Freigabe haben. In diesem Fall können alle Benutzer, die zur Gruppe „sambabenutzer“ gehören, auf die Freigabe zugreifen.
Hinzufügen lokaler Benutzer für Samba
Samba verwendet sein eigenes System zur Verwaltung von Benutzern, das auf den lokalen Linux-Benutzern basiert. Bevor ein Benutzer Samba verwenden kann, muss dieser sowohl als Linux-Benutzer als auch als Samba-Benutzer existieren.
1. Linux-Benutzer erstellen
Zuerst müssen Sie den lokalen Linux-Benutzer erstellen, der für die Samba-Anmeldung verwendet werden soll. Dies geschieht mit dem Befehl useradd
.
sudo useradd -m benutzername
sudo passwd benutzername
Das -m
Flag erstellt das Home-Verzeichnis des Benutzers. Anschließend setzen Sie ein Passwort für diesen Benutzer.
2. Benutzer zu Samba hinzufügen
Nachdem der Linux-Benutzer erstellt wurde, muss er auch in die Samba-Benutzerdatenbank aufgenommen werden. Dies geschieht mit dem Befehl smbpasswd
:
sudo smbpasswd -a benutzername
Dieser Befehl fügt den Benutzer zur Samba-Benutzerdatenbank hinzu und fordert Sie auf, ein Passwort für den Samba-Zugriff festzulegen. Der Benutzer verwendet dieses Passwort, um auf Samba-Freigaben zuzugreifen.
3. Gruppen verwalten
Falls mehrere Benutzer Zugriff auf eine bestimmte Freigabe haben sollen, können Sie eine Gruppe erstellen und diese für die Verwaltung der Zugriffsrechte verwenden.
Erstellen Sie eine Gruppe und fügen Sie Benutzer hinzu:
sudo groupadd sambabenutzer
sudo usermod -aG sambabenutzer benutzername
Fügen Sie anschließend in der Samba-Konfiguration die Gruppe zu der Freigabe hinzu (wie oben in der valid users
Zeile gezeigt).
Einrichten einer Samba-Freigabe
Samba ermöglicht die Freigabe von Verzeichnissen auf dem Linux-Server, die von Windows-Clients im Netzwerk verwendet werden können. Hier sind die grundlegenden Schritte, um eine Freigabe einzurichten:
1. Verzeichnis für die Freigabe erstellen
Erstellen Sie das Verzeichnis, das Sie freigeben möchten, und setzen Sie die entsprechenden Berechtigungen:
sudo mkdir -p /srv/samba/freigabe
sudo chown -R root:sambabenutzer /srv/samba/freigabe
sudo chmod -R 2770 /srv/samba/freigabe
- chown setzt den Eigentümer des Verzeichnisses auf „root“ und die Gruppe auf „sambabenutzer“.
- chmod 2770 setzt die Berechtigungen so, dass nur der Eigentümer und die Mitglieder der Gruppe „sambabenutzer“ Schreib- und Leserechte haben. Die 2 setzt das Set-GID-Bit, wodurch Dateien, die in diesem Verzeichnis erstellt werden, automatisch der Gruppe „sambabenutzer“ gehören.
2. Freigabe in Samba konfigurieren
Öffnen Sie die /etc/samba/smb.conf
Datei und fügen Sie am Ende den Freigabeabschnitt hinzu:
[freigabe]
path = /srv/samba/freigabe
browsable = yes
read only = no
guest ok = no
valid users = @sambabenutzer
- path gibt den Pfad des freigegebenen Verzeichnisses an.
- browsable = yes erlaubt es den Benutzern, die Freigabe im Netzwerk zu sehen.
- read only = no erlaubt es Benutzern, Dateien in die Freigabe zu schreiben.
- guest ok = no erlaubt keinen Gastzugriff, d. h., nur authentifizierte Benutzer dürfen zugreifen.
- valid users = @sambabenutzer beschränkt den Zugriff auf Mitglieder der Gruppe „sambabenutzer“.
3. Samba-Dienst neu starten
Damit die Änderungen wirksam werden, müssen Sie den Samba-Dienst neu starten:
sudo systemctl restart smbd
Zugriff auf Samba-Freigaben
Sobald die Freigabe eingerichtet ist, können sich lokale Benutzer, die Sie zu Samba hinzugefügt haben, mit ihren Anmeldedaten anmelden und auf die Freigaben zugreifen.
- Von Windows aus: Öffnen Sie den Datei-Explorer und geben Sie die IP-Adresse oder den Hostnamen des Linux-Servers im Format
\\server-ip\freigabe
ein. - Von Linux aus: Verwenden Sie den Befehl
smbclient
, um auf die Freigabe zuzugreifen:
smbclient //server-ip/freigabe -U benutzername
Zugriffsrechte und Sicherheit
Samba unterstützt eine flexible Verwaltung von Zugriffsrechten. Hier sind einige zusätzliche Optionen, die Sie für die Benutzerverwaltung und Sicherheit berücksichtigen können:
- Benutzerbasierter Zugriff: Sie können spezifischen Benutzern Zugriff gewähren, anstatt nur Gruppen zu verwenden. Ändern Sie dazu einfach den Eintrag
valid users
in der Konfiguration zu:
valid users = benutzername1, benutzername2
Logging und Überwachung: Samba kann detaillierte Protokolle führen, die nützlich sind, um Zugriffe zu überwachen und Probleme zu diagnostizieren. In der smb.conf
können Sie das Logging konfigurieren:
log file = /var/log/samba/log.%m
log level = 1
- Feinabstimmung der Freigaben: Es gibt viele weitere Optionen zur Feinabstimmung der Freigaben. Beispielsweise können Sie festlegen, dass Dateien von Benutzern nur gelesen, aber nicht gelöscht werden dürfen, oder die Anzahl der gleichzeitigen Verbindungen beschränken.
Fazit
Die Verwaltung lokaler Benutzer mit Samba bietet eine einfache und flexible Möglichkeit, Dateifreigaben für Netzwerke mit gemischten Betriebssystemen bereitzustellen. Durch die Verwendung von Linux-Benutzern und -Gruppen können Sie den Zugriff auf Samba-Freigaben granular steuern und sicherstellen, dass nur autorisierte Benutzer auf Ihre Daten zugreifen können. Die Kombination von Samba und der leistungsfähigen Benutzerverwaltung unter Linux ermöglicht eine robuste und sichere Netzwerkinfrastruktur, die sowohl in kleinen als auch in großen Umgebungen eingesetzt werden kann.