Archive

Posts Tagged ‘Zusammenarbeit’

SMB: Einrichtung eines gemeinsamen Verzeichnisses für einzelne Clients, gemeinsames Verzeichnis für die Zusammenarbeit

2012/01/23 Kommentare aus

Die Einrichtung eines gemeinsamen Verzeichnisses für die Zusammenarbeit mehrerer Benutzer sollte zuerst auf Dateisystemebene funktionieren und erst danach über CIFS exportiert werden.

Die Installation des Samba-Servers erfolgt durch Aufruf von

yum install samba

Erstellung von Benutzerkonten

Der erste Schritt ist die Erstellung einer Gruppe und das Hinzufügen/Erstellen der jeweiligen Mitglieder der Gruppe:

groupadd team1
useradd -s /sbin/nologin -g team1 alice
useradd -s /sbin/nologin -g team1 bob
useradd -s /sbin/nologin -g team1 sam

In obigem Beispiel wurde die Gruppe team1 und die Benutzer bob, sam und alice als deren Mitglieder erstellt. Da ein Login auf dem lokalen System für diese Benutzer nicht notwendig ist wurde den Benutzern die Login-Shell /sbin/nologin zugewiesen.

Zuweisen von Benutzerkennworten

Kennworte werden von Samba in einer eigenen Datenbank geführt. Die Erstellung eines Kennwortes für einen Benutzer erfolgt durch Aufruf von smbpasswd. Nachfolgend werden Kennworte für die Mitglieder der Gruppe team1 erstellt:

smbpasswd -a bob
smbpasswd -a sam
smbpasswd -a alice

Erstellung eines gemeinsamen Verzeichnisses

Wichtig bei der Erstellung des gemeinsamen Verzeichnisses zur Zusammenarbeit sind korrekt gesetzte Zugriffsrechte, falls nötig ein gesetztes Sticky-Bit sowie der entsprechende SELinux-Sicherheitskontext.

mkdir /share
chgrp team1 /share
chmod 3770 /share

Das Verzeichnis zur Zusammenarbeit wird mit Hilfe des Befehls mkdir erstellt, chgrp ändert die Hauptgruppe des Verzeichnisses zu team1. Mit chmod werden ausreichende Zugriffsrechte gesetzt, um den Mitgliedern der Gruppe team1 eine Zusammenarbeit zu ermöglichen. Die Bedeutung der oktal angegebenen Unix-Rechte ist hier noch einmal im Detail aufgeschlüsselt:

3   Set Group ID (2) + Sticky Bit (1)

Durch Setzen von Set Group ID (oktal 2) befinden sich neu erstellte Dateien und Verzeichnisse automatisch im Eigentum der Gruppe team1. Das gesetzte Sticky-Bit (oktal 1) bewirkt dass nur der jeweilige Eigentümer einer Datei diese auch löschen darf – obwohl die gesamte Gruppe Schreibrechte hat. Das Sticky-Bit sollte nur dann gesetzt werden wenn diese Funktionalität gewünscht ist.

7 Benutzer: Lesen (4) + Schreiben (2) + Ausführen (1)

7 Gruppe: Lesen (4) + Schreiben (2) + Ausführen (1)

0 Andere: keine Rechte

Benutzer und Gruppe haben Lese- (oktal 4), Schreib- (oktal 2) und execute-Rechte (oktal 1), in Summe also jeweils oktal 7 (rwx). Alle Anderen haben keine gesetzten Rechte, können also weder den Inhalt des Verzeichnisses einsehen, in das Verzeichnis wechseln oder Dateien bzw. Verzeichnisse anlegen oder ändern.

Konfiguration von SELinux

Von Samba freigegebene Verzeichnisse und Dateien müssen den Kontext samba_share_t haben. Zur einfacheren Konfiguration von Sicherheitskontexten ist es empfehlenswert, das Paket policycoreutils-python zu installieren. Dieses stellt unter anderem den Befehl semanage bereit:

yum install  policycoreutils-python
semanage fcontext -a -t samba_share_t /share
restorecon -R /share

Wichtig ist der genaue Syntax bei Aufruf von semanage – kein Forward-Slash nach Angabe des Verzeichnisses (BASH fügt dieses bei Tab-Vervollständigung automatisch an). semanage setzt den Type samba_share_t auf das Verzeichnis /share, restorecon führt diese Änderung dann auch tatsächlich durch.

Ausnahme in die Firewall hinzufügen

Die Firewall wird am unkompliziertesten mit dem Werkzeug system-config-firewall-tui angepasst. Eine Installation erfolgt durch

yum install system-config-firewall-tui

Aufruf der Werkzeugs zur Firewallkonfiguration:

system-config-firewall-tui

–> Anpassen –> „Samba“ markieren –> Schließen

Konfiguration von Samba

Die eigentliche Konfiguration von Samba ist recht einfach. Es wird eine Freigabe mit Angabe des Pfades erstellt und ausreichende Rechte darauf gesetzt.

Zu editieren ist dabei die Konfigurationsdatei /etc/samba/smb.conf. Erforderlich ist eine Anpassung von workgroup und netbios name, sowie das Hinzufügen der eigentlichen Freigabe.

workgroup = MYGROUP
netbios name = MYSERVER

[myshare]
 path = /share
 writable = yes
 valid users = +team1
 create mask = 660
 directory mask = 770
 hosts allow = 192.168.100.
 hosts deny = 192.168.100.103

Mit workgroup wird der Name der Arbeitsgruppe angegeben, netbios name setzt den Rechnernamen, der im Netzwerk angezeigt wird. Unter interfaces kann noch angegeben werden auf welchen Netzwerkschnittstellen Samba erreichbar ist. writable ermöglicht schreibenden Zugriff auf die Freigabe, create mask und directory mask geben an, mit welchen Rechten neu erstellte Dateien bzw. Verzeichnisse angelegt werden. valid users enthält durch Leerzeichen getrennt Benutzer, die Zugriff auf die jeweilige Freigabe haben sollen. Gruppen werden durch vorangestelltes + gekennzeichnet. Hostbasierte Zugriffssteuerung kann mit hosts allow bzw. hosts deny erreicht werden.

Nach erfolgter Anpassung der Konfiguration muss der Netbios-Name Daemon nmb sowie der Samba-Server smb (neu) gestartet werden:

service nmb start
service smb start
chkconfig nmb on
chkconfig smb on

Die Freigabe sollte nun in der Netzwerkumgebung sichtbar sein und von den Benutzern bob, sam und alice zu benutzen sein.

Weiterführende Informationen bieten die Befehle

man samba
man samba_selinux
man smb.conf
tail -f /var/log/messages
tail -f /var/log/audit/audit.log
getsebool -a | grep samba