19 septiembre 2012

Integración Ubuntu Linux con "Active Directory" II: Usuarios

Seguimos con la integración de Ubuntu en el directorio activo de Windows Server que empezamos con este artículo. Vamos ahora a configurar nuestro sistema Linux para que valide los usuarios frente al servidor Windows.

El sistema usa /etc/nsswitch.conf para determinar dónde mirar al resolver algunas cuestiones. Es aquí donde hay que indicar dónde tendrá que comprobar el sistema las credenciales que introduzcamos al iniciar sesión tanto local como remota. Para usuarios y grupos del directorio activo, hay que añadir referencias al módulo del servicio de nombres winbind:

passwd: compat winbind
group: compat winbind
shadow: compat winbind

Con esto, primero se hace una validación local, como siempre, y en caso de que el nombre de usuario no se encuentre, se comprueban las credenciales contra el servidor Windows. Si se desea que lo que se compruebe primero sean las credenciales de los usuarios del directorio activo, habrá que invertir el orden: AVISO: EN CASO DE ERROR, ESTO PUEDE IMPOSIBILITAR EL ACCESO AL SISTEMA. **HABILITAR LA CUENTA DE ROOT ANTES DE HACER LO SIGUIENTE**
passwd: winbind compat
group: winbind compat
shadow: winbind compat

Por alguna razón, en ubuntu 12.04 no funciona correctamente la comprobación de credenciales. Es un problema con lightdm que no se si se ha corregido en la 14.04 o posteriores. Sin embargo, existen opciones para poder introducir usuarios que no existen localmente. Para ello, se edita /etc/lightdm/lightdm.conf y se añade la siguiente linea:
greeter-show-manual-login=true

Para ocultar los usuarios que han entrado previamente, que podría ser una larga lista:
greeter-hide-users = True


Pero, como decía, desde la pantalla gráfica, durante las pruebas, no funcionó si primero se valida ante el servidor. Sí funcionan correctamente los accesos remotos en la 12.04, y en la 10.04 y siguientes con gdm todo funciona correctamente. No he verificado qué ocurre en la 14.04 y posteriores

Toda la documentación encontrada se refiere a versiones bastante antiguas de samba, y se indica que hay que editar bastantes archivos de PAM. En realidad, esto ya no es necesario. Puede verse que todos los módulos implicados están activados:
pam-auth-update
Sólo hay que editar /etc/pam.d/common-session y añadir:
session required pam_mkhomedir.so umask=0022 skel=/etc/skel

Finalmente hay que crear el directorio /home/MIDOMINIO-COM, ya que aquí es donde se crearán las carpetas de los usuarios del dominio con el esqueleto configurado antes. Para activar los cambios hay que reiniciar los servicios implicados (ahora es el momento crítico que requiere tener root en caso de error):
sudo service winbind restart
sudo service smbd restart

Ahora se podrá mostrar el listado de usuarios y grupos del dominio al estilo unix:
getent passwd getent group Y validarse ante el servidor tanto localmente como remotamente.