Agregar usuarios autentificados vía ldap a grupos locales | Algo de Linux

sábado, 6 de junio de 2015

Agregar usuarios autentificados vía ldap a grupos locales

Cuando los usuarios de nuestros centros hacen login, pertenecen a los grupos a los que hayan sido añadidos en ldap. Y os preguntaréis: ¿Cómo hacemos para que esos usuarios pertenezcan a grupos del equipo local, como por ejemplo, el grupo plugdev (para que el usuario pueda utilizar dispositivos usb) o el grupo cdrom (para que el usuario pueda utilizar el cdrom del equipo)? Muy fácil: Haciendo uso del módulo PAM pam_group.

El módulo PAM pam_group no autentifica al usuario, sino que le otorga la pertenencia a grupos  durante la fase de autentificación. Para utilizar este módulo, añadimos la siguiente línea al fichero /etc/pam.d/common-auth:
auth    optional                        pam_group.so
Y definimos a qué grupos va a pertenecer el usuario que acceda a través de un determinado terminal, en el fichero /etc/security/group.conf.

Este fichero debe estar correctamente formateado y además:
  • Los espacios en blanco son ignorados.
  • Podemos extender la longitud de una línea en la siguiente, añadiendo el símbolo \ al fianl de la misma.
  • Podemos comentar una línea, colocando el símbolo # al principio de la misma.
Cada línea que asigne grupos a los usuarios define una regla que debe tener la siguiente sintaxis:
services;ttys;users;times;groups

Donde:
  • El primer campo (services) es una lista de nombres de servicios PAM a los que queremos aplicar la regla.
  • El segundo campo (ttys) es una lista de nombres de terminales a los que queremos aplicar la regla.
  • El tercer campo (users) es la lista de usuarios o grupos de usuarios a los que aplicar la regla.
  • El cuarto campo (times) se utiliza para indicar cuándo se deben asignar los grupos de la regla al usuario.
  • El quinto campo (groups) está formado por la lista de grupos que queremos asignar al usuario.
Respecto a los campos services, ttys y users, es importante destacar que es posible utilizar un asterisco (*) para representar cualquier servicio, cualquier terminal y/o cualquier usuario.

En cuanto al campo times, tiene un formato determinado por una lista de entradas  con rangos de días/horas, teniendo en cuenta lo siguiente:
  • Los días se especifican con una secuencia de dos caracteres que representan el nombre del día en inglés. Por ejemplo, si queremos indicar lunes, miércoles y viernes, la secuencia sería: MoWeFr.
  • Los días que se pueden representar son: Mo Tu We Th Fr Sa Su Wk Wd Al. 
    • Wk representa los días de la semana de lunes a viernes.
    • Wd representa los días del fin de semana.
    • Al representa los 7 días de la semana.
  • Si se repite un día, el valor se considera inválido.
  • Si especificamos AlFr, estaremos indicando todos los días excepto el viernes.
  • El rango horario se representa en formato de 24 horas separando ambas horas por un guión, indicando el comienzo y el final del período. Ejemplo 0000-2400. Si la hora de finalización es menor que la de comienzo, se tomará como la hora del siguiente día.
El campo groups es la lista de grupos separados por comas o espacios que el usuario adquirirá al aplicar la regla, de manera que el usuario recibirá los grupos si se cumplen las reglas de los campos anteriores.

De este modo, si en vuestro fichero /etc/security/group.conf, tenéis una línea como la siguiente, ya la entenderéis:
*; *; *; Al0000-2400; audio,cdrom,floppy,plugdev,video,lp,lpadmin,netdev,games,fuse
Para cualquier usuario que inicie sesión mediante cualquier servicio PAM en cualquier terminal, se le asignarán los grupos de la lista cualquier día a cualquier hora.
Publicado por primera vez en http://enavas.blogspot.com.es

No hay comentarios: