Eu tenho um problema com minhas permissões sudo em um MS ActiveDirectory para a configuração de autenticação / autorização LDAP do Debian.
O que eu tenho até agora
Eu configurei o nslcd com libpam-ldap via ldaps e o ssh login está funcionando muito bem.
getent passwd myuser
myuser:*:10001:10015:myuser:/home/myuser:/bin/bash
No meu Servidor ActiveDirectory, o Pacote Unix é instalado, o que adiciona os atributos necessários, como posixGroup, posixAccount, gid, gidNumber, uid, uidNumber e assim por diante.
Meu exemplo de usuário é assim:
(Eu escolho 10000+ para estar no lado seguro)
cn: myuser
uid: myuser
uidNumber: 10015
gidNumber: 10000
Eu posso restringir logins SSH adicionando o seguinte ao /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)))
Isso especifica que apenas usuários com objecClass = posixAccount e grupo group1 ou group2 podem efetuar login.
Até aí tudo bem. No entanto, não posso dizer ao sudo para usar esses grupos.
Aqui está o que eu tentei
em / 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
O problema
De alguma forma, eu preciso dizer ao sudo para pegar o nome de usuário solicitante, verificar a que grupos-ldap ele pertence e depois ver se as permissões para esse grupo são suficientes para executar o comando ou não.
Não tenho a menor ideia de por onde começar. Tudo o resto funciona até agora e só estou preso com permissões sudo. Pensei em mapear o campo users gidNumber para o campo groups gidNumber, mas não sei se mapear um campo de usuário para um campo de grupo é possível.
Eu não penso assim, já que o mapeamento no nslcd é especificado assim
map passwd field1 field2
e passwd informam ao nslcd que ele tem que mapear os campos do usuário. Em vez de passwd eu poderia usar grupos, mas não os dois.