Samba 4에서 NT-UNIX 그룹 매핑

Samba 4에서 NT-UNIX 그룹 매핑

Domain UsersNT 그룹을 Samba 4.7.6 Active Directory 도메인 컨트롤러 가 아닌 다른 UNIX 그룹에 매핑하고 싶지만 users이 작업을 시도하면 다음과 같이 실패합니다.

> net groupmap modify ntgroup='Domain Users' unixgroup='share' type=domain
Could not update group database
[255]

이제 winbind를 사용하여 이 작업을 수행할 수 있다는 내용을 읽고 시도해 보았지만 다음과 같은 오류가 발생했습니다.

> wbinfo --set-gid-mapping=1000,S-1-5-21-...-513
failed to call wbcSetGidMapping: WBC_ERR_NOT_IMPLEMENTED
Could not create or modify gid to sid mapping
[1]

Samba 4에서 NT와 UNIX 그룹 매핑을 관리하는 적절한 방법은 무엇입니까?

편집하다:Samba 메일링 리스트에서 나는 다음과 같은 사람을 발견했습니다.비슷한 문제, 내부 LDAP 서버를 직접 수정하여 문제를 해결할 수 있을까요? 다음과 같은 것 :

ldbadd /var/lib/samba/private/sam.ldb.d/metadata.tdb ...

안타깝게도 저는 LDAP에 대한 경험이 없기 때문에 제 사용 사례에 맞는 유효한 LDIF 파일을 제공하는 방법을 모르겠습니다.

편집2:덕분에LDAP의 Samba 4 사용자 및 그룹 관리에 대한 블로그 게시물, NT 그룹이 매핑되는 UNIX 그룹을 편집했습니다.

> ldbedit -e nano -H /var/lib/samba/private/idmap.ldb '(objectSid=S-1-5-21-1580746459-3543417057-3597883204-513)'

> wbinfo --group-info='Domain Users'
AD.EXAMPLE\domain users:x:100:

> net groupmap list ntgroup='Domain Users'
Domain Users (S-1-5-21-1580746459-3543417057-3597883204-513) -> share

따라서 올바른 그룹은 이제 에서 보고되지만 net groupmap여전히 wbinfo이전 값을 보고하므로 아마도 해당 데이터베이스에서 데이터를 가져오지 못할 것입니다. 내 사용 사례에 올바른 그룹을 보고하는 것이 얼마나 중요한지는 잘 모르겠지만 wbinfo, 이를 답변으로 사용하고 해결됨으로 표시하기 전에 이를 변경할 수 있는지 알아볼 것입니다.

답변1

제가 종합해본 바에 따르면 Samba 4에는 내장된 LDAP 서버를 직접 편집하는 것 외에는 이를 적절하게 구성할 수 있는 도구가 없는 것 같습니다.

net도구는 내장된 LDAP 서버에서 제대로 작동하지 않는 것 같습니다. 일부 작업만 성공적입니다. 예를 들어 그룹 매핑 나열 및 권한 부여 작업은 수행되지만 그룹 구성원 나열 또는 그룹 매핑 수정은 작동하지 않습니다(그림 참조). 내 질문).

매핑을 수정하기 위해 루트로 다음 명령을 실행했습니다. 먼저 SID Domain Users는 Samba 서버의 각 프로비저닝마다 고유하므로 SID를 검색해야 합니다 .

root> net groupmap list ntgroup='Domain Users'
Domain Users (S-1-5-21-1580746459-3543417057-3597883204-513) -> users

xidNumber: 100그런 다음 원하는 UNIX GID로 업데이트하여 SID에 대한 내장 LDAP 서버 기록을 업데이트합니다 .

root> ldbedit -e nano -H /var/lib/samba/private/idmap.ldb '(objectSid=S-1-5-21-1580746459-3543417057-3597883204-513)'
# 0 adds  1 modifies  0 deletes

250이를 UNIX 그룹의 GID로 변경했다고 가정해 보겠습니다 share. 그런 다음 호출하면 net groupmap그룹이 다음과 같이 보고됩니다 share.

root> net groupmap list ntgroup='Domain Users'
Domain Users (S-1-5-21-1580746459-3543417057-3597883204-513) -> share

그러나 wbinfo여전히 winbindd이전 GID를 보고합니다.

root> wbinfo --group-info='Domain Users'
AD.EXAMPLE\domain users:x:100:

따라서 에 대한 캐시 항목을 무효화해야 합니다 Domain Users. 몇 번의 실험 끝에 업데이트된 GID를 조회하도록 요청하여 이를 수행할 수 있었습니다.

root> wbinfo --gid-info 250
AD.EXAMPLE\domain users:x:250:

그런 다음 다음을 통해 올바르게 보고됩니다 --group-info.

root> wbinfo --group-info='Domain Users'
AD.EXAMPLE\domain users:x:250:

관련 정보