FILES(7P)                                                            FILES(7P)


NAME
     files - local files name service parser library

SYNOPSIS
     /var/ns/lib/libns_files.so

DESCRIPTION
     The files client library parses traditional local name service
     configuration files such as /etc/passwd and makes the data available
     through the nsd(1M) filesystem.  This library is meant to be used only by
     the nsd(1M) daemon to efficiently access local name service data.

     The library /var/ns/lib/libns_files.so is opened by the nsd(1M) daemon
     when files is listed as the protocol for some map in a nsswitch.conf
     file.

     Extended attributes in the nsswitch.conf file can be used to control the
     behavior of the files library.  Extended attributes are simply lists of
     key/value pairs attached to each object in the nsd filesystem.  The
     attributes supported in this library are:

     compat
          The compat attribute is only used for the password file.  This
          attribute specifies that lines beginning with +/- represent entries
          supported in later libraries and results in a recursive call into
          nsd.  When the directive [notfound=return] follows this line then
          entries which are not in the local password file, or where there is
          no +/- entry which matches will fail.  This allows the historic
          behavior at the cost of performance.  To get the same behavior from
          previous OS releases use the following line for the password entry:

               passwd: files(compat) [notfound=return] nis

     library_compat
          The library_compat attribute is set when a entry is generated from a
          +/- compat request.   Similar to the library attribute, it will be
          set to the name of the library that the compat information was
          returned from.

     domain
          The domain attribute determines the path used to find the source
          file.  This attribute is typically inherited from the daemon
          depending on the nsswitch.conf ` file that is being read.  Given the
          configuration file /var/ns/domains/DOMAINNAME/nsswitch.conf the
          attribute "domain" is set to DOMAINNAME.  Given a domain DOMAINNAME
          the library would open the file /var/ns/domains/DOMAINNAME/FILE
          where file is the tradition file name for each table.  If a table
          does not match one of the traditional files then the table name
          itself is used for the file name.  If the domain attribute is unset
          then the file /etc/FILE would be used.  See the information about
          the table and file attributes below.  A client system can be a
          member of multiple domains by including multiple instances of the


          files keyword in the nsswitch.conf file like:

               hosts: files(domain=engr) files(domain=corp)

     file The file attribute overrides the domain and table attributes to set
          the name of the file to be opened.  If the file begins with a
          leading '/' then that file is simply opened.  If not, then the
          contents of this attribute are appended to the directory name --
          either /etc/ for the default domain, or /var/ns/domains/DOMAINNAME/
          when the domain attribute is set.  The default files for each of the
          traditional maps are as follows:

               lB lB l l .  Filename  Tables aliases   mail.aliases,
               mail.byaddr capability     capability.byname
               clearance clearance.byname ethers    ethers.byname,
               ethers.byaddr group     group.byname, group.bygid,
               group.bymember hosts     hosts.byaddr, hosts.byname
               mac  mac.byname, mac.byvalue netgroup  netgroup,
               netgroup.byuser, netgroup.byhost networks  networks.byaddr,
               networks.byname passwd    passwd.byname, passwd.byuid
               protocols protocols.byname, protocols.bynumber rpc  rpc.byname,
               rpc.bynumber services  services, services.byname
               shadow    shadow.byname

     key  The key attribute is used to fetch the data from the file.  It is
          set by the nsd(1M) daemon.  Each of the traditional files uses the
          key in a different way.  For instance when looking up an address in
          the hosts.byaddr map the library would open up the hosts file,
          convert the key to an address, then walk through the file one line
          at a time converting the first string in the file to an address and
          then doing an address comparison until one matched.

     table
          The table attribute is typically inherited from the daemon based on
          the line from which this entry occurs in the nsswitch.conf file.  In
          the above example the table attribute would be set to hosts.byname
          or hosts.byaddr depending on the context of the request.  This
          attribute is used as the file name containing the data unless the
          table matches one of the traditional files (see file attribute
          above).  For the hosts.byname map in the default domain the file
          /etc/hosts would be opened and searched.

     separator
          The separator attribute is used when using the files library to
          support a non-traditional file.  The file is expected to be of the
          format:
               keySEPARATORvalue
          The separator is a string which is passed directly to the strtok(3C)
          function.


FILES
     /etc/nsswitch.conf, /etc/aliases, /etc/capability, /etc/clearance,
     /etc/ethers, /etc/group, /etc/hosts, /etc/mac, /etc/netgroup,
     /etc/networks, /etc/passwd, /etc/protocols, /etc/rpc, /etc/services,
     /etc/shadow

SEE ALSO
     nsd(1M), strtok(3C), nsswitch.conf(4), aliases(4), capability(4),
     clearance(4), ethers(4), group(4), hosts(4), mac(4), netgroup(4),
     networks(4), passwd(4), protocols(4), rpc(4), services(4), shadow(4)


                                                                        Page 3