• GOsa Posix Account Anbindung

    by  • 6. Januar 2011 • Linux • 2 Comments

    Die Anbindung der Posix Accounts an die LDAP Datenbank ist der erste Schritt und die Grundlage für die weiteren Dienste.

    Zuerst einmal lohnt es sich, die LDAP-Tools zu installieren:

    apt-get install ldap-utils

    Dann in der Datei:

    /etc/ldap/ldap.conf

    die Variable  „BASE“ auf den bei der Installation gewählten Base-DN setzen und ein kommentieren.

    Damit soll ein

    ldapsearch -x

    die von Gosa eingerichteten Einträge zeigen.

    Als nächstes kommen die PAM LDAP Bibliotheken an die Reihe:

    apt-get install libnss-ldap libpam-ldap

    in

    /etc/nsswitch.conf

    wird aus:

    passwd:         compat
    group:          compat
    shadow:         compat
    passwd:         compat ldap
    group:          compat ldap
    shadow:         compat ldap

    Die Einstellungen in /etc/pam.d/common-account, /etc/pam.d/common-auth, und /etc/pam.d/common-password sind in Squeeze bereits passend.

    Nun kann noch durch den Parameter

    account_expiration="true"

    in der Datei „/etc/gosa/gosa.conf“ festgelegt werden, das das Verfallsdatum von Benutzeraccounts in Gosa eingestellt werden kann.

    Nach einem Neustart des Name Service Caching Daemon:

    invoke-rc.d nscd restart

    kann in Gosa ein Benutzer angelegt werden und dieser sollte dem System bekannt sein:

    su - benutzer

    Sollen neu angelegte Benutzer automatisch ein Home-Verzeichnis erstellt bekommen ist noch etwas Handarbeit nötig.

    Eine Möglichkeit ist, in der Datei

    /etc/pam.d/common-session

    den Eintrag

    session>required pam_mkhomedir.so skel=/etc/skel/ umask=0022

    an den Anfang zu stellen. Damit wird beim Login eines Benutzers das Verzeichnis angelegt, wenn nicht vorhanden, und die Initialen Konfigurationsdateien aus

    /etc/skel/

    kopiert. Sollen die Verzeichnisse nur als Home-Laufwerke für Samba User angelegt werden ist der Weg nicht praktikabel.

    Es gibt die Möglichkeit, pro Dienst ein Post- und Pre-Create Script zu nutzen. Ein (sehr einfaches) Script kann z.B. unter /etc/gosa/createhomdir.sh angelegt werden:

    cat <<EOF > /etc/gosa/createhomdir.sh
    #!/bin/sh
    HOMEBASE=/home/
    NEWUSER=\$1
    if [ ! -z \$NEWUSER ]
    then
      NEWHOME=\$HOMEBASE\$NEWUSER
      if [ ! -d \$NEWHOME ]
      then
        mkdir \$NEWHOME
        chown \$NEWUSER: \$NEWHOME
      fi
    fi
    EOF
    chown www-data: /etc/gosa/createhomdir.sh
    chmod 755 /etc/gosa/createhomdir.sh

    Wir benötigen sudo:

    apt-get install sudo

    in die Datei: „/etc/sudoers“ fügen wir folgende Zeile ein:

    www-data  ALL=(ALL) NOPASSWD: /etc/gosa/createhomdir.sh

    Nun wird das Postcreate Script noch in „/etc/gosa/gosa.conf“ aktiviert:

    In der Section „My account“:

    <plugin acl="users/posixAccount:self"  class="posixAccount" postcreate="/usr/bin/sudo /etc/gosa/createhomdir.sh %uid" />

    In der Section „Administration“:

    <plugin acl="users/posixAccount:self"  class="posixAccount" postcreate="/usr/bin/sudo /etc/gosa/createhomdir.sh %uid" />

    2 Responses to GOsa Posix Account Anbindung

    1. El Apf
      4. März 2012 at 00:25

      Danke für den Beitrag und das Skript.
      In neueren Gosa Versionen geht das in der config leider nicht mehr. Anstattdessen muss man im Webfrontend unter Einstellungen die Suchfunktion mit „postcreate“ bemühen und an der entsprechenden posixAccount Eingabefläche das Skript aufrufen.

    2. Pingback: User login using LDAP and pam_ldapd - tech.cbjck.de

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.