Home del documento
En este apartado tratamos la integración de winbind con SSH, lo que nos va a permitir acceder a la linea de comandos del sistema con nuestra cuenta del dominio.
- Lo primero que hay que hacer es añadir a nuestro smb.conf las siguientes líneas en la sección global
template homedir = /home
template shell = /bin/ksh
- Tal como deja entrever la doc oficial de Samba aquí (en la sección "NSS Winbind on AIX") esta integración que pretendemos hacer este SO no es trivial. Es debido a que /usr/lib/security/WINBIND es un módulo que sólo provee servicios de identificación, mientras que para logar a un sistema con SSH necesitamos identificación y autenticación.
Esto nos lleva a la utilización de PAM (Pluggable Authentication Modules) que en el caso de AIX presenta de nuevo ciertas particularidades que complican el tema.
- El primer obstáculo en este punto se presenta debido a que el paquete binario que hemos utilizado no viene precompilado para uttlizar PAM:
# type smbd
smbd is /opt/pware/samba/3.0.26a/sbin/smbd
# smbd -b | grep -i PAM
#
Así que, si no disponemos de otro binario para AIX que incluya las opciones que necesitamos, no queda otro remedio que compilar el paquete a nuestro gusto (Toca descargar código fuente desde alguno de los mirrors de Samba, seguimos con la versión samba-3.0.26a)
- Segundo obstáculo (al menos en mi caso): El SO no trae compilador de C.
# type cc
cc not found.
# type gcc
gcc not found.
- A través de
http://gcc.gnu.org/install/binaries.html
llegamos a
http://www.bullfreeware.com/download/wpar_tt/
donde disponemos de un binario precompilado (gcc-3.3.2-5.aix5.3.ppc.rpm en el momento de redactar) de la versión GNU del compilador de C para AIX (Me bajé también por si acaso la libgcc-3..., pero parece que no la necesita). Instalamos mediante rpm:
# pwd
/usr/src/rpms
# ls
gcc-3.3.2-5.aix5.3.ppc.rpm libgcc-3.3.2-5.aix5.3.ppc.rpm
# rpm -ivh gcc-3.3.2-5.aix5.3.ppc.rpm
gcc ##################################################
# type cc
cc not found.
# type gcc
gcc is /usr/bin/gcc
# ln -s /usr/bin/gcc /usr/bin/cc
#
- Desgunzipado y desempaquetado:
# pwd
/usr/src
# ls samba*.gz
samba-3.0.26a.tar.gz
# gunzip samba*.gz
# ls samba*.tar
samba-3.0.26a.tar
# tar -xf samba*.tar
#
- configure ...:
# cd samba-3.0.26a
# cd source
# ./configure
...
config.status: creating include/config.h
config.status: executing rm-stdint.h commands
config.status: executing rm-stdbool.h commands
#
... pero sólo con esto no llegará a construir el módulo pam_winbind.so (necesario). Entonces lo que he hecho es:
# ./configure --with-pam --with-pam_smbpass
...
config.status: creating script/installbin.sh
config.status: creating script/uninstallbin.sh
config.status: creating include/config.h
config.status: executing rm-stdint.h commands
config.status: executing rm-stdbool.h commands
- Ahora toca make...
# make
...
nsswitch/pam_winbind.c: In function `pam_sm_chauthtok':
nsswitch/pam_winbind.c:1976: warning: passing arg 2 of `pam_get_user' from incompatible pointer type
Linking shared library bin/pam_winbind.so
Target "all" is up to date.
... y me aseguro que el módulo se ha construido:
# find . -name pam_winbind.so
./bin/pam_winbind.so
#
- Lo siguiente sería hacer make install. Atención! Esto sobreescribe la versión de Samba que pudiera haber en /usr/local/samba pero puede que esto no interese por algún motivo. Por ejemplo tras esto habría que volver a añadir la máquina al dominio.
# make install
...
#
- Hemos acabado con la compilación de Samba. Ahora probamos con la nueva versión que hemos construido. Primero linkamos /etc/smb.conf y despues arrancamos cada uno de los daemons...
# ln -s /etc/smb.conf /usr/local/samba/lib/smb.conf
# /usr/local/samba/sbin/smbd -D
# /usr/local/samba/sbin/nmbd -D
# /usr/local/samba/sbin/winbindd -B
... y tras esto volvemos a añadir la máquina al dominio:
# net rpc join -S delta.dominio.com -U administrador
Password:
Joined domain DOMINIO.
#
Home del documento
Deja tu comentario