#ident "@(#)nis.mapping 1.86 11/02/99 SMI" # # # Copyright 11/02/99 Sun Microsystems, Inc. All Rights Reserved # # # Exercise great caution if you edit this file. Make sure that you # cannot make the changes you require through the Admin Console. # Do not delete map definitions. Comment out a map definition if you do # not need it. If you add a map definition, before running a make, # test your new definition by running dsimport. # # Front-End: NIS Common: ###################################### # configuration variables # ###################################### # The name of the NIS domain # DOMAIN_NAME=sun.com DOMAIN_NAME= blueprints.com # # NAMING_CONTEXT, if defined, gives the root of the naming tree # if it is not defined, the naming tree root is derived from # the DOMAIN_NAME variable using dc attributes for each # element in the domain name (airius.com --> dc=airius,dc=com) # NAMING_CONTEXT=O=XYZ,C=US # # Where to create the LDAP admnistrative entries associated with the maps. ADMIN_SUFFIX="cn=Directory Manager" # directory where NIS binaries maps are generated DBM_DIRECTORY=/var/yp # Specifies whether to push changes to NIS maps automatically, # and the delay (in minutes) AUTOMATIC_PUSH=disabled AUTOMATIC_PUSH_DELAY=5 # ####################################### # ## generic map ## # ####################################### # # # # # map # # # # Table: # # Common: # MAP_NAME= # # Dynamic: # LINE =>$nisKeyT $nisValueT # nisKeyT=$NIS_KEY # MATCH_FILTER=(&(objectClass=nisObject)(sunNisKey=$nisKeyT)) # ALL_FILTER=(&(objectClass=nisObject)(sunNisKey=*)) # DC_NAMING=split($DOMAIN_NAME, ".", "dc=", ",", left2right) # rootTreeT=ou=Services,$NAMING_CONTEXT||ou=Services,$DC_NAMING # BASE_DN=ou=$MAP_NAME,$rootTreeT # # Export: # Build: # NIS_KEY=$sunNisKey # NIS_VALUE=$nisMapEntry # LINE=$sunNisKey $nisMapEntry # # Import: # Extract: # LINE =>$nisKeyT $nisValueT # Condense: # CaseNisKeyT =dprint($nisKeyT) # Build: # dn=cn=$CaseNisKeyT,$BASE_DN # sunNisKey=$nisKeyT # nisMapEntry=$nisValueT # nisMapName=$MAP_NAME # objectClass=nisSunObject # ####################################### ## bootparams ## ####################################### Table: bootparams Common: MAP_NAME=bootparams PRIVATE_OBJECTCLASSES=bootableDevice Dynamic: LINE =>$ipHostNameT $remainderT ipHostNameT=$NIS_KEY MATCH_FILTER=(|(&(objectClass=bootableDevice)(cn=$ipHostNameT))(&(objectClass=ipHost)(cn=$ipHostNameT))) ALL_FILTER=(&(objectClass=bootableDevice)(cn=*)) DC_NAMING=split($DOMAIN_NAME, ".", "dc=", ",", left2right) rootTreeT=$NAMING_CONTEXT||$DC_NAMING BASE_DN=ou=Hosts,$rootTreeT Import: Extract: LINE =>$ipHostNameT $parametersT Condense: rdnhostT=getrdn() bootParameterT=string2instances($parametersT," ") trimbootParameterT=trim($bootParameterT) objectClassT=string2instances("top device bootableDevice", " ") Build: dn=cn=$rdnhostT,$BASE_DN || cn=$ipHostNameT,$BASE_DN bootParameter=$trimbootParameterT objectClass=$objectClassT ####################################### ## ethers ## ####################################### Table: ethers Common: MAP_NAME=ethers PRIVATE_OBJECTCLASSES=ieee802Device Dynamic: LINE =>$macAddressT $ipHostNameT $remainderT || $macAddressT $ipHostNameT macAddressT=$NIS_KEY MATCH_FILTER=(&(objectClass=ipHost)(cn=$ipHostNameT)) ALL_FILTER=(&(objectClass=ieee802Device)(macAddress=*)) DC_NAMING=split($DOMAIN_NAME, ".", "dc=", ",", left2right) rootTreeT=$NAMING_CONTEXT||$DC_NAMING BASE_DN=ou=Hosts,$rootTreeT Import: Extract: LINE =>$macAddressT $ipHostNameT #$descriptionT*||\ $macAddressT $ipHostNameT Condense: rdnHostNameT=getrdn() objectClassT=string2instances("top device ieee802Device", " ") AllmacAddress=string2instances($macAddressT,",") trimdescriptionT=trim($descriptionT) Build: dn=cn=$rdnHostNameT,$BASE_DN || cn=$ipHostNameT,$BASE_DN macAddress=$AllmacAddress objectClass=$objectClassT description=$trimdescriptionT ####################################### ## group ## ####################################### Table: group Common: MAP_NAME=group # The LDAP attribute used to store the key (cn) is case insensitive! CASE_SENSITIVE=yes Dynamic: LINE =>$groupNameT:$remainderT* groupNameT=$NIS_KEY MATCH_FILTER=(&(objectClass=posixGroup)(cn=$groupNameT)) ALL_FILTER=(&(objectClass=posixGroup)(cn=*)) DC_NAMING=split($DOMAIN_NAME, ".", "dc=", ",", left2right) rootTreeT=ou=Group,$NAMING_CONTEXT||ou=Group,$DC_NAMING BASE_DN=$rootTreeT Import: Extract: LINE =>$groupNameT:$userPasswordT*:$gidNumberT:$membersUidListT* Condense: memberUidT=string2instances($membersUidListT,",") trimmemberUidT=trim($memberUidT) objectClassT=string2instances("top posixGroup", " ") Build: dn=cn=$groupNameT,$BASE_DN cn=$groupNameT gidNumber=$gidNumberT memberUid=$trimmemberUidT userPassword={crypt}$userPasswordT objectClass=$objectClassT ####################################### ## hosts ## ####################################### Table: hosts Common: MAP_NAME=hosts PRIVATE_OBJECTCLASSES=ipHost Dynamic: LINE =>$ipHostNumberT $remainderT ipHostNumberT=$NIS_KEY MATCH_FILTER=(&(objectClass=ipHost)(ipHostNumber=$ipHostNumberT)) ALL_FILTER=(&(objectClass=ipHost)(ipHostNumber=*)) DC_NAMING=split($DOMAIN_NAME, ".", "dc=", ",", left2right) rootTreeT=ou=Hosts,$NAMING_CONTEXT||ou=Hosts,$DC_NAMING BASE_DN=$rootTreeT Import: Extract: LINE => $ipHostNumberT $ipHostNameT $allIpHostAliasesT*#$descriptionT*||\ $ipHostNumberT $ipHostNameT $allIpHostAliasesT||\ $ipHostNumberT $ipHostNameT Condense: ipHostAliasesLineT=exclude($allIpHostAliasesT,$ipHostNameT, " ") allIpHostNamesLineT=$ipHostNameT $ipHostAliasesLineT||$ipHostNameT allIpHostNamesT=string2instances($allIpHostNamesLineT," ") trimallIpHostNamesT=trim($allIpHostNamesT) objectClassT=string2instances("top device ipHost", " ") ipHostNumT=string2instances($ipHostNumberT, ":") trimipHostNameT=trim($ipHostNameT) trimDescriptionT=trim($descriptionT) Build: dn=cn=$trimipHostNameT,$BASE_DN cn=$trimallIpHostNamesT ipHostNumber=$ipHostNumT description=$trimDescriptionT objectClass=$objectClassT ####################################### ## aliases ## ####################################### Table: aliases Common: MAP_NAME=aliases CASE_SENSITIVE=yes Dynamic: LINE =>$aliasNameT: $aliasListT aliasNameT=$NIS_KEY MATCH_FILTER=(&(objectClass=mailgroup)(cn=$aliasNameT)) ALL_FILTER=(&(objectClass=mailgroup)(cn=*)) DC_NAMING=split($DOMAIN_NAME, ".", "dc=", ",", left2right) rootTreeT=$NAMING_CONTEXT||$DC_NAMING BASE_DN=ou=aliases,$rootTreeT Import: Extract: LINE =>$aliasNameT: $aliasListT Condense: rfc822mailMembersT=string2instances($aliasListT,",") trimrfc822mailMembersT=trim($rfc822mailMembersT) objectClassT=string2instances("top mailgroup", " ") Build: dn=mail="$aliasNameT",$BASE_DN cn=$aliasNameT mgrprfc822mailMember=$trimrfc822mailMembersT objectClass=$objectClassT ####################################### ## netgroup ## ####################################### Table: netgroup Common: MAP_NAME=netgroup CASE_SENSITIVE=yes Dynamic: LINE =>$nisNetGroupNameT $remainderT nisNetGroupNameT=$NIS_KEY MATCH_FILTER=(&(objectClass=nisNetgroup)(cn=$nisNetGroupNameT)) ALL_FILTER=(&(objectClass=nisNetgroup)(cn=*)) DC_NAMING=split($DOMAIN_NAME, ".", "dc=", ",", left2right) rootTreeT=$NAMING_CONTEXT||$DC_NAMING BASE_DN=ou=netgroup,$rootTreeT Export: Condense: nisNetGroupNameT=getrdn() nisNetGroupMembersT=instances2string($memberNisNetGroup, " ") nisNetGroupMembersT1=$nisNetGroupMembersT||"" nisNetGroupTripleT=instances2string($nisNetGroupTriple, " ") nisNetGroupTripleT1=$nisNetGroupTripleT||"" Build: NIS_KEY=$nisNetGroupNameT NIS_VALUE=$nisNetGroupMembersT1 $nisNetGroupTripleT1 LINE=$nisNetGroupNameT $nisNetGroupMembersT1 $nisNetGroupTripleT1 Import: Extract: NIS_KEY =>$nisNetGroupNameT NIS_VALUE =>$nisNetGroupTripleT LINE =>$nisNetGroupNameT $nisNetGroupTripleT Condense: # # First, fill in memberNisNetGroup attribute # nisGroupMembersT0=replace($nisNetGroupTripleT,"[(][^()]*[)]"," ") # Mind the tab in the replace arguments nisGroupMembersT1=replace($nisGroupMembersT0,"[ ][ ]*"," ") nisGroupMembersT11=replace($nisGroupMembersT1,"[ ][ ]*"," ") nisGroupMembersT2=string2instances($nisGroupMembersT11," ") nisGroupMembersT3=trim($nisGroupMembersT2) # # Then, fill in nisNetGroupTriple attribute # nisGroupTripleT0=replace($nisNetGroupTripleT,"[^()][^()]*[(]","(") nisGroupTripleT1=replace($nisGroupTripleT0,"[^()][^()]*$","") nisGroupTripleT2=replace($nisGroupTripleT1,"[)][(]",") (") nisGroupTripleT3=string2instances($nisGroupTripleT2," ") nisGroupTripleT4=trim($nisGroupTripleT3) # objectClassT=string2instances("top nisNetGroup", " ") Build: dn=cn=$nisNetGroupNameT,$BASE_DN cn=$nisNetGroupNameT nisNetGroupTriple=$nisGroupTripleT4 memberNisNetGroup=$nisGroupMembersT3 objectClass=$objectClassT ####################################### ## networks ## ####################################### Table: networks Common: MAP_NAME=networks Dynamic: LINE =>$ipNetworkNameT $ipNetworkNumberT #$remainderT*||\ $ipNetworkNameT $ipNetworkNumberT ipNetworkNumberT=$NIS_KEY MATCH_FILTER=(&(objectClass=ipNetwork)(ipNetworkNumber=$ipNetworkNumberT)) ALL_FILTER=(&(objectClass=ipNetwork)(ipNetworkNumber=*)) DC_NAMING=split($DOMAIN_NAME, ".", "dc=", ",", left2right) rootTreeT=$NAMING_CONTEXT||$DC_NAMING BASE_DN=ou=networks,$rootTreeT Import: Extract: LINE =>$ipNetworkNameT $ipNetworkNumberT $allIpNetworkAliasesT*#$descriptionT*||\ $ipNetworkNameT $ipNetworkNumberT $allIpNetworkAliasesT||\ $ipNetworkNameT $ipNetworkNumberT Condense: ipNetworkAliasesLineT=exclude($allIpNetworkAliasesT, $ipNetworkNameT, " ") allIpNetworkNamesLineT=$ipNetworkNameT $ipNetworkAliasesLineT||$ipNetworkNameT allIpNetworkNamesT=string2instances($allIpNetworkNamesLineT," ") trimallIpNetworkNamesT=trim($allIpNetworkNamesT) trimdescriptionT=trim($descriptionT) objectClassT=string2instances("top ipNetwork", " ") Build: dn=ipNetworkNumber=$ipNetworkNumberT,$BASE_DN cn=$trimallIpNetworkNamesT ipNetworkNumber=$ipNetworkNumberT objectClass=$objectClassT description=$trimdescriptionT ####################################### ## netmasks ## ####################################### Table: netmasks Common: MAP_NAME=netmasks Dynamic: LINE =>$ipNetworkNumberT $remainder $ipNetworkNumberT=$NIS_KEY MATCH_FILTER=(&(objectClass=ipNetwork)(ipNetworkNumber=$ipNetworkNumberT)) ALL_FILTER=(&(objectClass=ipNetwork)(ipNetMaskNumber=*)) DC_NAMING=split($DOMAIN_NAME, ".", "dc=", ",", left2right) rootTreeT=ou=networks,$NAMING_CONTEXT||ou=networks,$DC_NAMING BASE_DN=$rootTreeT Import: Extract: LINE =>$ipNetworkNumberT $ipNetMaskNumberT Condense: objectClassT=string2instances("top ipNetwork"," ") Build: dn=ipNetworkNumber=$ipNetworkNumberT,$BASE_DN ipNetworkNumber=$ipNetworkNumberT ipNetMaskNumber=$ipNetMaskNumberT objectClass=$objectClassT ####################################### ## passwd ## ####################################### Table: passwd Common: MAP_NAME=passwd CASE_SENSITIVE=yes PRIVATE_OBJECTCLASSES=posixAccount Dynamic: LINE =>$uidT:$remainder uidT=$NIS_KEY MATCH_FILTER=(&(objectClass=posixAccount)(uid=$uidT)) ALL_FILTER=(&(objectClass=posixAccount)(uid=*)) DC_NAMING=split($DOMAIN_NAME, ".", "dc=", ",", left2right) rootTreeT=ou=People,$NAMING_CONTEXT||ou=People,$DC_NAMING BASE_DN=$rootTreeT Import: Extract: NIS_KEY =>$uidT # This line is used ONLY by dsyppasswdd. Please do not change it. DSPASSWD_VALUE =>$uidT:$userPasswordListT*:$uidNumberT:$gidNumberT:$commentT*:$homeDirT*:$loginShellT* LINE =>$uidT:$rawUserPasswordT*:$uidNumberT:$gidNumberT:$firstNameT $initialsT $lastNameT -$commentT*:$homeDirT*:$loginShellT*||\ $uidT:$rawUserPasswordT*:$uidNumberT:$gidNumberT:$firstNameT $lastNameT -$commentT*:$homeDirT*:$loginShellT*||\ $uidT:$rawUserPasswordT*:$uidNumberT:$gidNumberT: $firstNameT $lastNameT -$commentT*:$homeDirT*:$loginShellT*||\ $uidT:$rawUserPasswordT*:$uidNumberT:$gidNumberT:$NameT-$commentT*:$homeDirT*:$loginShellT*||\ $uidT:$rawUserPasswordT*:$uidNumberT:$gidNumberT:$commentT*:$homeDirT*:$loginShellT* Condense: CommonNameT=$firstNameT $initialsT $lastNameT||\ $firstNameT $lastNameT||\ $NameT||\ $uidT gecosT=$firstNameT $initialsT $lastNameT -$commentT||\ $firstNameT $initialsT $lastNameT -||\ $firstNameT $lastNameT -$commentT||\ $firstNameT $lastNameT -||\ $NameT -$commentT||\ $NameT -||\ $commentT objectClassT=string2instances("top account posixAccount"," ") opthomeDirT=$homeDirT||"" cryptedPasswordT={crypt}$rawUserPasswordT||"" userPasswordLineT=string2instances($userPasswordListT,",") userPasswordT=$userPasswordLineT||$cryptedPasswordT Build: dn=cn="$CommonNameT",$BASE_DN uid=$uidT userpassword=$userPasswordT uidNumber=$uidNumberT gidNumber=$gidNumberT gecos=$gecosT homeDirectory=$opthomeDirT loginShell=$loginShellT objectClass=$objectClassT ####################################### ## shadow ## ####################################### Table: shadow Common: MAP_NAME=shadow PRIVATE_OBJECTCLASSES=shadowAccount Dynamic: LINE =>$uidT:$remainder uidT=$NIS_KEY MATCH_FILTER=(&(objectClass=posixAccount)(uid=$uidT)) ALL_FILTER=(&(objectClass=shadowAccount)(uid=$*)) DC_NAMING=split($DOMAIN_NAME, ".", "dc=", ",", left2right) rootTreeT=ou=People,$NAMING_CONTEXT||ou=People,$DC_NAMING BASE_DN=$rootTreeT Import: Extract: LINE =>$uidT:$rawUserPasswordT*:$shLastChgT:$shMinT*:$shMaxT*:$shWarningT*:$shInactiveT*:$shExpireT*:$shFlagT* Condense: CommonNameT=getrdn() objectClassT=string2instances("top shadowAccount"," ") #cryptedPasswordT={crypt}$rawUserPasswordT||"" cryptedPasswordT={crypt}$rawUserPasswordT Build: dn=cn=$CommonNameT,$BASE_DN #dn=uid="$uidT",$BASE_DN uid=$uidT userpassword=$cryptedPasswordT objectClass=$objectClassT shadowLastChange=$shLastChgT shadowMin=$shMinT shadowMax=$shMaxT shadowWarning=$shWarningT shadowInactive=$shInactiveT shadowExpire=$shExpireT shadowFlag=$shFlagT ####################################### ## protocols ## ####################################### Table: protocols Common: MAP_NAME=protocols Dynamic: LINE =>$ipProtocolNameT $ipProtocolNumberT $remainderT* ||\ $ipProtocolNameT $ipProtocolNumberT ipProtocolNumberT=$NIS_KEY MATCH_FILTER=(&(objectClass=ipProtocol)(ipProtocolNumber=$ipProtocolNumberT)) ALL_FILTER=(&(objectClass=ipProtocol)(ipProtocolNumber=*)) DC_NAMING=split($DOMAIN_NAME, ".", "dc=", ",", left2right) rootTreeT=$NAMING_CONTEXT||$DC_NAMING BASE_DN=ou=protocols,$rootTreeT Import: Extract: LINE =>$ipProtocolNameT $ipProtocolNumberT $allIpProtocolAliasesT*#$descriptionT*||\ $ipProtocolNameT $ipProtocolNumberT $allIpProtocolAliasesT||\ $ipProtocolNameT $ipProtocolNumberT Condense: ipProtocolAliasesLineT=exclude($allIpProtocolAliasesT,$ipProtocolNameT, " ") allIpProtocolNamesLineT=$ipProtocolNameT $ipProtocolAliasesLineT||\ $ipProtocolNameT allIpProtocolNamesT=string2instances($allIpProtocolNamesLineT," ") trimallIpProtocolNamesT=trim($allIpProtocolNamesT) trimdescriptionT=trim($descriptionT) objectClassT=string2instances("top ipProtocol", " ") Build: dn=cn=$ipProtocolNameT,$BASE_DN cn=$trimallIpProtocolNamesT ipProtocolNumber=$ipProtocolNumberT description=$trimdescriptionT objectClass=$objectClassT ####################################### ## services ## ####################################### Table: services Common: MAP_NAME=services CASE_SENSITIVE=yes Dynamic: LINE =>$ipServiceNameT $ipServicePortT/$ipServiceProtocolT $remainderT* ||\ $ipServiceNameT $ipServicePortT/$ipServiceProtocolT ipServiceNameT=$NIS_KEY MATCH_FILTER=(&(objectClass=ipService)(cn=$ipServiceNameT)(ipServiceProtocol=$ipServiceProtocolT)) ALL_FILTER=(&(objectClass=ipService)(cn=*)) DC_NAMING=split($DOMAIN_NAME, ".", "dc=", ",", left2right) rootTreeT=$NAMING_CONTEXT||$DC_NAMING BASE_DN=ou=services,$rootTreeT Import: Extract: LINE =>$ipServiceNameT $ipServicePortT/$ipServiceProtocolT $allIpServiceAliasesT*#$descriptionT*||\ $ipServiceNameT $ipServicePortT/$ipServiceProtocolT $allIPServiceAliasesT*||\ $ipServiceNameT $ipServicePortT/$ipServiceProtocolT Condense: ipServiceAliasesLineT=exclude($allIpServiceAliasesT, $ipServiceNameT, " ") allIpServiceNamesLineT=$ipServiceNameT $ipServiceAliasesLineT||$ipServiceNameT allIpServiceNamesT=string2instances($allIpServiceNamesLineT," ") trimallIpServiceNamesT=trim($allIpServiceNamesT) trimdescriptionT=trim($descriptionT) objectClassT=string2instances("top ipService", " ") Build: dn=cn=$ipServiceNameT+ipServiceProtocol=$ipServiceProtocolT,$BASE_DN cn=$trimallIpServiceNamesT ipServicePort=$ipServicePortT ipServiceProtocol=$ipServiceProtocolT objectClass=$objectClassT description=$trimdescriptionT ####################################### ## rpc ## ####################################### Table: rpc Common: MAP_NAME=rpc Dynamic: LINE =>$oncRpcNumberT $remainderT*||\ $oncRpcNumberT oncRpcNumberT=$NIS_KEY MATCH_FILTER=(&(objectClass=oncRpc)(oncRpcNumber=$oncRpcNumberT)) ALL_FILTER=(&(objectClass=oncRpc)(oncRpcNumber=*)) DC_NAMING=split($DOMAIN_NAME, ".", "dc=", ",", left2right) rootTreeT=ou=Rpc,$NAMING_CONTEXT||ou=Rpc,$DC_NAMING BASE_DN=$rootTreeT Export: Condense: allRpcNamesT=instances2string($cn," ") oncRpcNameT=getrdn() oncRpcAliasesT=exclude($allRpcNamesT, $oncRpcNameT, " ") optionalCommentT=#$description||"" Build: NIS_KEY=$oncRpcNumber NIS_VALUE=$oncRpcNameT $oncRpcNumber $oncRpcAliasesT $optionalCommentT LINE=$oncRpcNameT $oncRpcNumber $oncRpcAliasesT $optionalCommentT Import: Extract: LINE =>$oncRpcNameT $oncRpcNumberT $allOncRpcAliasesT*#$descriptionT*||\ $oncRpcNameT $oncRpcNumberT $allOncRpcAliasesT||\ $oncRpcNameT $oncRpcNumberT Condense: oncRpcAliasesLineT=exclude($allOncRpcAliasesT,$oncRpcNameT, " ") allOncRpcNamesLineT=$oncRpcNameT $oncRpcAliasesLineT||$oncRpcNameT allOncRpcNamesT=string2instances($allOncRpcNamesLineT," ") trimallOncRpcNamesT=trim($allOncRpcNamesT) objectClassT=string2instances("top oncRpc", " ") Build: dn=cn=$oncRpcNameT,$BASE_DN cn=$trimallOncRpcNamesT oncRpcNumber=$oncRpcNumberT description=$descriptionT objectClass=$objectClassT ####################################### ## ypservers ## ####################################### Table: ypservers Common: MAP_NAME=ypservers Dynamic: LINE=>$ypServerNameT ypServerNameT=$NIS_KEY MATCH_FILTER=(&(objectClass=sunNisServer)(cn=$ypServerNameT)) ALL_FILTER=(&(objectClass=sunNisServer)(cn=*)) DC_NAMING=split($DOMAIN_NAME, ".", "dc=", ",", left2right) rootTreeT=ou=Services,$NAMING_CONTEXT||ou=Services,$DC_NAMING BASE_DN=ou=ypservers,$rootTreeT Export: Condense: ypServerNameT=getrdn() emptyValT="" Build: NIS_KEY=$ypServerNameT NIS_VALUE=$emptyValT LINE=$ypServerNameT Import: Extract: LINE =>$ypServerNameT Condense: objectClassT=string2instances("top sunNisServer", " ") trimypServerNameT=trim($ypServerNameT) Build: dn=cn=$trimypServerNameT,$BASE_DN cn=$trimypServerNameT objectClass=$objectClassT ####################################### ## automounter ## ####################################### Table: automount Common: # MAP_NAME=automount CASE_SENSITIVE=yes Dynamic: LINE =>$nisKeyT $nisValueT nisKeyT=$NIS_KEY MATCH_FILTER=(&(objectClass=nisObject)(nisMapName=$MAP_NAME)(cn=$nisKeyT)) ALL_FILTER=(&(objectClass=nisObject)(nisMapName=$MAP_NAME)(cn=*)) DC_NAMING=split($DOMAIN_NAME, ".", "dc=", ",", left2right) rootTreeT=nismapname=$MAP_NAME,$NAMING_CONTEXT||nismapname=$MAP_NAME,$DC_NAMING BASE_DN=$rootTreeT Import: Extract: LINE =>$nisKeyT $nisValueT Condense: trimNisValueT=trim($nisValueT) CaseNisKeyT =dprint($nisKeyT) AllNisKeyT =$nisKeyT $CaseNisKeyT NisKeyInstance=string2instances($AllNisKeyT, " ") trimMapname=trim($MAP_NAME) Build: dn=cn="$CaseNisKeyT",$BASE_DN cn=$NisKeyInstance nisMapEntry=$trimNisValueT nisMapName=$trimMapname objectClass=nisObject ####################################### ## publickey.byuser ## ####################################### Table: publickey.byuser Common: MAP_NAME=publickey.byuser CASE_SENSITIVE=yes PRIVATE_OBJECTCLASSES=nisKeyObject Dynamic: #LINE =>$nisKeyT $remainderT LINE =>$nisUnixKeyT.$nisUidKeyT@$remainder nisKeyT=$NIS_KEY #MATCH_FILTER=(&(objectClass=nisKeyObject)(uid=$nisUnixKeyT)) #ALL_FILTER=(&(objectClass=nisKeyObject)(uid=*)) MATCH_FILTER=(&(objectClass=posixAccount)(uidNumber=$nisUidKeyT)) ALL_FILTER=(&(objectClass=posixAccount)(uidNumber=*)) #commonNameT=getrdn() DC_NAMING=split($DOMAIN_NAME, ".", "dc=", ",", left2right) rootTreeT=ou=People,$NAMING_CONTEXT||ou=People,$DC_NAMING BASE_DN=$rootTreeT # Export: # Build: # NIS_KEY=unix.$sunNisKey@ # needs work # NIS_VALUE=$nisMapEntry # LINE=$sunNisKey $nisMapEntry Import: Extract: #LINE =>$nisKeyT $nisPublickeyT:$nisSecretKeyT LINE =>$nisUnixKeyT.$nisUidKeyT@$nisDomKeyT $nisPublickeyT:$nisSecretkeyT Condense: #trimNisValueT=trim($nisValueT) CaseNisKeyT =dprint($nisUidKeyT) commonNameT=getrdn() # commonNameT=||"" objectClassT=string2instances("top NisKeyObject"," ") Build: #dn=uid=$commonNameT,$BASE_DN dn=$commonNameT,$BASE_DN uidnumber=$CaseNisKeyT nisPublickey=$nisPublickeyT nisSecretkey=$nisSecretkeyT objectClass=$objectClassT ####################################### ## publickey.byhost ## ####################################### Table: publickey.byhost Common: MAP_NAME=publickey.byhost CASE_SENSITIVE=yes PRIVATE_OBJECTCLASSES=nisKeyObject Dynamic: #LINE =>$nisKeyT $remainderT LINE =>$nisUnixKeyT.$nishostKeyT@$remainder nisKeyT=$NIS_KEY #MATCH_FILTER=(&(objectClass=nisKeyObject)(uid=$nisUnixKeyT)) #ALL_FILTER=(&(objectClass=nisKeyObject)(uid=*)) MATCH_FILTER=(&(objectClass=ipHost)(cn=$nishostKeyT)) ALL_FILTER=(&(objectClass=ipHost)(cn=*)) #commonNameT=getrdn() DC_NAMING=split($DOMAIN_NAME, ".", "dc=", ",", left2right) rootTreeT=ou=Hosts,$NAMING_CONTEXT||ou=Hosts,$DC_NAMING BASE_DN=$rootTreeT # Export: # Build: # NIS_KEY=unix.$sunNisKey@ # needs work # NIS_VALUE=$nisMapEntry # LINE=$sunNisKey $nisMapEntry Import: Extract: #LINE =>$nisKeyT $nisPublickeyT:$nisSecretKeyT LINE =>$nisUnixKeyT.$nishostKeyT@$nisDomKeyT $nisPublickeyT:$nisSecretkeyT Condense: #trimNisValueT=trim($nisValueT) CaseNisKeyT =dprint($nishostKeyT) commonNameT=getrdn() # commonNameT=||"" objectClassT=string2instances("top NisKeyObject"," ") Build: dn=$commonNameT,$BASE_DN #cn=$CaseNisKeyT nisPublickey=$nisPublickeyT nisSecretkey=$nisSecretkeyT objectClass=$objectClassT