私はDebian Squeeze OpenLDAPを使用しています。 ACLはどこで設定できますか?指示にアクセスできますかldapmodify
? Debian にはファイルがなく、フォルダをslapd.conf
使用します。slapd.d
答え1
~からDebian Wiki:
バージョン 2.4.23-3 以降、OpenLDAP 設定のデフォルト値が /etc/ldap/slapd.d に変更されました。
したがって、OpenLDAP は、以下を介して独自の動的構成を許可します。'cn=構成'木。
DNを一覧表示できます。cn=構成次の内容を確認してください。
sudo ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config dn
...
# {1}hdb, config
dn: olcDatabase={1}hdb,cn=config
...
sudo ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config 'olcDatabase={1}hdb'
# {1}hdb, config
dn: olcDatabase={1}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=nodomain
olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by anonymou
s auth by dn="cn=admin,dc=nodomain" write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by self write by dn="cn=admin,dc=nodomain" write by * read
olcLastMod: TRUE
olcRootDN: cn=admin,dc=nodomain
olcRootPW: {SSHA}_skip_
olcDbCheckpoint: 512 30
olcDbConfig: {0}set_cachesize 0 2097152 0
olcDbConfig: {1}set_lk_max_objects 1500
olcDbConfig: {2}set_lk_max_locks 1500
olcDbConfig: {3}set_lk_max_lockers 1500
olcDbIndex: objectClass eq
プロパティオルク訪問それはあなたが必要とするすべてです。
データベースに新しいACLルールを追加しましょう。dc=ドメインなし。
ldifファイルの生成
dn: olcDatabase={1}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {3}to dn.base="cn=test,dc=nodomain" by * read
適用する:
sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/test.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={1}hdb,cn=config"
望むより:
sudo ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config 'olcDatabase={1}hdb'
...
olcAccess: {3}to dn.base="cn=test,dc=nodomain" by * read
答え2
手順は次のように非常に似ています。他の質問で説明されているようにパスワードを変更してください。。
また、2つの方法があります。
1) 設定ファイルを編集します。バックエンドの構成ファイルを見つける必要があります。各ACLはolcAccess
属性値として定義されます。 ACLの構文は「一般」slapd.confファイルと同じですが、各ACLの先頭に確認するACLキューにACLの「場所」を定義する数値を挿入する必要があります。
ACLエントリの例は次のとおりです。
olcAccess: {0}to * by anonymous write
2)2番目の方法:config
データベースを使用します。データベースが有効になっている場合は、config
LDAPクライアントを使用してデータベースにバインドし、olcAccess
各バックエンドの値を編集できます。
答え3
全体の内容はslapd.d
実行時に一緒にリンクされ、一種の擬似slapd.conf
ファイルを生成します(その説明は完全に正確ではありませんが、概念を理解しようとしています)。これは Debian の一般的な慣行であり、個人的に多くの場合に気に入っています。
slapd.d
名前付きの新しいファイルを作成しacl
(または同様の、他のファイルに番号プレフィックスがある場合は番号プレフィックスを含める必要があります)、ACLエントリをここに入れてから再起動しますslapd
。
大丈夫でしょう。 *しかし、slapdのACL構造は一般の人にとっては難しいかもしれません。仕事を間違えたり意図しないようにするのは簡単です。
*注文制限がないとします。 (私はslapdについてよくわからないので、自分で決める必要があります。)
答え4
希望のユーザーを作成します。
# vim ro_user_desc.ldif
dn: cn=ro_admin,dc=example,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
userPassword: {SSHA}o3pSzVM3HXqUY6R2VHGJkJEWlwLOUH1N
userPassword
からハッシュ値を取得できますslappasswd -s your_plaintext_pass
。このユーザーを作成します。
# ldapadd -x -W -D "cn=admin,dc=example,dc=com" -f ro_user_desc.ldif
必要な役割を割り当てます。
# vim ro_access.ldif
dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {3}to dn.base="dc=example,dc=com" by dn.exact="cn=ro_admin,dc=example,dc=com" read
dc=example,dc=com
上記で作成したユーザーに対して、ツリー全体のリスト(読み取り専用)アクセスを有効にしました。dn: olcDatabase={1}mdb,cn=config
使用する正しい住所を見つけることをお勧めします@sOliverが返信しました。。ただし、この例はMDB OpenLdapベースのものであり、HDBなどの場合は異なる可能性があることに注意してください。
最後に適用して下さい:
# ldapmodify -Y EXTERNAL -H ldapi:/// -f ro_access.ldif