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 그룹을 확인한 다음 해당 그룹에 명령을 실행할 수 있는 충분한 권한이 있는지 확인해야 합니다.
불행히도 어디서부터 시작해야할지 모르겠습니다. 다른 모든 것은 지금까지 작동하지만 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