web-dev-qa-db-ja.com

LDAPデータが保存されている場所を変更する

CentOS 7でopenLDAPサーバーバージョン2.4.40を実行しています。LDAPはオンラインconfオプション(olc)を使用して構成されます。このおかげで 質問 、slapdのデータベースファイルが/var/lib/ldapにあることを私は知っています。

LinuxボックスでopenLDAPサーバーを読み取り専用OSパーティションおよび永続データ用の別のパーティションとして実行しようとしています。 OSパーティションにopenLDAPをインストールして構成することはできますが、構成後にアクセスできなくなります。

質問:LDAPがデータを読み書きする場所を/ var/lib/ldapから変更することは可能ですか? )永続データパーティションのどこかに?

1
hededo

私は、新しいセットアップのたびに、openldapのデフォルトデータベースを移動していました。

データベースを移動したいときに行う手順:

  • 平手打ちをやめる
  • slapcatLDIFファイルのcn=configブランチの内容
  • /var/lib/ldapディレクトリを好きな場所にコピーします
  • ユーザーopenldapが新しいディレクトリとその中のすべてのファイルを所有していることを確認してください
  • 以前にエクスポートしたLDIFを編集して、olcDbDirectoryを新しい場所に変更します
  • LDIF slapadd -F /etc/ldap/slapd.d -b cn=config -l /path/to/file/file.ldifをインポートします(これを行う前に、/etc/ldap/slapd.dが空であることを確認してください)
  • /etc/ldap/slapd.dとそのすべてのコンテンツがopenldapによって所有されていることを確認してください

  • Slapdがこの新しいデータベースディレクトリを使用できるように、必要な構成を編集します

たとえば、apparmorを使用して、ファイル/etc/apparmor.d/usr.sbin.slapdを編集し、次の行を追加します

/path/to/new/db/ r,
/path/to/new/db/** rwk,
  • 平手打ちを開始

通常、それはトリックを行います。これは、openldapインスタンスの設定をバックアップする方法でもあります。

1
Esteban

私はあなたの質問を2つの部分に分けて読みました:

  1. LDAPデータへの書き込みアクセスを維持しながら、OSを読み取り専用にする必要があります
  2. #1の解決策として、LDAPデータを/var/lib/ldap以外の場所に保存することを提案します。

#2は可能だと思いますが、OpenLDAPを直接使用した経験が十分ではありません。私にできることは、#1の代替ソリューションを提案することです。 mountコマンドとfstabの両方を使用して、差分ディスクパーティションを/var/lib/ldapにマウントするのは簡単です。これは、OpenLDAPがこれをネイティブに処理するかどうかに関係なく、目標を効果的に達成するはずです。 /var/lib/ldapフォルダを目的の場所へのシンボリックリンクに置き換えることもできる場合があります。繰り返しますが、これはOpenLDAPと、そのプロジェクトに組み込まれている、または組み込まれていないサポートをバイパスします。

最後に、特定のログ領域の書き込みアクセスを維持することも検討する必要があります。上記の段落の手法は、ログファイルの場所を移動する場合にも機能します。

1
Joel Coel

Openldapは、データベース、DB、ファイルの作成後の移動をサポートしていないようです。 Openldapは現在、DBファイルの削除もサポートしていません。

新しいDBファイルを作成し、そのolcDbDirectory属性を別のパーティションのパスに定義することができます。

dn: olcDatabase=bdb,cn=config
objectClass: olcBdbConfig
olcDatabase: bdb
olcDbDirectory: /partition/db/new-db-file
olcSuffix: dc=example,dc=net

Ch 6.1.1.4.5にある情報 OLCを使用したデータベースの追加/削除

0
hededo