IPB
>  Man Pages > Unix > Solaris 10 11/06 > Section 4 > NIS%2BLDAPmapping man page

NIS%2BLDAPmapping man page

Section 4 - Solaris 10 11/06 Man Pages

Other operating system man pages available here


Advanced Search

Hopefully, this page is exactly what you are looking for, but if not, you can always find further assistance on Unix/Linux Forum!





File Formats                                   NIS+LDAPmapping(4)



NAME
     NIS+LDAPmapping - configuration  file  for  mapping  between
     NIS+ and LDAP

SYNOPSIS
     /var/nis/NIS+LDAPmapping

DESCRIPTION
     The /var/nis/NIS+LDAPmapping configuration file contains the
     mapping  between  NIS+  objects, particularly table entries,
     and LDAP entries and attributes. This information  can  come
     from  LDAP,  from  this  file, from the rpc.nisd(1M) command
     line, or from a combination of all three. The values in this
     file  supersede  those  obtained  from  the LDAP server, but
     values from the command line supersede those in the file.

     Each line in the file can be up  to  8191  bytes  long,  not
     counting  the  newline. There can be an indefinite number of
     continuation lines. A continuation is  indicated  by  a  '\'
     (backslash)  in  the  last  position, immediately before the
     newline of a line. Characters are escaped, that is, exempted
     from  special  interpretation, when preceeded by a backslash
     character.

     The '#' (hash) character starts a comment.  White  space  is
     either  ASCII  space  or a horizontal tab. In general, lines
     consist of optional white space, an attribute name, at least
     one white space character, and an attribute value.

EXTENDED DESCRIPTION
  Getting Started
     The    default    rpc.nisd(4)    configuration    file    at
     /etc/default/rpc.nisd    and    the    template    file   at
     /var/nis/NIS+LDAPmapping.template  are  sufficient  for  the
     minimum  NIS+  installation.  The  following assumptions are
     made:

     1.  The  NIS+  standard  directories,  tables,  and   groups
         created  by  nissetup(1M)  or  nisserver(1M)  should  be
         mapped.    However,     the     timezone.org_dir     and
         client_info.org_dir tables should not be mapped.


     2.  The NIS+ objects for which the rpc.nisd is a master  are
         mapped both to and from LDAP.


     3.  Those NIS+ objects for which the rpc.nisd is  a  replica
         are mapped from LDAP.


     4.



SunOS 5.10          Last change: 13 Feb 2003                    1






File Formats                                   NIS+LDAPmapping(4)



         The LDAP server is running on the local machine, and  it
         can be reached at port 389 on the 127.0.0.1 IP address.


     5.  The authentication method is none, meaning that all LDAP
         calls,  whether  for reading or writing, are unauthenti-
         cated. There is no transport layer security.


     6.  The default values for TTLs and LDAP container locations
         and object classes are valid.


     7.  The LDAP server supports RFC 2307bis. You  want  to  use
         the RFC 2307bis object classes and attributes. See NOTES


     8.  The nisplusObject attribute, the  nisplusObjectContainer
         object  class,  and  the  ou=nisPlus container have been
         created.


     9.  You do not need to store or retrieve table entry  owner,
         group owner, entry access rights, or entry object TTL in
         or from LDAP. For  more  information  on  these  pseudo-
         columns,  see  the discussion of zo_owner, and the like,
         in the description of the nisplusLDAPcolumnFromAttribute
         attribute.


     10. NIS+ principal names and RPC  netnames  (the  cname  and
         auth_name  columns,  respectively,  in  the cred.org_dir
         table) should be derived from  the  owner  of  the  cred
         table.  For  example, if the owner is npadm.my.dom.ain.,
         the cname and auth_name values for entries created  from
         LDAP data will be of the form:


         user-or-host.my.dom.ain.


         and


         unix.uid-or-host@my.dom.ain

         respectively.


     If these assumptions are true, you  can  enable  mapping  by
     copying   the   /var/nis/NIS+LDAPmapping.template   file  to
     /var/nis/NIS+LDAPmapping and restart the  rpc.nisd.  If  you



SunOS 5.10          Last change: 13 Feb 2003                    2






File Formats                                   NIS+LDAPmapping(4)



     want  to  either  upload NIS+ data to LDAP, or download LDAP
     data to NIS+, see the  description  of  the  nisplusLDAPini-
     tialUpdateAction attribute on rpc.nisd(4).

     If one or more of the assumptions are false, do the  follow-
     ing:

     1.  To remove mappings, identify the database id of the NIS+
         object that should not be mapped, then delete or comment
         out  the  nisplusLDAPdatabaseIdMapping,   nisplusLDAPen-
         tryTtl,  nisplusLDAPobjectDN,  nisplusLDAPattributeFrom-
         Column,  and  nisplusLDAPcolumnFromAttribute  attributes
         for that database id.

         To add mappings, find an existing  mapping  for  a  NIS+
         object  similar to the one you want to map, and then use
         that mapping as a template to create the  nisplusLDAPda-
         tabaseIdMapping,   nisplusLDAPentryTtl,   nisplusLDAPob-
         jectDN, nisplusLDAPattributeFromColumn, and nisplusLDAP-
         columnFromAttribute  attributes for the new mapping. The
         new mapping must have a unique database id.

         To enable mapping of the timezone or client_info tables,
         consult  your  LDAP  server  documentation  about how to
         create attributes and object classes,  and  set  up  the
         following.  The  following  is LDIF data for ldapadd(1).
         Attribute and object class OIDs are examples only.

         For client_info:


         dn: cn=schema
         changetype: modify
         add: attributetypes
         attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.12.0 \
            NAME 'nisplusClientInfoAttr' \
            DESC 'NIS+ client_info table client column' \
            SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
         attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.12.1 \
            NAME 'nisplusClientInfoInfo' \
            DESC 'NIS+ client_info table info column' \
            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.12.2 \
            NAME 'nisplusClientInfoFlags' \
            DESC 'NIS+ client_info table flags column' \
            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.13.0 \
            NAME 'nisplusClientInfoData' \



