NIS+ テーブルエントリを LDAP データから作成するときは、そのエントリオブジェクトが存在するテーブルオブジェクトの対応する値を使用して、所有者、グループ、アクセス権、および TTL を初期化する必要があります。環境によっては、これらの NIS+ エントリ属性を個別に設定する必要があります。たとえば、rpc.nispasswdd(1M) デーモンを使用しない環境では、この操作が必要になります。ユーザー自身が NIS+ パスワードを変更して、cred.org_dir テーブルに格納されている Diffie-Hellman キーを再暗号化できるようにするには、passwd.org_dir および cred.org_dir エントリの所有者をそのユーザーに設定し、その所有者に変更権限を割り当てる必要があります。
1 つ以上の NIS+ テーブルエントリの所有者、グループ、アクセス権、または TTL を LDAP に格納するには、次の操作を実行する必要があります。
LDAP サーバーのマニュアルを参照して、次の新しい属性とオブジェクトクラスを作成します。LDIF データは、ldapadd に適用できます。属性とオブジェクトクラス OID は、例として挙げています。
dn: cn=schema changetype: modify add: attributetypes attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.4.0 NAME 'nisplusEntryOwner' ¥ DESC 'Opaque representation of NIS+ entry owner' ¥ 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.4.1 NAME 'nisplusEntryGroup' ¥ DESC 'Opaque representation of NIS+ entry group' ¥ 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.4.2 NAME 'nisplusEntryAccess' ¥ DESC 'Opaque representation of NIS+ entry access' ¥ 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.4.3 NAME 'nisplusEntryTtl' ¥ DESC 'Opaque representation of NIS+ entry TTL' ¥ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) |
dn: cn=schema changetype: modify add: objectclasses |
objectclasses:(1.3.6.1.4.1.42.2.27.5.42.42.5.0 NAME 'nisplusEntryData'¥ SUP top STRUCTURAL DESC 'NIS+ entry object non-column data'¥ |
MUST ( cn ) MAY ( nisplusEntryOwner $ nisplusEntryGroup $¥ nisplusEntryAccess $ nisplusEntryTtl ) ) |
関連するテーブルの nisplusLDAPobjectDN 属性値を変更して、新しく作成した nisplusEntryData オブジェクトクラスを書き込み部分に含めます。
たとえば、passwd.org_dir テーブルの場合、 /var/nis/NIS+LDAPmapping.template をベースにしたテンプレートファイルを使用しているときは、次のように編集します。
nisplusLDAPobjectDN passwd:ou=People,?one?objectClass=shadowAccount,¥ objectClass=posixAccount:¥ ou=People,?one?objectClass=shadowAccount,¥ objectClass=posixAccount,¥ objectClass=account,objectClass=top |
属性値を次のように編集します。
nisplusLDAPobjectDN passwd:ou=People,?one?objectClass=shadowAccount,¥ objectClass=posixAccount:¥ ou=People,?one?objectClass=shadowAccount,¥ objectClass=posixAccount,¥ objectClass=nisplusEntryData,¥ objectClass=account,objectClass=top |
nisplusLDAPattributeFromColumn 属性値および nisplusLDAPcolumnFromAttribute 属性値を編集して、所有者、グループ、アクセス権、または TTL を必要に応じて指定します。
手順 2 で、これらの値を格納する LDAP 属性を作成しました。NIS+ には、zo_owner 、zo_group、zo_access、および zo_ttl と呼ばれる定義済みの擬似列名が、あらかじめ定義されています。たとえば、passwd.org_dir エントリの所有者、グループ、およびアクセス権を LDAP に格納するには、次の nisplusLDAPattributeFromColumn 値を変更します。
nisplusLDAPattributeFromColumn ¥ passwd: dn=("uid=%s,", name), ¥ cn=name, ¥ uid=name, ¥ userPassword=("{crypt$}%s", passwd), ¥ uidNumber=uid, ¥ gidNumber=gid, ¥ gecos=gcos, ¥ homeDirectory=home, ¥ loginShell=shell, ¥ (shadowLastChange,shadowMin,shadowMax, ¥ shadowWarning, shadowInactive,shadowExpire)=¥ (shadow, ":") |
次のように編集します。
nisplusLDAPattributeFromColumn ¥ passwd: dn=("uid=%s,", name), ¥ cn=name, ¥ uid=name, ¥ userPassword=("{crypt$}%s", passwd), ¥ uidNumber=uid, ¥ gidNumber=gid, ¥ gecos=gcos, ¥ homeDirectory=home, ¥ loginShell=shell, ¥ (shadowLastChange,shadowMin,shadowMax, ¥ shadowWarning, shadowInactive,shadowExpire)=¥ (shadow, ":"), ¥ nisplusEntryOwner=zo_owner, ¥ nisplusEntryGroup=zo_group, ¥ nisplusEntryAccess=zo_access |
同様に、 NIS+ エントリの所有者、グループ、LDAP データからのアクセス権を passwd.org_dir テーブルに設定するには、次の値を変更します。
nisplusLDAPcolumnFromAttribute ¥ passwd: name=uid, ¥ ("{crypt$}%s", passwd)=userPassword, ¥ uid=uidNumber, ¥ gid=gidNumber, ¥ gcos=gecos, ¥ home=homeDirectory, ¥ shell=loginShell, ¥ shadow=("%s:%s:%s:%s:%s:%s", ¥ shadowLastChange, ¥ shadowMin, ¥ shadowMax, ¥ shadowWarning, ¥ shadowInactive, ¥ shadowExpire) |
次のように編集します。
nisplusLDAPcolumnFromAttribute ¥ passwd: name=uid, ¥ ("crypt$%s", passwd)=authPassword, ¥ uid=uidNumber, ¥ gid=gidNumber, ¥ gcos=gecos, ¥ home=homeDirectory, ¥ shell=loginShell, ¥ shadow=("%s:%s:%s:%s:%s:%s", ¥ shadowLastChange, ¥ shadowMin, ¥ shadowMax, ¥ shadowWarning, ¥ shadowInactive, ¥ shadowExpire), ¥ zo_owner=nisplusEntryOwner, ¥ zo_group=nisplusEntryGroup, ¥ zo_access=nisplusEntryAccess |
マッピングの変更を有効にするために、rpc.nisd デーモンを再起動します。
まず、所有者、グループ、アクセス権、および TTL エントリデータを LDAP にアップロードする必要があります。アップロード方法については、「すべての NIS+ データを 1 回の操作で LDAP に変換する方法」 を参照してください。