ldap_modify: Niewystarczający dostęp (50)

9

Korzystam z serwera OpenLDAP 2.4, który korzysta z usługi SSL do komunikacji. Działa dla wyszukiwania.

Próbuję dodać replikację w trybie lustrzanym.

Oto polecenie, które wykonuję:

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

Gdzie to jest mój server_id.ldif:

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

i to jest mój cn \ = config.ldif w drzewie plików tekstowych slapd.d:

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

Ale niestety dostaję to:

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

Jeśli spróbuję określić bazę danych konfiguracji, otrzymam to:

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

Czy ktoś wie, jak mogę dodać ID serwera do bazy danych konfiguracji, aby ukończyć konfigurację trybu kopii lustrzanej?

Lynn Owens
źródło

Odpowiedzi:

10

Dokładnie tak jest napisane na puszce. Twoja nazwa wyróżniająca cn=myuser,dc=mydomain,dc=comnie ma wystarczających uprawnień do modyfikowania cn=configdrzewa. A kiedy próbujesz „określić bazę danych konfiguracji”, używasz zupełnie innej nazwy wyróżniającej cn=myuser,cn=config, która najwyraźniej albo nie istnieje, albo używasz niewłaściwego hasła.

Aby dokonywać takich modyfikacji, musisz pracować z kontem wystarczająco uprzywilejowanym, aby modyfikować różne bazy danych. Konto „admin”, tj. Jedno konto, które zawsze ma wszystkie uprawnienia, jest określone w atrybucie, olcRootDNa jego hasło znajduje się w olcRootPW. W przypadku cn=configbazy danych atrybuty te znajdują się w olcDatabase={0}config,cn=config„zwykłej” bazie danych, zwykle typu HDB, w olcDatabase={1}hdb,cn=config.

Jakiego tutoriala lub dokumentacji używałeś? Wygląda na to, że nie rozumiesz całkowicie, co tutaj robisz.

daff
źródło
Hmm, już używam konta olcRootDN. -D „cn = mój użytkownik, dc = mojadomena, dc = com” to moje zastąpienie „cn = Menedżer, dc = przykład, dc = com” ... Ze względów bezpieczeństwa Menedżera zastąpiłem moim użytkownikiem. Spodziewałem się, że zadziała. Myślę, że muszę podać identyfikator serwera na poziomie wyższym niż bazy danych, ... w podstawowej konfiguracji samego slapd, której oczekiwałbym w cn = config.ldif, a nie w olcDatabase \ = \ {1 \} hdb.ldif, gdzie znajduje się olcRootDN.
Lynn Owens,
Jeśli dostaniesz „niewystarczający dostęp”, oznacza to, że nie korzystasz z konta administratora skonfigurowanego w olcRootDNi olcRootPW. Ten użytkownik zawsze ma dostęp do wszystkiego z definicji. Ponownie należy pamiętać, że różne bazy danych mają różnych użytkowników administracyjnych. Do cn=configdrzewa użyj tego podanego w olcDatabase={0}config,cn=config. I nie, to olcServerIDatrybuty zrobić należą do cn=configDN. Tam też je mam.
daff
Dzięki Daff, to było to. Nie wiedziałem, że baza danych konfiguracji to baza danych {0}. Naprawdę był tam administrator. Dałem mu hasło i moje modyfikacje przeszły bez problemu. :)
Lynn Owens,
Byłbym zainteresowany, aby dowiedzieć się, jaki samouczek lub dokumentację poleciłbyś, aby szybko zapoznać się z ldap. Ponieważ jest dla mnie jasne, że absolutnie nie mam pojęcia, co robię ..
The Lazy Coder,
1
@TheLazyCoder Oficjalna dokumentacja jest obszerna, ale nie jest bardzo dostępna dla nowicjuszy. Dokumenty Ubuntu OpenLDAP poprawiły się z czasem i mogą być wystarczające dla początkujących. Poza tym sporo się nauczyłem z książki Matta Butchera „Mastering OpenLDAP”, wydanej przez Packta. Możesz zacząć od tego, nawet jeśli jest to trochę przestarzałe.
daff
7

Ponieważ miałem dość podobny problem, spróbowałem daff ciekawego rozwiązania, ale bezskutecznie. W przeciwieństwie do Lynn Owens nie udało mi się dodać hasła do administratora w olcDatabase={0}config,cn=config. W końcu udało mi się zmodyfikować moje cn=configpolecenia za pomocą:

ldapmodify -Y EXTERNAL -H ldapi:/// -f somefile.ldif
phep
źródło
Działa to, w szczególności „-Y ZEWNĘTRZNE -H ldapi: ///”, ponieważ cn = admin, dc = ..., który został utworzony początkowo, nie ma dostępu do wprowadzenia tych modyfikacji niższego poziomu.
naisanza 27.07.17
1
Jeśli to nie zadziała przy pierwszej próbie, pamiętaj, że sudoto twój przyjaciel
ratskin