Was ist Samba
Um die Drucker- und Dateifreigabe bereitzustellen, verwendet Microsoft Windows eine Einrichtung namens SMB (Server Message Block) . Dieselbe Einrichtung wird manchmal auch als NetBIOS bezeichnet oder LanManager . Dank Andrew Tridgell und anderen bieten Linux-Systeme Unterstützung für SMB über ein Paket namens Samba. Wie SMB können Sie mit Samba:
- Geben Sie Drucker und Dateien zwischen Microsoft Windows-, OS/2-, Netware- und Unix-Systemen frei
- Richten Sie einen einfachen Nameserver zum Identifizieren von Systemen in Ihrem lokalen Netzwerk ein
- PC-Dateien auf einem Linux-System sichern und wiederherstellen
- Benutzer und Passwörter verwalten
Samba hat seine Zuverlässigkeit und hohe Leistung in vielen Organisationen bewiesen. Die Samba-Software-Suite für Enterprise Linux ist eine Sammlung von Programmen, die das Server Message Block-Protokoll (allgemein als SMB abgekürzt) für UNIX-Systeme implementiert.
Samba installieren
Installieren Sie im Enterprise Linux-System die folgenden Pakete, um mit Samba zu beginnen. Sie können diese Pakete mit dem Befehl „yum install“ vom Yum-Server herunterladen/installieren.
samba #### basic Samba packages samba-client #### samba client
So installieren Sie diese Pakete:
# yum install samba # yum install samba-client
Wenn Sie ein Active Directory-Setup verwenden, installieren Sie auch die folgenden Pakete.
# yum install samba-winbind # yum install samba-winbind-clients # yum install samba-winbind-krb5-locator
Unten ist die Liste der Pakete, die installiert werden, sobald Sie die oben genannten Pakete installiert haben.
samba-libs samba-winbind-krb5-locator samba-winbind-modules samba-vfs-glusterfs samba-winbind samba-client samba-common samba-winbind-clients samba
Konfigurieren einer Samba-Freigabe
Die Konfiguration von Samba befindet sich normalerweise in /etc/samba/smb.conf die alle Konfigurationsparameter enthält, die sich auf Samba beziehen. Befolgen Sie die nachstehenden Schritte, um eine Samba-Freigabe zu konfigurieren.
1. Damit die Freigabe für einen bestimmten Benutzer zugänglich ist, müssen wir zuerst einen Benutzer (john) auf dem Linux-Server erstellen, auf dem sich die Freigabe ebenfalls befindet.
# useradd john
# passwd john Changing password for user john. New password: Retype new password: passwd: all authentication tokens updated successfully.
2. Um den Samba-Benutzer zu aktivieren und das Passwort festzulegen, verwenden Sie den Befehl „smbpasswd“ mit dem -a Option.
# smbpasswd -a john
3. Erstellen Sie das freizugebende Verzeichnis oder verwenden Sie ein vorhandenes Verzeichnis. Legen Sie auch vollständige Berechtigungen für das Verzeichnis fest.
# mkdir -p /path/to/share # chmod -R 777 /path/to/share
4. Legen Sie als Nächstes die SElinux-Kontexte auf der Freigabe fest. Überprüfen Sie, ob Sie eine Datei in der Freigabe erstellen können.
# chcon -R -t samba_share_t /path/to/share # cd /path/to/share # echo test > testfile.txt
5. Bearbeiten Sie die Datei /etc/samba/smb.conf und fügen Sie die Freigabeeinstellungen hinzu.
# vi /etc/samba/smb.conf [share_name] path = /path/to/share comment = samba share for john public = yes writable = yes create mask = 0777 browseable = yes
Starten Sie den Samba-Dienst neu, damit die obigen Einstellungen wirksam werden.
# service smb restart
Fehlerbehebung
Um das Problem mit einer Samba-Freigabe herauszufinden, können Sie versuchen, den iptables-Dienst zu deaktivieren und SELinux auszuschalten. Stellen Sie sicher, dass Sie sie wieder aktivieren, nachdem Sie den Konflikt gelöst haben.
# service iptables stop # setenforce 0
Samba-Parameter mit testparm überprüfen
Um zu überprüfen, ob die Parameter in der Datei smb.conf korrekt sind, oder um Konfigurationsprobleme zu beheben, verwenden Sie den Befehl testparm.
Protokolle
Zum Debuggen von Problemen mit Samba im Allgemeinen die Log-Dateien log.smbd und log.nmbd unter /var/log/samba Verzeichnis sind von unschätzbarem Wert. Der Parameter log level im globalen Abschnitt der Datei smb.conf bestimmt die Menge an detaillierten Informationen, die Samba in die Logdateien schreibt, wobei Level 0 am allgemeinsten und 10 am detailliertesten ist. Jede Protokollierungsebene enthält die Meldungen dieser Ebene zusätzlich zu den darunter liegenden Protokollierungsmeldungen. Beispielsweise enthält eine Protokollierungsebene von 5 Nachrichten von Ebene 5 sowie Nachrichten von Ebene 0 bis 4.
# vi /etc/samba/smb.conf # this tells Samba to use a separate log file for each machine # that connects log file = /var/log/samba/%m.log debuglevel = 4