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 に変換する方法」 を参照してください。