Aula 44 (Ubuntu). Configuració

De wikijoan
Salta a la navegació Salta a la cerca

Autenticar-se contra el LDAP de l'insitut

$ sudo apt-get install libpam-ldap
  • LDAP server URI: ldap://192.168.0.11
  • distinguished name of the search base: dc=intracentre
  • ldap version: 3
  • make local root database admin: no
  • Does the LDAP database require login? : no

la llibreria libnss-ldap també ha quedat instal.lada

$ sudo joe /etc/nsswitch.conf

les tres primeres línies queden:

passwd:         compat ldap
group:          compat ldap
shadow:         compat ldap
$ sudo apt-get install ldap-utils
$ sudo apt-get install cifs-utils
no el troba (potser no cal)
$ sudo apt-get install smbfs
$ sudo apt-get install libpam-dev

descarreguem:

$ tar -xvzf pam-script-1.1.4.tar.gz
$ cd pam-script-1.1.4/
$ ./configure
$ make
$ sudo make install
$ ls -la /usr/local/lib/
total 36

-rwxr-xr-x  1 root root  22292 2011-11-17 17:26 pam_script.so
$ sudo joe /usr/local/etc/pam-script.d/pam_script_auth

fitxer pam_script_auth: (amb la configuració de l'insti)

#!/bin/bash

# Això passa si l'usuari ha fet sudo ...
if [ -z "$PAM_USER" ]
then
        exit 0
fi

USER=$PAM_USER


# Si és un usuari local no fa falta fer rés
grep $USER /etc/passwd> /dev/null
if [ $? -eq 0 ]
then
        # L'usuari és local. Sortim sense fer rés.
        exit 0
fi

# Li hem afegit el -w per si de cas
userproperties=$(getent passwd | grep -E -w "^$USER")
if [ -z "$userproperties" ]; then
    #
    # userproperties not found: something wrong
    #
    echo "No s'ha trobat l'usuari."
    exit
fi;

# Obtenim el directori de l'usuari
DIR_USER=$(echo $userproperties | cut -d ":" -f 6)

# Creem un directori dintre del directori de l'usuari amb el nom d'aquest grup:
if [ ! -d $DIR_USER ]
then
    # Creem el directori del grup dins del directori de l'usuari
    mkdir -p "$DIR_USER" 2>/dev/null
fi

# Muntem el directori de l'usuari des del servidor al nou deirectori:
mount.cifs //192.168.0.11/$USER $DIR_USER -o user=$USER%$PAM_AUTHTOK

# Esbrinem el tipus d'usuari
TIPUS_USUARI=`echo $DIR_USER | cut -d'/' -f3`
# Això retorna: alumnes professors profes-info o PAS

# Verifiquem el tipus d'usuari:
if [ "$TIPUS_USUARI" = "alumnes" ]
then
	# Muntem també el directori del grup si és un alumne.
        # Si el grup és professors s'ha de fer un altre cosa
        GRUP=`echo $DIR_USER | cut -d'/' -f4`

        # Creem un directori dintre del directori de l'usuari amb el nom d'aquest grup:
        if [ ! -d $DIR_USER/$GRUP ]
        then
                # Creem el directori del grup dins del directori de l'usuari
                mkdir "$DIR_USER/$GRUP" 2>/dev/null
        fi

        # Muntem el directori del grup...
        mount.cifs //192.168.0.11/$GRUP $DIR_USER/$GRUP -o user=$USER%$PAM_AUTHTOK

elif [ "$TIPUS_USUARI" = "professors" -o  "$TIPUS_USUARI" = "profes-info" ]
then
        # Si és el grup professors llavors cal crear 2 directoris: Grups i Alumnes i muntar-los
        # Creem un directori Alumnes dins del directori de l'usuari. Conté les dades de tots els alumnes ...
        # No muntem els 2 directoris d'alumnes i grup.
        # No acaba de funcionar correctament ...
        exit 0
        if [ ! -d $DIR_USER/Alumnes ]
        then
                # Creem el directori del grup dins del directori de l'usuari
                mkdir "$DIR_USER/Alumnes" 2>/dev/null
        fi
        # Creem un directori Alumnes dins del directori de l'usuari. Conté tots els grups ...
        if [ ! -d $DIR_USER/grups ]
        then
                # Creem el directori del grup dins del directori de l'usuari
                mkdir "$DIR_USER/grups" 2>/dev/null
        fi
        mount.cifs //192.168.0.11/grups $DIR_USER/grups -o user=$USER%$PAM_AUTHTOK
        mount.cifs //192.168.0.11/Alumnes $DIR_USER/Alumnes -o user=$USER%$PAM_AUTHTOK
fi


# Si hem arribat aquí retornem sempre 0
exit 0
$ sudo chmod 755 /usr/local/etc/pam-script.d/pam_script_auth
$ sudo joe /etc/pam.d/common-auth 

afegim al final dues línies:

# Això ho hem afegit en data: dc set 21 09:54:52 CEST 2011
auth    required        /usr/local/lib/pam_script.so runas=root expose=1 dir=/usr/local/etc/pam-script.d/

I ja està. Es pot tancar la sessió i entrar amb un usuari del domini: jquintan (profe), o invitado/odati09 (alumne). Els alumnes veuen les carpetes en el servidor.


creat per Joan Quintana Compte, novembre 2011