Sun Directory Services 3.1 User's Guide

NIS Parameters

The NIS_MAPS definition contains a list of all the NIS maps displayed in Deja. The parameters for each map are specified in a number of definitions. Map definitions can be created by hand, or by using the dejasync command line utility. See "Adding a NIS Map to Deja using dejasync" for information. See also Appendix B, dejasync Command Reference, or the dejasync(1M) manpage. For each map listed in the in the NIS_MAPS definition in the Deja.properties file, dejasync gets the NIS_FILTER, NIS_DOMAIN, NIS_ROOT, NIS_NAMINGATTR and NIS_OCLASS tokens from the nis.mapping(4) file, and copies them to the map definition in the Deja.properties file. If the tokens already exist in the Deja.properties file they are updated by dejasync.


NIS_MAPS

Specifies the list of maps available in Deja. Each map name is followed by a semicolon and the label that appears in the Map Name option button of the NIS Search, Create or Modify panels. You can create a new map that is not present in the nis.mapping file. The syntax is:


NIS_MAPS= map.name;map_label, map.name;map_label, ...

NIS_FILTER.map.name

Specifies the filter that is used in the NIS Search panel. This definition is automatically generated if you use the dejasync utility.


NIS_DOMAIN.map.name

Specifies the label that appears in the NIS Create, Modify and Search panels. It shows to which domain the NIS map applies. This definition is automatically generated if you use the dejasync utility.


NIS_NAMINGATTR.map.name

Specifies the naming attributes that are available in the NIS Create panel. This is a comma delimited list. This definition is automatically generated if you use the dejasync utility.


NIS_ROOT.map.name

Specifies the DN of the root entry used for NIS searches. It is also the default parent entry displayed in the NIS Create panel. This definition is automatically generated if you use the dejasync utility.


NIS_OCLASS.map.name

Specifies the default object classes that are added to an entry definition in the NIS Create Panel. This is a comma delimited list. This definition is automatically generated if you use the dejasync utility.


NIS_LIST.map.name

Contains names of the attributes and header labels for the NIS search results table. The syntax is:


NIS_LIST.map.name= attribute;header_label, attribute;header_label, ...

NIS_ADD.map.name

Specifies labels and syntax for attributes in the NIS Create panel. The syntax is:


NIS_ADD.map.name= attribute;label;syntax, attribute;label;syntax, ...

Where syntax is one of the four basic input types (int, string, crypt and ipaddr). If a syntax isn't specified, the default value, string, is used. Specifying a syntax is useful to constrain user input:

  • crypt is a text field where each typed character is replaced with *.

  • string is a text field that accepts any character.

  • int is a text field that accepts only integer numbers.

  • ipaddr consists of four int fields, in the format int.int.int.int.


NIS_LIST.default

Contains the names of the attributes listed in NIS search results table if NIS_LIST is not defined for a map.

Adding a NIS Map to Deja using dejasync

