하나의 프로젝트에 대해 다음과 같이 여러 Samba 공유를 구성했습니다.
[global]
workgroup = <domain name>
netbios name = <machine name>
passdb backend = tdbsam
security = ads
encrypt passwords = yes
realm = <fully qualified domain>
password server = <ldap server ip>
[Share1]
path = <path>
......
아이디어는 연결된 사용자가 LDAP 서버에 의해 인증되고 그들이 작성하는 모든 파일은 동일한 이름을 가진 Linux 사용자가 소유하게 된다는 것입니다. Linux 시스템은 SAMBA 이외의 다른 용도로 ldap을 사용하지 않습니다.
LDAP 서버가 변경될 때까지 모든 것이 예상대로 작동했으며 이제 오류가 발생합니다 NT_STATUS_NO_TRUST_SAM_ACCOUNT
. LDAP 팀과 통신 중이지만 다른 모든 Active Directory 인증이 제대로 작동하는 것을 볼 때 그에 따라 Samba 구성을 변경하는 것이 우리의 책임이 될 것으로 예상합니다 -_-"
내가 본 가이드는 거의 모두 Linux 상자에 OpenLDAP 서버를 설치 및 사용하거나(필요하지 않음), 내부적으로 LDAP 사용자를 사용하도록 Linux 인증을 구성하거나, 사용자 이름 이상의 복잡한 매핑을 수행하는 데 중점을 둡니다(우리는 필요하지 않음). 둘 중 하나가 필요함) 불필요합니다.
우리는 Samba 4.2를 사용하고 있으며 우리 모두 알고 있듯이 최신 버전으로의 업그레이드는 위 구성에서는 작동하지 않습니다(LDAP 서버가 변경되기 전이라도).
요청된 동작을 달성하기 위해 Samba를 구성하는 다른(아마도 더 정확한) 방법을 알고 있습니까? 우리에게 필요한 것은 "사용자 인증 확인"에 응답하는 LDAP 서버뿐입니다. 사용자 매핑도 없고, 도메인에 컴퓨터도 없고, 복잡한 구성도 없습니다.
답변1
도메인의 구성원이 되면(예: "security=ads"에 필요) 서버용 컴퓨터 계정이 디렉터리에 생성됩니다. 서버는 이 계정을 사용하여 도메인의 리소스에 액세스합니다.
NT_STATUS_NO_TRUST_SAM_ACCOUNT는 컴퓨터 계정을 사용하는 데 문제가 있음을 나타냅니다(어떤 이유로 자격 증명이 만료되었을 수 있음). 도메인을 떠났다가 다시 가입('네트워크 광고 가입')하면 이 문제가 해결됩니다.
이전 버전의 Samba는 도메인 구성원이 아닌 원격 서버로 인증 전달을 지원했지만 AFAICT는 더 이상 존재하지 않습니다.