Permisos de Sudo por grupos ldap a través de nslcd

Permisos de Sudo por grupos ldap a través de nslcd

Tengo un problema con mis permisos sudo en una configuración de autenticación/autorización LDAP de MS ActiveDirectory a Debian.

lo que tengo hasta ahora
Configuré nslcd con libpam-ldap a través de ldaps y el inicio de sesión ssh funciona muy bien.

getent passwd myuser
myuser:*:10001:10015:myuser:/home/myuser:/bin/bash

En mi servidor ActiveDirectory, está instalado el paquete Unix que agrega los atributos necesarios como posixGroup, posixAccount, gid, gidNumber, uid, uidNumber, etc.

Mi usuario de ejemplo se ve así:
(elijo 10000+ para estar seguro)

cn: myuser
uid: myuser
uidNumber: 10015
gidNumber: 10000

Puedo restringir los inicios de sesión SSH agregando lo siguiente a /etc/nslcd.conf

filter passwd (&(objectClass=posixAccount)(|(memberOf=CN=group1,OU=groups,DC=domain,DC=com)(memberOf=CN=group2,OU=groups,DC=domain,DC=com)))

Esto especifica que solo los usuarios con objecClass=posixAccount y el grupo group1 o group2 pueden iniciar sesión.

Hasta ahora, todo bien. Sin embargo, no puedo decirle a Sudo que use esos grupos.

Esto es lo que probé
en /etc/sudoers

// This one works, but only because the user has gidNumber=10000 set. 
// It doesn't matter if a group with this ID actually exist or not. 
// So it's not really permission by LDAP group.
%#10000 ALL=(root) ALL


// This is what I want, but it doesn't work.
%group1 ALL=(root) ALL

El problema
De alguna manera necesito decirle a Sudo que tome el nombre de usuario solicitante, verifique a qué grupos ldap pertenece y luego ver si los permisos para ese grupo son suficientes para ejecutar el comando o no.

Lamentablemente no tengo idea de por dónde empezar. Todo lo demás funciona hasta ahora y solo tengo permisos de sudo. Pensé en asignar el campo gidNumber de los usuarios al campo gidNumber de los grupos, pero no sé si es posible asignar un campo de usuario a un campo de grupo.

No lo creo, ya que el mapeo en nslcd se especifica así

map passwd field1 field2

y passwd le dice a nslcd que tiene que asignar campos de usuario. En lugar de passwd podría usar grupos, pero no ambos.

Respuesta1

Perdón por la publicación tan larga, pero parece funcionar. Acabo de cometer un error tipográfico en el archivo sudoers. Sin embargo, me tomó un poco de tiempo encontrarlo, ya que la sintaxis aún era correcta pero no pude ejecutar ningún comando.

Sin embargo, está funcionando ahora.

 // Problem was that one ALL was missing, allowing me to execute no root cmds.
 %group1 ALL=(root) !/bin/su

 // Fixed it
 %group1 ALL=(root) ALL, !/bin/su

Actualización: me di cuenta un poco tarde pero también cambié lo siguiente en /etc/nsswitch.conf

sudoers:        ldap files

Simplemente no pensé que fuera la solución porque todavía tenía el error tipográfico sudoers mencionado anteriormente.

Problema resuelto :)

Respuesta2

Yo fui conasignar grupos locales a los usuariosa través de pam_group para obtener la misma funcionalidad. En /etc/security/groups.confagregué la siguiente línea

*;*;%administrators;Al0000-2400;adm,sudo,lpadmin

Por lo tanto, cualquier usuario LDAP que pertenezca al grupo LDAP administratorsse asigna a los grupos local adm, sudoy lpadminen el cuadro. Parece más sencillo que tener que instalarlo sudo-ldap, a menos que me falte algo.

información relacionada