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)}

ミラーモードのセットアップを完了するために、serverIDを構成データベースに追加する方法を誰かが知っていますか?

回答:


10

それはまさに缶に書かれていることです。DNにcn=myuser,dc=mydomain,dc=comは、cn=configツリーを変更するための十分な権限がありません。また、「構成データベースを指定」しようとしているときは、まったく異なるDN cn=myuser,cn=configを使用しています。これは明らかに存在しないか、間違ったパスワードを使用しています。

このような変更を行うには、さまざまなデータベースを変更するのに十分な特権を持つアカウントを使用する必要があります。「admin」アカウント、つまり常にすべての特権を持つ1つのアカウントが属性で指定され、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 \ = \ {1 \}ではなくcn = config.ldifにあると予想されます。 hdb.ldifで、olcRootDNが見つかります。
Lynn Owens、

「不十分なアクセス権」を取得した場合は、olcRootDNおよびで構成された管理ユーザーを使用していませんolcRootPW。そのユーザーは、定義により、常にすべてにアクセスできます。繰り返しになりますが、データベースごとに管理ユーザーが異なります。以下のためにcn=config、ツリーの下に指定されたものを使用しますolcDatabase={0}config,cn=config。いいえ、olcServerID属性cn=config DNに属しています。それも私が持っているところです。
ダフ

ダフ、ありがとう。構成データベースが{0}データベースであるという事実に無知でした。確かにそこに管理ユーザーがいました。私はそれにパスワードを与え、私の変更は問題なく通りました。:)
Lynn Owens

LDAPにすぐに慣れるために、どのチュートリアルまたはドキュメントが推奨されるか知りたいです。..私は私がやっているものを絶対にないアイデアを持っていないことを私には明らかであるので
レイジーCoderの

1
@TheLazyCoder 公式ドキュメントは包括的ですが、初心者にはあまりアクセスできません。UbuntuのOpenLDAPのドキュメントは、時間をかけてよくなっていると初心者のための良い十分かもしれません。それ以外は、Packtから出版されたMatt Butcherの著書「Mastering OpenLDAP」からかなりのことを学びました。少し古くても、そこから始めたいと思うかもしれません。
DAFF

7

私は非常に似た問題を抱えていたので、私は面白い解決策を試しましたが、役に立ちませんでした。Lynn Owensとは異なり、で管理者にパスワードを追加できませんでしたolcDatabase={0}config,cn=config。私はようやく次のcn=configようなusingコマンドを変更することができました:

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

最初に作成されたcn = admin、dc = ...には、これらの下位レベルの変更を行うためのアクセス権がないため、これは特に「-Y EXTERNAL -H ldapi:///」で機能します。
naisanza 2017

1
これは最初の試みで仕事をしない場合、覚えているsudoあなたの友達です
ratskin
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.