Samba ist eine freie Software für Unix-Derivate wie Linux oder BSD, welche das von Microsofts Windows genutzte Protokoll zum Dateiaustausch und Druck in lokalen Computer-Netzwerken unterstützt. Diese Software wurde von uns für ein System eingesetzt, welches Druckaufträge im Netzwerk empfängt und vor Freigabe auf einem Drucker abrechnet. Dieses System nutzte dabei je nach Situation fallweise verschiedene Quellen zur Authentifizierung von Nutzern, darunter auch Chipkarten, welche an einem Gerät des Systems durch einen Kartenleser erfasst wurden. Dieser Patch entstand, da diese Funktion so nicht von Samba geboten wurde. Er ist auf die Schnittstellen der Version 3.0 zugeschnitten und arbeitet eventuell nicht mehr mit den aktuellsten Versionen.
Patch herunterladen
samba-auth_ext.tar.gz
Installation
Nach dem Herunterladen des Pakets befolgen Sie diese Schritte:
- Entpacken des Archivs mit dem Befehl
tar xzvf samba-auth_ext.tar.gz
wechseln Sie anschließend in das erstellte Unterverzeichnis auth_ext
cd auth_ext
- Tragen Sie den Pfad der vorhandenen Samba-Sourcen in der Datei Makefile ein. Diese finden Sie hier.
- Erstellen der Moduldatei mit
make
- Installieren des Moduls mit
make install
Sollte
es hierbei zu Fehlern kommen, passen Sie bitte den Pfad in der Datei
Makefile an oder kopieren Sie die Datei external.so von Hand.
Konfiguration
- Öffnen Sie die Konfigurationsdatei
Ihrer Installation von Samba. In den globalen Einstellungen am Anfang
der Datei können Sie nun die Nutzung des Moduls aktivieren.
auth methods = external
Sie können auch interne Module mit diesem verbinden, indem Sie weitere Methoden vor oder hinter der Angabe external
durch Leerzeichen getrennt hinzufügen. Samba arbeitet diese Liste im
Zuge der Authentifizierung soweit ab, bis ein Nutzer entweder
authentifiziert oder abgelehnt wurde.
- Weiterhin können Sie Optionen direkt für das Modul in der gleichen Datei definieren:
- auth_external:script wählt den absoluten Pfad des Skripts, welches vom Modul aufgerufen und in seiner Ausführung überwacht wird.
- auth_external:user
wählt den Namen eines Nutzerkontos, mit dessen Rechten das Skript
ausgeführt werden soll. Diese Angabe ist optional. Als Standard wird
der gleiche Nutzer wie beim Samba-Server selbst genutzt.
- auth_external:shell
wählt eine Shell, die für einen authentifizierten Nutzer standardmäßig
bestimmt werden soll. Der Standardwert für diesen optionalen Parameter
ist /bin/sh.
Ein Beispiel wäre somit
auth methods = external
auth_external:script = /usr/bin/samba-ext-auth
auth_external:shell = /bin/false