SunOS 5.10          Last change: 13 Feb 2003                    3






File Formats                                   NIS+LDAPmapping(4)



            DESC 'NIS+ client_info table data' \
            SUP top STRUCTURAL MUST ( cn ) \
            MAY (nisplusClientInfoAttr $ nisplusClientInfoInfo $ nisplusClientInfoFlags))

         For the ou=ClientInfo container, substitute your  actual
         search base for searchBase):


         dn: ou=ClientInfo,searchBase
         ou: ClientInfo
         objectClass: top
         objectClass: organizationalUnit

         For timezone:


         dn: cn=schema
         changetype: modify
         add: attributetypes
         attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.15.0 NAME 'nisplusTimeZone' \
                   DESC 'tzone column from NIS+ timezone table' \
                   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.16.0 NAME 'nisplusTimeZoneData' \
                   DESC 'NIS+ timezone table data' \
                   SUP top STRUCTURAL MUST ( cn ) \
                   MAY ( nisplusTimeZone $ description ) )

         For the ou=Timezone container:


         dn: ou=Timezone,searchBase
         ou: Timezone
         objectClass: top
         objectClass: organizationalUnit

         Uncomment  the  mapping  attributes  for  timezone   and
         client_info   in  the  mapping  file,  and  restart  the
         rpc.nisd(1M) daemon.


     2.  To disable write mapping, edit  the  nisplusLDAPobjectDN
         value  for  the appropriate database id. Remove the wri-
         teObjectSpec  value,  leaving  only  the  readObjectSpec
         value. Make sure there are no trailing colons.

         To disable  read  mapping,  remove  the  readObjectSpec,
         leaving  the  database  id, two colons, and the writeOb-
         jectSpec value.



SunOS 5.10          Last change: 13 Feb 2003                    4






File Formats                                   NIS+LDAPmapping(4)



     3.  Replicas cannot write-map objects. Remove  disable  read
         mapping,  remove mapping entirely for the relevant data-
         base ids, as described above.


     4.  Change the  preferredServerList  value  to  the  correct
         server address(es) and port(s). If configuration data is
         retrieved fromLDAP,  also  edit  the  nisplusLDAPprefer-
         redServerList value.


     5.  Edit the authenticationMethod  attribute  value  to  the
         authentication  method  that  you want to use. If confi-
         guration  data  is  retrieved  from   LDAP,   edit   the
         nisplusLDAPconfigAuthenticationMethod   value.   If  the
         method is anything other than none,  you  will  need  to
         specify one or more of the following, depending upon the
         method.


         nisplusLDAPconfigProxyUsThe bind-DN to use for authenti-
         nisplusLDAPproxyUser    cation.




         nisplusLDAPconfigProxyPaTheorpassword  or  key  for  the
         nisplusLDAPproxyPasswordbind-DN  and  method.  Make sure
                                 that  the  file  containing  the
                                 password  or  key  is  protected
                                 from  access   by   unauthorized
                                 users.




     To use transport layer security, set nisplusLDAPconfigTLS or
     nisplusLDAPTLS  to ssl, and set nisplusLDAPconfigTLSCertifi-
     cateDBPath or nisplusLDAPTLSCertificateDBPath  to  the  file
     containing  the certificate DB. In order to successfully use
     authentication and transport layer security, the server must
     also support the chosen values.


 6.  To change the TTLs, edit  the  nisplusLDAPentryTtl  for  the
     appropriate database id.

     To change LDAP container locations or object  classes,  edit
     the  nisplusLDAPobjectDN  value for the appropriate database
     id.





SunOS 5.10          Last change: 13 Feb 2003                    5






File Formats                                   NIS+LDAPmapping(4)



 7.  To determine which object classes and  attributes  are  sup-
     ported,  consult  your LDAP server documentation. If you are
     using the iPlanet directory server,  see  idsconfig(1M)  for
     information  to set up RFC 2307bis object classes and attri-
     butes.


 8.  Refer to your LDAP server documentation for  how  to  create
     attributes and object classes, and set up the following:


     dn: cn=schema
     changetype: modify
     add: attributetypes
     attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.1.0 NAME 'nisplusObject' \
               DESC 'An opaque representation of a NIS+ object' \
               SYNTAX 1.3.6.1.4.1.1466.115.121.1.5 SINGLE-VALUE )

     dn: cn=schema
     changetype: modify
     add: objectclasses
     objectclasses: ( 1.3.6.1.4.1.42.2.27.5.42.42.2.0 NAME 'nisplusObjectContainer' \
              SUP top STRUCTURAL DESC 'Abstraction of a NIS+ object' \
              MUST ( cn $ nisplusObject ) )


     ou=nisPlus  is  a  container  assumed  to  reside   at   the
     defaultSearchBase. See rpc.nisd(4). The following LDIF input
     to ldapadd(1) will create the ou=nisPlus container.  Replace
     dc=some,dc=domain with your actual base.


     dn: ou=nisPlus,dc=some,dc=domain
     ou: nisPlus
     objectClass: top
     objectClass: organizationalUnit

     The nisplusObjectContainer,  nisplusObject,  and  ou=nisPlus
     labels  are  suggestions.  If  you  change nisplusObjectCon-
     tainer, or ou=nisPlus, edit  the  mapping  file  to  reflect
     this. To change nisplusObject, for example, to myObject, add
     nisplusObject=myObject to the filterAttrValList and attrVal-
     List  portions  of the readObjectSpec and writeObjectSpec of
     the nisplusLDAPobjectDN  value  for  the  mapping.  See  the
     description of nisplusLDAPobjectDN below.


 9.  Refer to your LDAP server documentation for  how  to  create
     attributes and object classes, and set up the following. The
     following is LDIF data for ldapadd(1).  Attribute and object
     class OIDs are examples only.




