sábado, 3 de mayo de 2008

Debian como cliente de autenticacion de Openldap..

1) # apt-get install libpam-ldap libnss-ldap

2) Modificar archivos de pam para definir que sea valido autenticacion via ldap.

En /etc/pam.d/common-account

account sufficient pam_ldap.so
account required pam_unix.so


En /etc/pam.d/common-auth

auth sufficient pam_ldap.so
auth required pam_unix.so nullok_secure


En /etc/pam.d/common-password

password sufficient pam_ldap.so
password required pam_unix.so nullok obscure min=4 max=8 md5


En /etc/pam.d/common-session

session sufficient pam_ldap.so
session required pam_unix.so


En /etc/nsswitch.conf:

:%s/compat/ldap files/g




SOLUCION DE PROBLEMAS:

1) Cuando se trata de un usuario local, pide en 2 ocasiones el password. Eso se soluciona poniendo una opcion mas en los archivos /etc/pam.d/common-*

use_first_pass

ejemplo:
/etc/pam.d/common-auth

auth sufficient pam_ldap.so
auth required pam_unix.so nullok_secure use_first_pass

2) Al reiniciar el equipo, manda durante el boot el mensaje:


udevd[374]: nss_ldap: could not connect to any LDAP server as (null) - Can't contact LDAP server
udevd[374]: nss_ldap: failed to bind to LDAP server ldap://ip.ldap: Can't contact LDAP server



Eso pasa por que se trata de conectar al servidor ldap antes de levantar la interfaz de red. Lo solucione asi:

# rm -rf /etc/rcS.d/S40networking
# ln -s /etc/init.d/networking /etc/rcS.d/S09networking

jueves, 1 de mayo de 2008

RPM - DEB

Comando utiles e interesantes


RPM:

rpm -qa --last ---> listar en orden de mas reciente a mas antiguo todos los paquetes instalados.

rpm2cpio | cpio -icduv ---> extraer el contenido del rpm en el directorio actual.

rpm -qpl archivo.rpm ---> lista el contenido de un archivo rpm no instalado.

rpm -ql paquete ---> lista el contenido de un rpm instalado.

rpm -qf archivo ---> Da el nombre del paquete que provee dicho archivo



DEB:

apt-show-versions ---> herramienta para listar paquetes y su estado respecto al repositorio. Para saber la version de determinado paquete usa -r paquete o bien usa -u para saber si esta actualizado o hay alguna actualizacion pendiente.

sort -r /var/log/dpkg.log | awk '{ if ($3=="install" ) print $4 " " $6 "\t" $1 " " $2 }' ---> como root puede listar de manera similar a rpm -aq --last

dpkg -X ---> extraer el contenido de un deb.

dpkg -c paquete_NO_instalado ---> Lista de archivos que provee el paquete deb NO instaldo.

dpkg -L paquete_instalado ---> Lista de archivos que provee el paquete deb.

dpkg -S archivo ---> Lista el nombre de paquete que provee dicho archivo


ALIEN:

alien -d paquete.rpm