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:

  1. 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
  2. Tragen Sie den Pfad der vorhandenen Samba-Sourcen in der Datei Makefile ein. Diese finden Sie hier.
  3. Erstellen der Moduldatei mit
    make
  4. 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