nslcd를 통한 LDAP 그룹의 Sudo 권한

nslcd를 통한 LDAP 그룹의 Sudo 권한

MS ActiveDirectory에서 Debian LDAP 인증/권한 부여 설정에 대한 sudo 권한에 문제가 있습니다.

내가 지금까지 가지고 있는 것
ldaps를 통해 libpam-ldap으로 nslcd를 구성했으며 ssh 로그인이 훌륭하게 작동합니다.

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

내 ActiveDirectory 서버에는 posixGroup, posixAccount, gid, gidNumber, uid, uidNumber 등과 같은 필수 속성을 추가하는 Unix 패키지가 설치되어 있습니다.

내 예시 사용자는 다음과 같습니다.
(안전한 측면을 유지하기 위해 10000+를 선택합니다)

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

/etc/nslcd.conf에 다음을 추가하여 SSH 로그인을 제한할 수 있습니다.

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

이는 objecClass=posixAccount 및 그룹이 group1 또는 group2인 사용자만 로그인할 수 있도록 지정합니다.

여태까지는 그런대로 잘됐다. 그러나 sudo에게 해당 그룹을 사용하도록 지시할 수는 없습니다.

내가 시도한 것은 다음과 같습니다.
/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

문제
어떻게든 sudo에게 요청하는 사용자 이름을 가져와서 그것이 속한 ldap-group을 확인한 다음 해당 그룹에 대한 권한이 명령을 실행하기에 충분한지 확인해야 합니다.

불행히도 어디서부터 시작해야 할지 모르겠습니다. 다른 모든 것은 지금까지 작동하며 sudo 권한만 붙어 있습니다. 사용자 gidNumber 필드를 그룹 gidNumber 필드에 매핑하려고 생각했지만 사용자 필드를 그룹 필드에 매핑하는 것이 가능한지 모르겠습니다.

나는 그렇게 생각하지 않습니다. nslcd의 매핑이 다음과 같이 지정되어 있기 때문입니다.

map passwd field1 field2

passwd는 nslcd에게 사용자 필드를 매핑해야 한다고 알려줍니다. passwd 대신 그룹을 사용할 수 있지만 둘 다 사용할 수는 없습니다.

답변1

글이 길어서 죄송하지만 효과가 있는 것 같습니다. 방금 sudoers 파일에 오타가 있었습니다. 구문은 여전히 ​​정확하지만 어떤 명령도 실행할 수 없기 때문에 찾는 데 약간의 시간이 걸렸습니다.

그러나 지금은 작동하고 있습니다.

 // 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

업데이트: 조금 늦게 깨달았지만 /etc/nsswitch.conf에서 다음도 변경했습니다.

sudoers:        ldap files

위에서 언급한 sudoers 오타가 여전히 남아 있기 때문에 그것이 수정되었다고 생각하지 않았습니다.

문제 해결됨 :)

답변2

나는 ~와 갔다사용자에게 로컬 그룹 할당pam_group을 통해 동일한 기능을 얻으세요. 에 /etc/security/groups.conf다음 줄을 추가했습니다.

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

따라서 LDAP 그룹에 속하는 모든 LDAP 사용자는 상자의 administrators로컬 adm, sudo및 그룹에 매핑됩니다. 뭔가 빠진 것이 없다면 lpadmin설치하는 것보다 더 간단해 보이죠 ?sudo-ldap

관련 정보