For information about dejasync, see Appendix B, dejasync Command Reference, or the dejasync(1M) manpage. To add a NIS map to Deja from the nis.mapping file using dejasync:

  1. Login as root or become superuser on the directory server.

  2. Add the name of the map, and the label you want to be used in the NIS Maps option button, to the NIS_MAPS definition.

    The map must be defined in the nis.mapping file. For example to add the ethers.byname map to Deja using the label Ethers, the NIS_MAPS definition will look like this:


    NIS_MAPS= ethers.byname;Ethers,
    passwd.byname;NIS_MAP_USERS_CHOICE,
    mail.aliases;NIS_MAP_ALIASES_CHOICE,
    hosts.byname;NIS_MAP_HOSTS_CHOICE,
    group.byname;NIS_MAP_GROUPS_CHOICE

  3. Run dejasync by typing:


    prompt# /opt/SUNWconn/ldap/sbin/dejasync -d Deja_properties_directory
    -n NIS_mapping_file
    

    Where:

    Deja_properties_directory specifies the directory containing the Deja.properties file. By default this is /opt/SUNWconn/ldap/html.

    NIS_mapping_file specifies the filename of the NIS mapping file. By default this is /etc/opt/SUNWconn/ldap/current/mapping/nis.mapping.

    The dejasync utility reads the map declarations in NIS_MAPS, reads the definitions from the nis.mapping file, and updates or adds the corresponding map definitions to the Deja.properties file.

    For the example, the following map definition is added at the end of the Deja.properties file:


    NIS_OCLASS.ethers.byname= ieee802Device
    NIS_FILTER.ethers.byname=
    (&(objectClass=ieee802Device)(cn=$NIS_KEY))
    NIS_NAMINGATTR.ethers.byname=cn
    NIS_ROOT.ethers.byname=dc=xyz,dc=com
    NIS_DOMAIN.ethers.byname=xyz.com

  4. Optionally add NIS_LIST and NIS_ADD definitions for the new map.

    Exit from Deja and restart it to use the new map.

    For the example, the following definitions are added for NIS_LIST and NIS_ADD:


    NIS_LIST.ethers.byname=cn;Host Name, macAddress;Ethernet Address,
    description;Comments
    NIS_ADD.ethers.byname=cn;Host Name, macAddress;Ethernet Address,
    description;Comments


    Example A-6 Default NIS Map Definitions

    #
    # list of supported maps
    #
    NIS_MAPS=passwd.byname;NIS_MAP_USERS_CHOICE,
    mail.aliases;NIS_MAP_ALIASES_CHOICE, hosts.byname;NIS_MAP_HOSTS_CHOICE,
    group.byname;NIS_MAP_GROUPS_CHOICE
    #
    # passwd map
    #
    NIS_FILTER.passwd.byname= (&(objectclass=posixAccount)(uid=$NIS_KEY))
    NIS_DOMAIN.passwd.byname= xyz_users.com
    NIS_NAMINGATTR.passwd.byname=cn
    NIS_ROOT.passwd.byname=   dc=xyz_users,dc=com
    NIS_OCLASS.passwd.byname= posixaccount,person
    NIS_LIST.passwd.byname=cn;NIS_USER_CN_ATTR_LABEL, uid;NIS_UID_ATTR_LABEL,
    uidNumber;NIS_UIDNUMBER_ATTR_LABEL, gidNumber;NIS_GIDNUMBER_ATTR_LABEL,
    homeDirectory;NIS_HOMEDIRECTORY_ATTR_LABEL
    NIS_ADD.passwd.byname=cn;NIS_USER_CN_ATTR_LABEL, sn;NIS_SN_ATTR_LABEL,
    uid;NIS_UID_ATTR_LABEL, uidNumber;NIS_UIDNUMBER_ATTR_LABEL;int,
    gidNumber;NIS_GIDNUMBER_ATTR_LABEL;int,
    homeDirectory;NIS_HOMEDIRECTORY_ATTR_LABEL,
    userPassword;NIS_USERPASSWORD_ATTR_LABEL;crypt,
    loginShell;NIS_LOGINSHELL_ATTR_LABEL, description;NIS_DESCRIPTION_ATTR_LABEL
    #
    # alias map
    #
    NIS_FILTER.mail.aliases= (&(objectclass=nisMailAlias)(cn=$NIS_KEY))
    NIS_DOMAIN.mail.aliases= xyz_aliases.com
    NIS_NAMINGATTR.mail.aliases=cn
    NIS_ROOT.mail.aliases=   dc=xyz_aliases,dc=com
    NIS_OCLASS.mail.aliases= nismailalias
    NIS_LIST.mail.aliases=   cn;NIS_ALIAS_CN_ATTR_LABEL,
    rfc822mailMember;NIS_RFC822MAILMEMBER_ATTR_LABEL
    NIS_ADD.mail.aliases=    cn;NIS_ALIAS_CN_ATTR_LABEL,
    rfc822mailMember;NIS_RFC822MAILMEMBER_ATTR_LABEL
    #
    # host map
    #
    NIS_FILTER.hosts.byname= (&(objectclass=ipHost)(cn=$NIS_KEY))
    NIS_DOMAIN.hosts.byname= xyz_hosts.com
    NIS_NAMINGATTR.hosts.byname=cn
    NIS_ROOT.hosts.byname=   dc=xyz_hosts,dc=com
    NIS_OCLASS.hosts.byname= ipHost
    NIS_LIST.hosts.byname=   cn;NIS_HOST_CN_ATTR_LABEL,
    ipHostNumber;NIS_IPHOSTNUMBER_ATTR_LABEL, macaddress;NIS_MACADDRESS_ATTR_LABEL
    NIS_ADD.hosts.byname=    cn;NIS_HOST_CN_ATTR_LABEL,
    ipHostNumber;NIS_IPHOSTNUMBER_ATTR_LABEL;ipaddr,
    macaddress;NIS_MACADDRESS_ATTR_LABEL, l;NIS_L_ATTR_LABEL
    #
    # group map
    #
    NIS_FILTER.group.byname= (&(objectclass=posixGroup)(cn=$NIS_KEY))
    NIS_DOMAIN.group.byname= xyz_groups.com
    NIS_NAMINGATTR.group.byname=cn
    NIS_ROOT.group.byname=   dc=xyz_groups,dc=com
    NIS_OCLASS.group.byname= posixGroup
    NIS_LIST.group.byname=   cn;NIS_GROUP_CN_ATTR_LABEL,
    gidNumber;NIS_GIDNUMBER_ATTR_LABEL, memberUid;NIS_MEMBERUID_ATTR_LABEL
    NIS_ADD.group.byname=    cn;NIS_GROUP_CN_ATTR_LABEL,
    gidNumber;NIS_GIDNUMBER_ATTR_LABEL;int, memberUid;NIS_MEMBERUID_ATTR_LABEL
    
    NIS_LIST.default=        cn;NIS_CN_ATTR_LABEL