SunOS 5.10          Last change: 13 Feb 2003                    6






File Formats                                   NIS+LDAPmapping(4)



     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 ) )

     Edit the mapping file to enable storing entry owner,  group,
     access,   and   TTL  in  LDAP.  The  template  mapping  file
     /var/nis/NIS+LDAPmapping.template has commented-out sections
     for  the passwd and cred database ids that show how this can
     be done.


 10. To  preserve  the  cname  and  auth_name  column  data  when
     cred.org_dir  entries are stored in NIS+, you can create the
     nisplusPrincipalName and nisplusNetname attributes. See your
     LDAP  server  documentation for how to create attributes and
     object classes, and set up the following:


     dn: cn=schema
     changetype: modify
     add: attributetypes
     attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.7.0 NAME 'nisplusPrincipalName' \
               DESC 'NIS+ principal name' \
               EQUALITY caseIgnoreIA5Match SINGLE-VALUE \
               SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
     attributetypes: ( 1.3.6.1.4.1.42.2.27.5.42.42.9.0 NAME 'nisplusNetname' \
               DESC 'Secure RPC netname' \
               EQUALITY caseIgnoreIA5Match SINGLE-VALUE \
               SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

     dn: cn=schema
     changetype: modify



SunOS 5.10          Last change: 13 Feb 2003                    7






File Formats                                   NIS+LDAPmapping(4)



     add: objectclasses
     objectclasses:  ( 1.3.6.1.4.1.42.2.27.5.42.42.10.0 NAME 'nisplusAuthName' \
               SUP top AUXILLIARY DESC 'NIS+ authentication identifiers' \
               MAY ( nisplusPrincipalName $ nisplusNetname ) )

     Edit the mapping file to use  the  new  nisplusPrincipalName
     and  nisplusNetname.  The  template /var/nis/NIS+LDAPmapping
     file  contains  commented-out  sections  that  support   the
     nisplusPrincipalName  and nisplusNetname attributes. See the
     nisplusLDAPobjectDN,   nisplusLDAPattributeFromColumn    and
     nisplusLDAPcolumnFromAttribute   attribute  values  for  the
     credlocal, creduser, and crednode database ids .


  Attributes for Data Mapping
     The following attributes are recognized. Any  values  speci-
     fied  for  these  attributes in the file, including an empty
     value, override values obtained from LDAP.

     There are several attributes that can have multiple  values,
     one  for each database id. Depending on the source, the mul-
     tiple values are specified in the following ways:

     LDAP            Multi-valued attributes,  where  each  value
                     corresponds to one database id.



     File            One line, which may be continued,  for  each
                     value  (database  id).  The line starts with
                     the name of the attribute



     Command          -x option for each value (database id).



     Unless otherwise noted, all elements of the  syntaxes  below
     may  be  surrounded by white space. Separator characters and
     white space must be escaped if they are  part  of  syntactic
     elements.

     nisplusLDAPdatabaseIdMapping

         Maps a database id to a NIS+ object. If the object  name
         is  not  fully  qualified, that is, it does not end in a
         dot,  the   nisplusLDAPbaseDomain   is   appended.   See
         rpc.nisd(4).  There  is  no default value. The syntax of
         the value is:





SunOS 5.10          Last change: 13 Feb 2003                    8






File Formats                                   NIS+LDAPmapping(4)



         databaseId ":" objectspec

         where


         databaseId      Label identifying a  subset  of  a  NIS+
                         object for mapping purposes.




         objectspec      objectname | "[" indexlist "]" tablename



         objectname      The name of  a  NIS+  object  (including
                         tables)



         tablename       The name of a NIS+ table



         indexlist       colspec ["," colspec]



         colspec         colname "=" colvalue



         colname         The name of a column in the table



         colvalue        colvaluestring | \" colvaluestring \"


         The [indexlist]tablename  form  is  intended  for  those
         cases where it is necessary to select a subset of a NIS+
         table. The subset are those NIS+ entries that match  the
         indexlist.  If there are multiple indexed specifications
         for a particular NIS+ table, they are tried in the order
         retrieved  until  one matches. Note that retrieval order
         usually is unspecified for multi-valued LDAP attributes.
         Hence, if using indexed specifications when nisplusLDAP-
         databaseIdMapping is retrieved from LDAP, make sure that
         the subset match is unambiguous.

         If the colvaluestring contains white space or commas, it
         must  either  be  surrounded  by  double  quotes, or the



SunOS 5.10          Last change: 13 Feb 2003                    9






File Formats                                   NIS+LDAPmapping(4)



         special characters must be escaped.Wildcards are allowed
         in the colvaluestring. If the objectname or tablename is
         not fully qualified, the nisplusLDAPbaseDomain value  is
         appended.  If  the  objectname  is  empty  the  value of
         nisplusLDAPbaseDomain is substituted.

         The following example shows how to associate the  passwd
         database id with the passwd.org_dir table:


         passwd:passwd.org_dir

         The following example shows how to associate  the  LOCAL
         entries  in  the  cred.org_dir  table with the credlocal
         database id:


         credlocal:[auth_type=LOCAL]cred.org_dir

         The following example shows  how  to  use  the  creduser
         database  id for those entries in the cred.org_dir table
         that represent credentials (keys) for  users.  That  is,
         they   have   a   netname   (auth_name)   of   the  type
         unix.<numeric-id>@domain.


         creduser:[auth_type="D*",auth_name="unix.[0-9]*"]cred.org_dir



     nisplusLDAPentryTtl

         Establish TTLs for NIS+ entries derived from  LDAP.  The
         syntax of the value is:


         databaseId ":" initialTTLlo ":" initialTTLhi ":" runningTTL


         initialTTLlo            The lower limit for the  initial
                                 TTL  (in  seconds) for data read
                                 from  disk  when  the   rpc.nisd
                                 starts,  or  from LDAP during an
                                 initial      down-load.      See
                                 rpc.nisd(4)  for the description
                                 of the  nisplusLDAPinitialUpdate
                                 attribute.  If initialTTLhi also
                                 is specified,  the  actual  ini-
                                 tialTTL    will    be   randomly
                                 selected from the interval  ini-
                                 tialTTLlo    to    initialTTLhi,
                                 inclusive. If the field is  left



SunOS 5.10          Last change: 13 Feb 2003                   10






File Formats                                   NIS+LDAPmapping(4)



                                 empty,  it  yields  the  default
                                 value of 1800 seconds.




         initialTTLhi            The upper limit for the  initial
                                 TTL.  If left empty, it defaults
                                 to 5400.



         runningTTL              The TTL (in  seconds)  for  data
                                 retrieved  from  LDAP  while the
                                 rpc.nisd is running.  Leave  the
                                 field   empty   to   obtain  the
                                 default value of 3600 seconds.


         If there is no specification of TTLs  for  a  particular
         databaseId,  the  default  values  are used. If the ini-
         tialTTLlo and initialTTLhi  have  the  same  value,  the
         effect  will  be  that all data known to the rpc.nisd at
         startup times out at the same time.  Depending  on  NIS+
         data   lookup  patterns,  this  could  cause  spikes  in
         rpc.nisd-to-LDAP traffic. In order to  avoid  that,  you
         can  specify  different  initialTTLlo  and  initialTTLhi
         values and obtain a spread in  initial  TTLs.  The  NIS+
         object  TTL  is  a separate and distinct entity used for
         other  purposes,  notably  the  TTL  of  NIS+  directory
         objects  in  the  shared  directory cache managed by the
         nis_cachemgr(1M).  There is no  connection  between  the
         nisplusLDAPentryTtl  and  object  TTL  values for a NIS+
         object.

         The following example shows how to specify that  entries
         in  the  NIS+ hosts table read from LDAP should be valid
         for four hours. When the  rpc.nisd  restarts,  the  disk
         database  entries  are  valid  for between two and three
         hours.


         hosts:7200:10800:14400


     nisplusLDAPobjectDN

         Specifies the connection between a  databaseId  and  the
         LDAP directory. The syntax of the value is:


         databaseId ":" objectDN *( ";" objectDN )



SunOS 5.10          Last change: 13 Feb 2003                   11






File Formats                                   NIS+LDAPmapping(4)



         objectDN                readObjectSpec     [":"[writeOb-
                                 jectSpec]]




         readObjectSpec          [baseAndScope    [filterAttrVal-
                                 List]]



         writeObjectSpec         [baseAndScope [attrValList  [":"
                                 deleteDisp]]]



         baseAndScope            [baseDN] ["?" [scope]]



         filterAttrValList       ["?" [filter | attrValList]]



         scope                   "base" | "one" | "sub"



         attrValList             attribute "=" value *("," attri-
                                 bute "=" value)



         deleteDisp              "always" | perDbId | "never"



         perDbId                 "dbid" "=" delDatabaseId



         delDatabaseId           database id per nisplusLDAPdata-
                                 baseIdMapping above.


         The baseDN defaults to the  value  of  the  defaultSear-
         chBase  attribute.  If  the  baseDN ends in a comma, the
         defaultSearchBase is appended.

         scope defaults to one. It has no meaning and is  ignored
         in  a  writeObjectSpec.  The  filter  is  an LDAP search
         filter. There is no default value. The attrValList is  a



SunOS 5.10          Last change: 13 Feb 2003                   12






File Formats                                   NIS+LDAPmapping(4)



         list  of  attribute and value pairs. There is no default
         value. As a convenience, if an attrValList is  specified
         in  a readObjectSpec, it is converted to a search filter
         by ANDing together the attributes and values. For  exam-
         ple, the attribute and value list:


         objectClass=posixAccount,objectClass=shadowAccount

         is converted to the filter:


         (&(objectClass=posixAccount)(objectClass=shadowAccount))

         Entry objects are mapped by means of the relevant  table
         mapping  rules in the nisplusLDAPattributeFromColumn and
         nisplusLDAPcolumnFromAttribute attributes. Entry objects
         do not have explicit nisplusLDAPobjectDN attributes.

         If a writeObjectSpec is omitted, and there is no  trail-
         ing  colon,  the effect is to not attempt writes at all.
         If there is a trailing colon after  the  readObjectSpec,
         it  is  implied  that the writeObjectSpec is the same as
         the readObjectSpec.

         Note that writes only are attempted by a  master  server
         for the mapped NIS+ object. Replicas silently ignore any
         writeObjectSpec:s.

         The deleteDisp specifies how NIS+ object deletion should
         be  reflected  in  LDAP. The following values are recog-
         nized:


         always                  Always  attempt  to  remove  the
                                 LDAP entry. This is the default.



         dbid=delDatabaseId      Set the mapped entries to values
                                 specified  by the nisplusLDAPat-
                                 tributeFromColumn      attribute
                                 values  for  delDatabaseId. This
                                 only   makes   sense   for   the
                                 databaseId:s   corresponding  to
                                 NIS+  tables   or   subsets   of
                                 tables.  For other NIS+ objects,
                                 if  dbid=  is   specified,   the
                                 action  will  be  always. In the
                                 delDatabaseId, deletion of indi-
                                 vidual  attributes can be speci-
                                 fied by leaving the RHS of the =



SunOS 5.10          Last change: 13 Feb 2003                   13






File Formats                                   NIS+LDAPmapping(4)



                                 in  a  mapping  rule  empty. The
                                 delDatabaseId  rule  set  should
                                 specify  a  dn.  Otherwise,  the
                                 rpc.nisd might try to  derive  a
                                 dn  by performing an LDAP lookup
                                 on  the  attributes  and  values
                                 from  the rule set, quite possi-
                                 bly with unexpected results.



         never                   Upon NIS+ object  deletion,  the
                                 corresponding  LDAP data is left
                                 unchanged. If the NIS+ object is
                                 an  entry,  this  means that the
                                 only effect of the  deletion  is
                                 to  temporarily  remove  it from
                                 the rpc.nisd's cache.


         The following is an example of how to  get  the  ipnodes
         table  entries  from  the  ou=Hosts  container under the
         default search base, and write to the same place.


         ipnodes:ou=Hosts,?one?objectClass=ipHost:

         The following example shows how  to  obtain  the  passwd
         table  entries  from  the ou=People containers under the
         default search base, and also from dc=another,dc=domain.
         The  latter  is  an  example  of  the  equivalent of and
         replacement for a NIS+ table path. Writes should only be
         attempted  to  the  first objectDN. NIS+ entry deletions
         for the first objectDN are not reflected in LDAP:



         passwd:ou=People,?one?objectClass=shadowAccount,\
                         objectClass=posixAccount::never;\
                 ou=People,dc=another,dc=domain,?one?\
                         objectClass=shadowAccount,\
                         objectClass=posixAccount

         The following example shows how  to  obtain  the  passwd
         table  entries  from  the  ou=People container under the
         default search base. Upon NIS+  entry  deletion,  update
         the LDAP entry per the passwd_delete database id:


         passwd:ou=People,?one?objectClass=shadowAccount,\
                         objectClass=posixAccount::\
                 dbid=passwd_delete



SunOS 5.10          Last change: 13 Feb 2003                   14






File Formats                                   NIS+LDAPmapping(4)



         where nisplusLDAPattributeFromColumn  for  passwd_delete
         could be:


         passwd_delete:\
                 dn=("uid=%s,", name), \
                 uid=name, \
                 userPassword=("*NP*"), \
                 uidNumber=uid, \
                 gidNumber=gid, \
                 gecos=("INVALID: %s", gcos), \
                 homeDirectory=home, \
                 loginShell=("/bin/false"), \
                 (shadowLastChange,shadowMin,shadowMax, \
                  shadowWarning, shadowInactive,shadowExpire, \
                  shadowFlag)=(shadow, ":"), \
                 nisplusEntryOwner=zo_owner, \
                 nisplusEntryGroup=zo_group, \
                 nisplusEntryAccess=zo_access


     nisplusLDAPcolumnFromAttribute

          Specifies how a NIS+ table and column value is  derived
         from LDAP attribute values. The syntax is:


         databaseId ":" colattrspec *("," colattrspec)

         The format of colattrspec is shown below in the  discus-
         sion of the column and attribute conversion syntax.

         The following is an example of how to map by direct copy
         and  assignment  the value of the ipHostNumber attribute
         to the addr column:


         addr=ipHostNumber

         Formats for the column and attribute  conversion  syntax
         are  discussed  below,  including  examples  of  complex
         attribute to column conversions..

         There are four special pseudo-columns that are  used  to
         indicate non-column entry object data:


         zo_owner        The NIS+ principal that owns  the  entry
                         object.  By  default, the zo_owner value
                         is inherited from the table.





SunOS 5.10          Last change: 13 Feb 2003                   15






File Formats                                   NIS+LDAPmapping(4)



         zo_group        The  NIS+  group  owner  of  the   entry
                         object.  By  default, the zo_group value
                         is inherited from the table.



         zo_access       The NIS+ access  rights  to  the  entry.
                         Table  column  rights  are stored in the
                         table. By default, the  zo_access  value
                         is inherited from the table.



         zo_ttl          The NIS+ TTL for the entry. This is  not
                         the TTL for the entry when cached by the
                         rpc.nisd. By default, the  zo_ttl  value
                         is inherited from the table.


         The  default  /var/nis/NIS+LDAPmapping.template  assumes
         the existence of the following corresponding LDAP attri-
         butes in the containers for the passwd and cred tables:


                    nisplusEntryOwner

                    nisplusEntryGroup

                    nisplusEntryAccess

                    nisplusEntryTtl
     These attributes are not part of any schema specified in  an
     RFC or similar document. They must be created if they are to
     be used. They are assumed to belong to the as  nisplusEntry-
     Data  object  class, and they contain a single string value.
     The format of this string is private, and subject to  change
     without notice.

     For most tables, the non-column entry data can be  inherited
     from  the containing table, and the pseudo-columns should be
     left unmapped. Notable exceptions are the  passwd  and  cred
     tables,  if individual users have access to modify their own
     passwd and cred entries.  This would usually be the case  if
     the site is not running the rpc.nispasswdd(1M) daemon.


 nisplusLDAPattributeFromColumn

     Specifies how an LDAP attribute value is derived  from  NIS+
     table and column values. The syntax is:





SunOS 5.10          Last change: 13 Feb 2003                   16






File Formats                                   NIS+LDAPmapping(4)



     databaseId ":" colattrspec *("," colattrspec )

     The format of colattrspec is shown below in  the  discussion
     of the column and attribute conversion syntax.

     As a special case, if the dn attribute value derived from  a
     colattrspec  ends in a comma (','), the baseDN from the wri-
     teObjectSpec is appended.

     The following is an example of how to map the value  of  the
     addr column to the ipHostNumber attribute by direct copy and
     assignment:


     ipHostNumber=addr

     All relevant attributes, including the dn,  must  be  speci-
     fied.  Non-column  entry  object data can be mapped as noted
     under  the  discussion   of   nisplusLDAPcolumnFromAttribute
     above.



  Column and Attribute Conversion Syntax
     The general format of a colattrspec is:

     colattrspec     = lhs "=" rhs
     lhs             = lval | namespeclist
     rhs             = rval | [namespec]
     namespeclist    = namespec | "(" namespec *("," namespec) ")"


     The lval and rval syntax are defined below  at  Values.  The
     format of a namespec is:

     namespec                ["ldap:"] attrspec [searchTriple]  |
                             ["nis+:"] colspec  [objectspec]



     colspec                 column | "(" column ")"



     attrspec                attribute | "(" attribute ")"



     searchTriple            ":"  [baseDN]  ["?"   [scope]   ["?"
                             [filter]]]





SunOS 5.10          Last change: 13 Feb 2003                   17






File Formats                                   NIS+LDAPmapping(4)



     baseDN                  Base DN for search



     filter                  LDAP search filter



     objectspec              objectspec   per    nisplusLDAPdata-
                             baseIdMapping



     The repository specification in a namespec defaults as  fol-
     lows:

       o  For assignments to a column, nis+: on the LHS, ldap: on
          the  RHS.  NIS+ column values on the RHS are those that
          exist before the NIS+ entry is modified.

       o  For assignments to an  attribute,  ldap:  on  the  LHS,
          nis+:  on the RHS. LDAP attribute values on the RHS are
          those that exist before the LDAP entry is modified.


     Enclosing  the  column  or  attribute  name  in  parenthesis
     denotes  a  list  of  column or attribute values. For attri-
     butes, the meaning is the list of  all  attributes  of  that
     name, and the interpretation depends on the context. See the
     discussion at Values. This  list  specification  is  ignored
     when a searchTriple or objectspec is supplied.

     For columns, the (colname) syntax is used  to  map  multiple
     attribute instances to multiple NIS+ entries.

     The searchTriple can be used to specify an attribute from  a
     location  other  than the read or write target. The defaults
     are as follows:

     baseDN          If  omitted,  the  default  is  the  current
                     objectDN. If the baseDN ends in a comma, the
                     value of the defaultSearchBase attribute  is
                     appended.



     scope           one



     filter          Empty




SunOS 5.10          Last change: 13 Feb 2003                   18






File Formats                                   NIS+LDAPmapping(4)



     Similarly, the objectspec can be used to  specify  a  column
     value  from a NIS+ table other than the one implicitly indi-
     cated by the databaseId. If searchTriple  or  objectspec  is
     explicitly specified in a namespec, the retrieval or assign-
     ment, whether from or to LDAP or NIS+, is performed  without
     checking  if  read  and  write are enabled for the LDAP con-
     tainer or NIS+ table.

     Omitting the namespec in an rhs is only allowed if  the  lhs
     is  one  or  more  attributes.  The  effect is to delete the
     specified attribute(s). In all other situations, an  omitted
     namespec means that the rule is ignored.

     The filter can be a value. See Values. For example, to  find
     the ipHostNumber using the cn, you could specify the follow-
     ing in the filter field:

     ldap:ipHostNumber:?one?("cn=%s", (cname, "%s.*"))


     In order to remove ambiguity, the unmodified value of a sin-
     gle  column  or attribute must be specified as the following
     when used in the filter field.

     ("%s", namespec)


     If the filter is not specified, the scope will be base,  and
     the  baseDN  is  assumed to be the DN of the entry that con-
     tains the attribute to be retrieved or modified. To use pre-
     viously  existing  column or attribute values in the mapping
     rules requires a lookup to  find  those  values.  Obviously,
     this  will add to the time required to perform the modifica-
     tion. Also, there is a window between the time when a  value
     is  retrieved,  and then slightly later, stored back. If the
     values have changed in the mean  time,  the  change  may  be
     overwritten.

     When colattrspecs are grouped into rule sets, in  the  value
     of  a  nisplusLDAPcolumnFromAttribute or nisplusLDAPattribu-
     teFromColumn attribute, the evaluation of  the  colattrspecs
     proceed in the listed order. However, evaluation may be done
     in parallel for multiple colattrspecs. If there is an  error
     when  evaluating  a certain colattrspec, including retrieval
     or assignment of entry or column values, the extent to which
     the other colattrspec rules are evaluated is unspecified

  Wildcards
     Where wildcard support is available, it is of the  following
     limited form:





SunOS 5.10          Last change: 13 Feb 2003                   19






File Formats                                   NIS+LDAPmapping(4)



     *        Matches any number of characters.



     [x]      Matches the character x.



     [x-y]    Matches  any  character  in  the  range  x  to   y,
              inclusive..



     Combinations such  as  [a-cA-C0123]  are  also  allowed.This
     example would match any one of a, b, c, A, B, C, 0, 1, 2, or
     3.

  Substring Extraction
     substringextract = "(" namespec "," matchspec ")"
     name             = column or attribute name
     matchspec        =


     The matchspec is a string like the sscanf(3C) format string,
     except  that  there  may  be at most one format specifier, a
     single %s. The output value of the substringextract  is  the
     substring matching the location of the %s.

     If there is no %s in the formatstring, it must instead be  a
     single  character,  which is assumed to be a field separator
     for the namespec. The output values are  the  field  values.
     Wild  cards  are supported. If there is no match, the output
     value is the empty string, "".

     For  example,  if   the   column   cname   has   the   value
     user.some.domain.name., the value of the expression:

     (cname, "%s.*")


     is user, which can be used to extract the user name  from  a
     NIS+ principal name.

     Similarly, use this expression to extract the third  of  the
     colon-separated fields of the shadow column:

     (shadow, "*:*:%s:*")


     This form can be used to extract all of the  shadow  fields.
     However, a simpler way to specify that special case is:




SunOS 5.10          Last change: 13 Feb 2003                   20






File Formats                                   NIS+LDAPmapping(4)



     (shadow, ":")



  Values
     lval           = "(" formatspec "," namespec *("," namespec) ")"
     rval           = "(" formatspec ["," namelist ["," elide] ] ")"
     namelist       = name_or_sse *( "," name_or_sse)
     name_or_sse    = namespec | substringextract
     formatspec     =
     formatstring   = A string combining text and % field specifications
     elide          =
     singlechar     = Any character


     This syntax is used to produce rval values that  incorporate
     column or attribute values, in a manner like sprintf(3C), or
     to perform assignments to lval like sscanf(3C).  One  impor-
     tant  restriction is that the format specifications,% plus a
     single    character,    use    the     designations     from
     ber_printf(3LDAP).  Thus,  while  %s  is  used  to extract a
     string value, %i causes  BER  conversion  from  an  integer.
     Formats  other  than %s, for instance, %i, are only meaning-
     fully defined in simple format  strings  without  any  other
     text.

     The following ber_printf() format characters are recognized:

     b  i  B  n  o  s


     If there are too few format specifiers,  the  format  string
     may be repeated as needed.

     When used as an lval, there  is  a  combination  of  pattern
     matching  and  assignment,  possibly  to multiple columns or
     attributes.

     For example, in an assignment to an attribute, if the  value
     of the addr column is 1.2.3.4, the rval:

     ("ipNetworkNumber=%s,", addr)


     produces the value ipNetworkNumber=1.2.3.4,, while:

     ("(%s,%s,%s)", host, user, domain)


     results in (assuming host="xyzzy", user="-", domain="x.y.z")
     "(xyzzy,-,x.y.z)".  The elide character feature is used with
     attribute lists. For example:



SunOS 5.10          Last change: 13 Feb 2003                   21






File Formats                                   NIS+LDAPmapping(4)



     ("%s,", (mgrprfc822mailmember), ",")


     concatenates  all  mgrprfc822mailmember  values   into   one
     comma-separated  string,  and then elides the final trailing
     comma. Thus, for

     mgrprfc822mailmember=usera
     mgrprfc822mailmember=userb
     mgrprfc822mailmember=userc


     the value would be usera,userb,userc.

     If the NIS+ column intval is in binary format, that is,  the
     B  column  flag  is  set,  and it is to be interpreted as an
     integer, the following:

     ("%i", intval)


     produces a value suitable  for  assignment  to  an  integer-
     valued attribute.

     The nisPublicKey attribute encodes the  algorithm  type  and
     number  (equivalent  to the auth_type column) and the public
     key as a single string such as {dh192-0}xxxxxxxx (public key
     truncated  for  clarity).  The  following  will  extract the
     corresponding
      auth_type and public_data values:

     ("{%s}%s", auth_type, public_data)


     As a special case, to combine an LHS extraction with an  RHS
     implicit list creates multiple entries and values. For exam-
     ple,

     ("(%s,%s,%s)", host, user, domain)=(nisNetgroupTriple)


     creates one NIS+ entry for each nisNetgroupTriple value.

  Assignments
     The assignment syntax, also found at  Column  and  Attribute
     Conversion Syntax, is as follows:

     colattrspec    = lhs "=" rhs
     lhs            = lval | namespeclist
     rhs            = rval | namespec
     namespeclist   = namespec | "(" namespec *("," namespec) ")"




SunOS 5.10          Last change: 13 Feb 2003                   22






File Formats                                   NIS+LDAPmapping(4)



     By using the syntax defined above, the  general  form  of  a
     simple  assignment,  which is a one-to-one mapping of column
     to attribute, would be:

     ("%s", colname)=("%s", attrname)


     As a convenient short-hand, this can also be written as:

     colname=attrname


     A  list  specification,  which  is  a   name   enclosed   in
     parenthesis,  can  be used to make many-to-many assignments.
     The expression:

     (colname)=(attrname)


     where there are multiple instances of attrname, creates  one
     NIS+  entry  for each such instance, differentiated by their
     colname values. The  following  combinations  of  lists  are
     allowed, but they are not particularly useful:

     (attrname)=(colname)    Equivalent to attrname=colname



     attrname=(colname)      Equivalent to attrname=colname



     (colname)=attrname      Equivalent to colname=attrname



     colname=(attrname)      Equivalent to colname=attrname



     If a multi-valued RHS is assigned to  a  single-valued  LHS,
     the  LHS  value  will be the first of the RHS values. If the
     RHS is an attribute list, the first attribute is  the  first
     one returned by the LDAP server when queried. Otherwise, the
     definition of "first" is implementation dependent.

     Finally, the LHS might be an explicit  list  of  columns  or
     attributes, such as:

     (name1,name2,name3)





SunOS 5.10          Last change: 13 Feb 2003                   23






File Formats                                   NIS+LDAPmapping(4)



     If the RHS is single-valued, this assigns the RHS  value  to
     all  entities  in  the list. If the RHS is multi-valued, the
     first value is assigned to the first entity of the list, the
     second  value to the second entity, and so on. Excess values
     or entities are silently ignored.

EXAMPLES
     Example 1: Assigning an Attribute Value to a Column

     The following example illustrates how to assign the value of
     the ipHostNumber attribute to the addr column

     addr=ipHostNumber



     Example 2: Creating Multiple NIS+ Entries from  Multi-Valued
     LDAP Attributes

     An LDAP entry with:

     cn=name1
     cn=name2
     cn=name3


     and the following assignments:

     cname=cn
     (name)=(cn


     creates three NIS+ entries (other attributes/columns omitted
     for clarity):

     cname=name1, name=name1
     cname=name1, name=name2
     cname=name1, name=name3


     Example 3: Assigning String Constants

     The following expression sets the auth_type column to LOCAL:

     auth_type=("LOCAL")


     Example 4: Splitting Column Values  to  Multi-Valued  Attri-
     butes

     The expansion column  contains  a  comma-separated  list  of
     alias member names. In the following example, the expression



SunOS 5.10          Last change: 13 Feb 2003                   24






File Formats                                   NIS+LDAPmapping(4)



     assigns  each  such  member   name   to   an   instance   of
     mgrprfc822mailmember:

     (mgrprfc822mailmember)=(expansion, ",")


     Example 5: Splitting Column Values to Multiple Attributes

     The shadow column contains a colon-separated list of fields.
     The  following  assigns the value of the first field to sha-
     dowLastChange, the value of the second field  to  shadowMin,
     and so forth.

     (shadowLastChange,shadowMin,shadowMax,shadowWarning,\
            shadowInactive,shadowExpire,shadowFlag)=(shadow, ":")


FILES
     /var/nis/NIS+LDAPmapping

         Default mapping file used by rpc.nisd(1M).



     /var/nis/NIS+LDAPmapping.template

         Template file covering the standard NIS+ directories and
         tables.



ATTRIBUTES
     See attributes(5) for descriptions of the  following  attri-
     butes:

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Availability                | SUNWnisr                    |
    |_____________________________|_____________________________|
    | Interface Stability         | Obsolete                    |
    |_____________________________|_____________________________|


SEE ALSO
     nisldapmaptest(1M),       nisserver(1M),       nissetup(1M),
     rpc.nisd(1M), ber_printf(3LDAP), rpc.nisd(4), attributes(5)

     System Administration Guide: Naming and  Directory  Services
     (DNS, NIS, and LDAP)





SunOS 5.10          Last change: 13 Feb 2003                   25






File Formats                                   NIS+LDAPmapping(4)



NOTES
     RFC 2307bis is an IETF informational document in draft stage
     that defines an approach for using LDAP as a naming service.




















































SunOS 5.10          Last change: 13 Feb 2003                   26





Man(1) output converted with man2html and wrapped by fishsponge

This page was generated on Wed Sep 12 11:27:27 GMT 2007

Your favourite pages:

No pages logged yet.
Trying to save cookie...

Top 10 most popular pages:

sqlite3 man page (5334 hits)
(openSUSE 10.2)

svn man page (5208 hits)
(FreeBSD 6.2)

adv_cap_autoneg man page (4870 hits)
(Solaris 10 11_06)

CPAN man page (4607 hits)
(Suse Linux 10.1)

ssh man page (4342 hits)
(Suse Linux 10.1)

ssh-socks5-proxy-connect man page (2878 hits)
(Solaris 10 11_06)

netcat man page (2717 hits)
(Suse Linux 10.1)

pprosetup man page (2489 hits)
(Solaris 10 11_06)

startproc man page (2471 hits)
(Suse Linux 10.1)

signal man page (2408 hits)
(Suse Linux 10.1)

Useful Links

Go Back

Visitor Statistics


Valid XHTML 1.0 Transitional     Valid CSS!

Partners: Cambridge Plus :: PYRENEES ACTIVITY HOLIDAYS :: Circuit Design, Bedfordshire :: <Link Available>
Unix Man Pages / Linux Man Pages :: HiFi Forum :: SIP VoIP Phone & Provider Reviews :: UNIX/Linux Forum Archives

More info on advertising on Unix/Linux Forum