ldap_modify : 액세스가 충분하지 않습니다 (50)


9

통신에 SSL 서비스를 사용하는 OpenLDAP 2.4 서버를 실행하고 있습니다. 조회를 위해 작동합니다.

미러 모드 복제를 추가하려고합니다.

그래서 이것은 내가 실행중인 명령입니다.

ldapmodify -D "cn=myuser,dc=mydomain,dc=com" -H ldaps://myloadbalancer -W -f /etc/ldap/ldif/server_id.ldif

이것이 내 server_id.ldif 인 곳 :

dn: cn=config
changetype: modify
replace: olcServerID
olcServerID: 1 myserver1
olcServerID: 2 myserver2

그리고 이것은 텍스트 파일의 slapd.d 트리에서 내 cn \ = config.ldif입니다.

dn: cn=config
objectClass: olcGlobal
cn: config
olcArgsFile: /var/run/slapd/slapd.args
olcPidFile: /var/run/slapd/slapd.pid
olcToolThreads: 1
structuralObjectClass: olcGlobal
entryUUID: ff9689de-c61d-1031-880b-c3eb45d66183
creatorsName: cn=config
createTimestamp: 20121118224947Z
olcLogLevel: stats
olcTLSCertificateFile: /etc/ldap/certs/ldapscert.pem
olcTLSCertificateKeyFile: /etc/ldap/certs/ldapskey.pem
olcTLSCACertificateFile: /etc/ldap/certs/ldapscert.pem
olcTLSVerifyClient: never
entryCSN: 20121119022009.770692Z#000000#000#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20121119022009Z

그러나 불행히도 나는 이것을 얻고있다 :

Enter LDAP Password: 
modifying entry "cn=config"
ldap_modify: Insufficient access (50)

구성 데이터베이스를 지정하려고하면 다음과 같은 결과가 나타납니다.

ldapmodify -H 'ldaps://myloadbalancer/cn=config' -D "cn=myuser,cn=config" -W -f ./server_id.ldif 
Enter LDAP Password: 
ldap_bind: Invalid credentials (49)}

누구나 미러 모드 설정을 완료 할 수 있도록 서버 ID를 구성 데이터베이스에 추가하는 방법을 알고 있습니까?

답변:


10

주석에 정확히 나와 있습니다. DN cn=myuser,dc=mydomain,dc=comcn=config트리 를 수정할 수있는 권한이 없습니다 . 그리고 "설정 데이터베이스 지정"을 시도 할 때 완전히 다른 DN을 사용하고 있습니다 cn=myuser,cn=config. 이는 존재하지 않거나 잘못된 비밀번호를 사용하고 있습니다.

이와 같이 수정하려면 다양한 데이터베이스를 수정할 수있는 권한이있는 계정으로 작업해야합니다. "관리자"계정, 즉 항상 모든 권한을 가진 계정은 속성에 지정 olcRootDN되며 해당 비밀번호는에 olcRootPW있습니다. 를 들어 cn=config데이터베이스에 그 속성에서 발견되는 olcDatabase={0}config,cn=config에, 보통 형 HDB의, 그리고 "일반"데이터베이스 olcDatabase={1}hdb,cn=config.

어떤 튜토리얼이나 문서를 따랐습니까? 당신이 여기서하고있는 일을 완전히 이해하는 것처럼 보이지 않습니다.


흠, 나는 이미 olcRootDN 계정을 사용하고 있습니다. -D "cn = myuser, dc = mydomain, dc = com"은 "cn = Manager, dc = example, dc = com"을 대체합니다. 보안상의 이유로 Manager를 myuser로 교체했습니다. 나는 그것이 작동 할 것으로 기대했다. 데이터베이스보다 높은 수준에서 serverID를 지정해야한다고 생각합니다 ... ... slapd 자체의 기본 구성에서 olcDatabase가 아닌 cn = config.ldif에있을 것으로 예상됩니다. \ = \ {1 \} hdb.ldif 여기서 olcRootDN을 찾습니다.
Lynn Owens

"액세스가 충분하지 않다"는 경우 olcRootDN및에 구성된 관리자를 사용하지 않는 것 olcRootPW입니다. 해당 사용자는 항상 정의에 따라 모든 것에 액세스 할 수 있습니다. 다시 말하지만, 다른 데이터베이스에는 다른 관리자가 있습니다. 위해 cn=config나무 아래에 지정된 하나를 사용하십시오 olcDatabase={0}config,cn=config. 그리고 아니요, olcServerID속성 cn=config DN에 속합니다 . 내가 가지고있는 곳이기도합니다.
daff

고마워 Daff, 그게 다야. 구성 데이터베이스가 {0} 데이터베이스라는 사실을 알지 못했습니다. 실제로 관리자가있었습니다. 나는 암호를 받았고 아무런 문제없이 수정을 거쳤습니다. :)
Lynn Owens

ldap에 빠르게 익숙해지기 위해 어떤 자습서 또는 설명서를 추천하는지 알고 싶습니다. 내가 무엇을하고 있는지 전혀 전혀 모른다는 것이 나에게 분명하기 때문이다.
게으른 코더

1
@TheLazyCoder 공식 문서 는 포괄적이지만 초보자에게는 접근하기가 쉽지 않습니다. 우분투 OpenLDAP를 워드 프로세서는 시간이 지남에 따라 더 입수하고 초보자를위한 충분한 수 있습니다. 그 외에 나는 Packt가 출판 한 Matt Butcher의 저서 "Mastering OpenLDAP"에서 많은 것을 배웠다. 날짜가 조금 지난 경우에도 여기서 시작하고 싶을 수도 있습니다.
daff

7

나는 비슷한 문제가 있었기 때문에 daff 재미있는 해결책을 시도했지만 아무 소용이 없습니다. Lynn Owens와 달리에서 관리자에게 비밀번호를 추가하지 못했습니다 olcDatabase={0}config,cn=config. 마침내 cn=config다음과 같은 명령을 사용하여 수정했습니다 .

ldapmodify -Y EXTERNAL -H ldapi:/// -f somefile.ldif

처음에 만들어진 cn = admin, dc = ...는 이러한 하위 수준 수정을위한 액세스 권한이 없기 때문에 특히 "-Y EXTERNAL -H ldapi : ///"가 작동합니다.
naisanza

1
처음 시도해도 효과가 없다면 sudo친구입니다.
ratskin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.