NIS+ および LDAP の構成情報は、構成ファイルとコマンド行で格納できますが、構成属性は LDAP にも格納できます。構成情報が多くの NIS+ サーバーによって共有され、定期的に変更される場合は、LDAP に格納すると便利です。
構成属性を LDAP に格納するには、LDAP サーバーのマニュアルを参照して、次の新しい属性とオブジェクトクラスを作成します。構成情報は、 rpc.nisd コマンド行または /etc/default/rpc.nisd の nisplusLDAPconfigDN 値に指定された場所に存在することが前提となっています。また、cn が nisplusLDAPbaseDomain 値であることも前提です (LDAP から構成情報を読み込む前に、rpc.nisd デーモンに認識されているため)。
LDIF データは、ldapadd(1) に適用できます。属性とオブジェクトクラス OID は、例として挙げています。
defaultSearchBase、preferredServerList 、およびauthenticationMethod 属性は、「DUA config」スキーマの原案に準拠しています。このスキーマは、IETF 標準となる見込みです。NIS+LDAPmapping(4) で使用する場合は、次の定義で十分です。
dn: cn=schema changetype: modify add: attributetypes attributetypes: ( 1.3.6.1.4.1.11.1.3.1.1.1 NAME 'defaultSearchBase' ¥ DESC 'Default LDAP base DN used by a DUA' ¥ EQUALITY distinguishedNameMatch ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE ) attributetypes: ( 1.3.6.1.4.1.11.1.3.1.1.2 NAME 'preferredServerList' ¥ DESC 'Preferred LDAP server host addresses to be used by a DUA' ¥ EQUALITY caseIgnoreMatch ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) attributetypes: ( 1.3.6.1.4.1.11.1.3.1.1.6 NAME 'authenticationMethod' ¥ DESC 'Identifies the authentication method used to connect to the DSA'¥ EQUALITY caseIgnoreMatch ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) |
NIS+ および LDAP の構成属性は、次のようになっています。
dn: cn=schema changetype: modify add: attributetypes attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.0 ¥ NAME 'nisplusLDAPTLS' ¥ DESC 'Transport Layer Security' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.1 ¥ NAME 'nisplusLDAPTLSCertificateDBPath' ¥ DESC 'Certificate file' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.2 ¥ NAME 'nisplusLDAPproxyUser' ¥ DESC 'Proxy user for data store/retrieval' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.3 ¥ NAME 'nisplusLDAPproxyPassword' ¥ DESC 'Password/key/shared secret for proxy user' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.4 ¥ NAME 'nisplusLDAPinitialUpdateAction' ¥ DESC 'Type of initial update' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.5 ¥ NAME 'nisplusLDAPinitialUpdateOnly' ¥ DESC 'Exit after update ?' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.6 ¥ NAME 'nisplusLDAPretrieveErrorAction' ¥ DESC 'Action following an LDAP search error' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.7 ¥ NAME 'nisplusLDAPretrieveErrorAttempts' ¥ DESC 'Number of times to retry an LDAP search' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.8 ¥ NAME 'nisplusLDAPretrieveErrorTimeout' ¥ DESC 'Timeout between each search attempt' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.9 ¥ NAME 'nisplusLDAPstoreErrorAction' ¥ DESC 'Action following an LDAP store error' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.10 ¥ NAME 'nisplusLDAPstoreErrorAttempts' ¥ DESC 'Number of times to retry an LDAP store' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.11 ¥ NAME 'nisplusLDAPstoreErrorTimeout' ¥ DESC 'Timeout between each store attempt' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.12 ¥ NAME 'nisplusLDAPrefreshErrorAction' ¥ DESC 'Action when refresh of NIS+ data from LDAP fails' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.13 ¥ NAME 'nisplusLDAPrefreshErrorAttempts' ¥ DESC 'Number of times to retry an LDAP refresh' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.14 ¥ NAME 'nisplusLDAPrefreshErrorTimeout' ¥ DESC 'Timeout between each refresh attempt' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.15 ¥ NAME 'nisplusNumberOfServiceThreads' ¥ DESC 'Max number of RPC service threads' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.16 ¥ NAME 'nisplusThreadCreationErrorAction' ¥ DESC 'Action when a non-RPC-service thread creation fails' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.17 ¥ NAME 'nisplusThreadCreationErrorAttempts' ¥ DESC 'Number of times to retry thread creation' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.18 ¥ NAME 'nisplusThreadCreationErrorTimeout' ¥ DESC 'Timeout between each thread creation attempt' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.19 ¥ NAME 'nisplusDumpErrorAction' ¥ DESC 'Action when an NIS+ dump fails' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.20 ¥ NAME 'nisplusDumpErrorAttempts' ¥ DESC 'Number of times to retry a failed dump' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.21 ¥ NAME 'nisplusDumpErrorTimeout' ¥ DESC 'Timeout between each dump attempt' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.22 ¥ NAME 'nisplusResyncService' ¥ DESC 'Service provided during a resync' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.23 ¥ NAME 'nisplusUpdateBatching' ¥ DESC 'Method for batching updates on master' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.24 ¥ NAME 'nisplusUpdateBatchingTimeout' ¥ DESC 'Minimum time to wait before pinging replicas' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.25 ¥ NAME 'nisplusLDAPmatchFetchAction' ¥ DESC 'Should pre-fetch be done ?' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.26 ¥ NAME 'nisplusLDAPbaseDomain' ¥ DESC 'Default domain name used in NIS+/LDAP mapping' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.27 ¥ NAME 'nisplusLDAPdatabaseIdMapping' ¥ DESC 'Defines a database id for an NIS+ object' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.28 ¥ NAME 'nisplusLDAPentryTtl' ¥ DESC 'TTL for cached objects derived from LDAP' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.29 ¥ NAME 'nisplusLDAPobjectDN' ¥ DESC 'Location in LDAP tree where NIS+ data is stored' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.30 ¥ NAME 'nisplusLDAPcolumnFromAttribute' ¥ DESC 'Rules for mapping LDAP attributes to NIS+ columns' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.18.31 ¥ NAME 'nisplusLDAPattributeFromColumn' ¥ DESC 'Rules for mapping NIS+ columns to LDAP attributes' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) dn: cn=schema changetype: modify add: objectclasses objectclasses: ( 1.3.6.1.4.1.42.2.27.5.42.42.19.0 NAME 'nisplusLDAPconfig' ¥ DESC 'NIS+/LDAP mapping configuration' ¥ SUP top STRUCTURAL MUST ( cn ) ¥ MAY ( preferredServerList $ defaultSearchBase $ authenticationMethod $ nisplusLDAPTLS $ nisplusLDAPTLSCertificateDBPath $ nisplusLDAPproxyUser $ nisplusLDAPproxyPassword $ nisplusLDAPinitialUpdateAction $ nisplusLDAPinitialUpdateOnly $ nisplusLDAPretrieveErrorAction $ nisplusLDAPretrieveErrorAttempts $ nisplusLDAPretrieveErrorTimeout $ nisplusLDAPstoreErrorAction $ nisplusLDAPstoreErrorAttempts $ nisplusLDAPstoreErrorTimeout $ nisplusLDAPrefreshErrorAction $ nisplusLDAPrefreshErrorAttempts $ nisplusLDAPrefreshErrorTimeout $ nisplusNumberOfServiceThreads $nisplusThreadCreationErrorAction $ nisplusThreadCreationErrorAttempts $ nisplusThreadCreationErrorTimeout $ nisplusDumpErrorAction $ nisplusDumpErrorAttempts $ nisplusDumpErrorTimeout $ nisplusResyncService $ nisplusUpdateBatching $ nisplusUpdateBatchingTimeout $ nisplusLDAPmatchFetchAction $ nisplusLDAPbaseDomain $ nisplusLDAPdatabaseIdMapping $ nisplusLDAPentryTtl $ nisplusLDAPobjectDN $ nisplusLDAPcolumnFromAttribute ! $ nisplusLDAPattributeFromColumn ) ) |
次の LDIF データを含むファイルを作成します。実際の検索ベースを searchBase に、完全指定ドメイン名を domain に代入します。
dn: cn=domain,searchBase
cn:domain
objectClass: top objectClass: nisplusLDAPconfig
上のファイルを ldapadd(1) の入力として使用し、NIS+ および LDAP の構成エントリを作成します。最初は、エントリは空になっています。ldapmodify(1) を使用して、構成属性を追加します。たとえば、nisplusNumberOfServiceThreads 属性に「32」を設定するには、ldapmodify(1) の入力として次のファイルを作成します。
dn: cn=domain, searchBase nisplusNumberOfServiceThreads: 32