The materials have been updated.

New materials:

 - passwd.1.txt

Updated materials:

 - nsswitch.conf.4.txt
 - the actual proposal (see nssad-details.txt)

Diffs:

------- nsswitch.conf.4.txt -------
--- /tmp/sccs.NSaWCI    Wed Jul 23 19:28:15 2008
+++ nsswitch.conf.4.txt Wed Jul 23 19:19:03 2008
@@ -1,5 +1,7 @@
  File Formats                                     nsswitch.conf(4)
  
+ 
+ 
  NAME
       nsswitch.conf - configuration  file  for  the  name  service
       switch
@@ -7,6 +9,7 @@
  SYNOPSIS
       /etc/nsswitch.conf
  
+ 
  DESCRIPTION
       The operating system uses a number of databases of  informa-
       tion  about hosts, ipnodes, users (passwd(4), shadow(4), and
@@ -17,8 +20,11 @@
       database; the sources and their lookup order  are  specified
       in the /etc/nsswitch.conf file.
  
+ 
       The following databases use the switch file:
  
+ 
+ 
              Database                          Used By
       aliases                  sendmail(1M)
       auth_attr                getauthnam(3SECDB)
@@ -48,10 +54,12 @@
       rpc                      getrpcbyname(3NSL)
       services                 getservbyname(3SOCKET).
                                See Interaction with netconfig.
-      user_attr                getuserattr(3SECDB)
  
+ 
       The following sources may be used:
  
+ 
+ 
               Source                         Uses
       files                    /etc/hosts,          /etc/passwd,
                                /etc/inet/ipnodes,   /etc/shadow,
@@ -74,9 +82,12 @@
                                ments         support         for
                                ${HOME}/.printers.
  
+ 
+ 
       Note  that  /etc/inet/ipnodes  is   a   symbolic   link   to
       /etc/hosts.
  
+ 
       There is an entry in /etc/nsswitch.conf for  each  database.
       Typically  these  entries will be simple, such as protocols:
       files or networks: files  nisplus.  However,  when  multiple
@@ -85,6 +96,7 @@
       tried. A source can return one of the following codes:
  
  
+ 
               Status                         Meaning
       SUCCESS                  Requested database entry was found.
       UNAVAIL                  Source is not  configured  on  this
@@ -93,16 +105,22 @@
       TRYAGAIN                 Source is busy or  not  responding,
                                might respond to retries.
  
+ 
       For each status code, two actions are possible:
  
  
+ 
               Action                        Meaning
       continue                 Try the next source in the list.
       return                   Return now.
  
+ 
+ 
       Additionally, for TRYAGAIN only, the following  actions  are
       possible:
  
+ 
+ 
               Action                        Meaning
       forever                  Retry the current source forever.
       n                        Retry the current source  n  more
@@ -116,6 +134,7 @@
                                TRYAGAIN=n is restored.
  
  
+ 
       The complete syntax of an entry is:
  
         <entry>     ::= <database> ":" [<source> [<criteria>]]*
@@ -123,15 +142,20 @@
         <criterion> ::= <status> "=" <action>
         <status>    ::= "success" | "notfound" | "unavail" | "tryagain"
  
+ 
+ 
       For every status except TRYAGAIN, the action syntax is:
  
         <action>    ::= "return"  | "continue"
  
+ 
+ 
       For the TRYAGAIN status, the action syntax is:
  
         <action>    ::= "return"  | "continue" | "forever" | <n>
         <n>         ::= 0...MAX_INT
  
+ 
       Each entry occupies a single line in the  file.  Lines  that
       are  blank,  or  that  start  with white space, are ignored.
       Everything on  a  line  following  a  #  character  is  also
@@ -140,18 +164,22 @@
       are  case-sensitive,  but  <action>  and  <status> names are
       case-insensitive.
  
+ 
       The library functions contain  compiled-in  default  entries
       that  are  used if the appropriate entry in nsswitch.conf is
       absent or syntactically incorrect.
  
+ 
       The default criteria for DNS and the  NIS  server  in  "DNS-
       forwarding   mode"   is   [SUCCESS=return  NOTFOUND=continue
       UNAVAIL=continue TRYAGAIN=3].
  
+ 
       The   default   criteria   for   all   other   sources    is
       [SUCCESS=return      NOTFOUND=continue      UNAVAIL=continue
       TRYAGAIN=forever].
  
+ 
       The default, or explicitly specified, criteria are  meaning-
       less  following  the  last  source in an entry; and they are
       ignored, since the action is always to return to the  caller
@@ -185,6 +213,7 @@
       DNS lookups; dns need  not  be  specified  explicitly  as  a
       source.
  
+ 
       In SunOS 5.3 (Solaris 2.3) and compatible versions, the NIS+
       server  in NIS/YP-compatibility mode can also be run in DNS-
       forwarding mode (see rpc.nisd(1M)). Forwarding is  effective
@@ -198,18 +227,28 @@
  
       passwd:           files
  
+ 
       passwd:           files nis
  
+ 
       passwd:           files nisplus
  
+ 
       passwd:           files ldap
  
+ 
       passwd:           compat
  
+ 
       passwd_compat:    nisplus
  
+ 
       passwd_compat:    ldap
  
+ 
+ 
++     Adding 'ad' to the configurations listed above is supported
++     though changing AD users' passwords through passwd(1) is not.
       Any other settings will cause the passwd(1) command to  fail
       when it attempts to change the password after expiration and
       will prevent the user from logging in. These  are  the  only
@@ -234,6 +273,7 @@
       /etc/passwd and /etc/shadow (the latter is a new addition to
       SunOS 5.0, see shadow(4)).
  
+ 
       If this is not sufficient, the NIS/YP  compatibility  source
       provides  full  +/-  semantics.  It  reads  /etc/passwd  for
       getpwnam(3C)  functions  and  /etc/shadow  for  getspnam(3C)
@@ -242,9 +282,11 @@
       overridden  by  specifying nisplus or ldap as the source for
       the pseudo-database passwd_compat.
  
+ 
       Note that in compat mode, for every /etc/passwd entry, there
       must be a corresponding entry in the /etc/shadow file.
  
+ 
       The NIS/YP  compatibility  source  also  provides  full  +/-
       semantics   for   group;  the  relevant  pseudo-database  is
       group_compat.
@@ -256,42 +298,62 @@
  
       passwd:        files nis
  
+ 
       group:         files nis
  
+ 
       hosts:         nis [NOTFOUND=return] files
  
+ 
       ipnodes:       nis [NOTFOUND=return] files
  
+ 
       networks:      nis [NOTFOUND=return] files
  
+ 
       protocols:     nis [NOTFOUND=return] files
  
+ 
       rpc:           nis [NOTFOUND=return] files
  
+ 
       ethers:        nis [NOTFOUND=return] files
  
+ 
       netmasks:      nis [NOTFOUND=return] files
  
+ 
       bootparams:    nis [NOTFOUND=return] files
  
+ 
       publickey:     nis [NOTFOUND=return] files
  
+ 
       netgroup:      nis
  
+ 
       automount:     files nis
  
+ 
       aliases:       files nis
  
+ 
       services:      files nis
  
+ 
       printers:      user files nis nisplus
  
+ 
       auth_attr      files nis
  
+ 
       prof_attr      files nis
  
+ 
       project        files nis
  
+ 
+ 
       Note that the files source for the ipnodes and  hosts  data-
       bases  is identical, as /etc/inet/ipnodes is a symbolic link
       to /etc/hosts. Because other sources  for  the  ipnodes  and
@@ -298,6 +360,7 @@
       hosts  databases  are  different,  do not remove the ipnodes
       line from the /etc/nsswitch.conf file.
  
+ 
       The policy nis [NOTFOUND=return] files implies:  if  nis  is
       UNAVAIL,  continue on to files, and if nis returns NOTFOUND,
       return to the caller. In  other  words,  treat  nis  as  the
@@ -306,13 +369,17 @@
       configuration  above,  are identical to the hard-wired poli-
       cies in SunOS releases prior to 5.0.
  
+ 
       If compatibility with the +/- syntax for passwd and group is
       required, simply modify the entries for passwd and group to:
  
       passwd:    compat
  
+ 
       group:     compat
  
+ 
+ 
       If NIS+ is the enterprise level name  service,  the  default
       configuration  should  be modified to use nisplus instead of
       nis  for  every  database  on  client  machines.  The   file
@@ -319,6 +386,7 @@
       /etc/nsswitch.nisplus  contains  a sample configuration that
       can be copied to /etc/nsswitch.conf to set this policy.
  
+ 
       If LDAP is the enterprise level name  service,  the  default
       configuration  should be modified to use ldap instead of nis
       for  every   database   on   client   machines.   The   file
@@ -325,22 +393,26 @@
       /etc/nsswitch.ldap  contains a sample configuration that can
       be copied to /etc/nsswitch.conf to set this policy.
  
-+     When using Active Directory with native schema for name service,
-+     the default configuration should be modified to use ad for
-+     for passwd and group, dns for hosts resolution and files
-+     for the remaining databases on client machines.
 
++     When  using  Active  Directory  dns  is  required  for hosts
++     resolution.
++
       If the use of +/- syntax  is  desired  in  conjunction  with
       nisplus, use the following four entries:
  
       passwd:           compat
  
+ 
       passwd_compat:    nisplus OR ldap
  
+ 
       group:            compat
  
+ 
       group_compat:     nisplus OR ldap
  
+ 
+ 
       In order to get information from the  Internet  Domain  Name
       Service  for  hosts  that  are  not listed in the enterprise
       level name service, NIS+ or LDAP, use the  following  confi-
@@ -353,6 +425,7 @@
  
       hosts:    ldap dns [NOTFOUND=return] files
  
+ 
    Enumeration - getXXXent()
       Many of the databases have enumeration functions: passwd has
       getpwent(),  hosts  has  gethostent(), and so on. These were
@@ -374,6 +447,7 @@
       interleave  calls,  they  will enumerate disjoint subsets of
       the same database.
  
+ 
       In general, the use of the enumeration functions  is  depre-
       cated.  In  the  case  of  passwd, shadow, and group, it may
       sometimes be appropriate to  use  fgetgrent(),  fgetpwent(),
@@ -387,48 +461,65 @@
  
       /etc/nsswitch.conf           Configuration file.
  
+ 
       /usr/lib/nss_compat.so.1     Implements compat source.
  
+ 
       /usr/lib/nss_dns.so.1        Implements dns source.
  
+ 
       /usr/lib/nss_files.so.1      Implements files source.
  
+ 
       /usr/lib/nss_mdns.so.1       Implements mdns source.
  
+ 
       /usr/lib/nss_nis.so.1        Implements nis source.
  
+ 
       /usr/lib/nss_nisplus.so.1    Implements nisplus source.
  
+ 
       /usr/lib/nss_ldap.so.1       Implements ldap source.
  
-+     /usr/lib/nss_ad.so.1         Implements ad source.
 
++     /usr/lib/nss_ad.so.1         Implements ad source.
++
++
       /usr/lib/nss_user.so.1       Implements user source.
  
+ 
       /etc/netconfig               Configuration     file      for
                                    netdir(3NSL)   functions   that
                                    redirects hosts/devices  policy
                                    to the switch.
  
+ 
       /etc/nsswitch.files          Sample configuration file  that
                                    uses files only.
  
+ 
       /etc/nsswitch.nis            Sample configuration file  that
                                    uses files and nis.
  
+ 
       /etc/nsswitch.nisplus        Sample configuration file  that
                                    uses files and nisplus.
  
+ 
       /etc/nsswitch.ldap           Sample configuration file  that
                                    uses files and ldap.
  
-      /etc/nsswitch.ad             Sample configuration file  that
-                                   uses files and ad.
  
++     /etc/nsswitch.ad             Sample configuration file  that
++                                  uses files and ad.
++
++
       /etc/nsswitch.dns            Sample configuration file  that
                                    uses  files,  dns and mdns (dns
                                    and mdns only for hosts).
  
+ 
  SEE ALSO
       ldap(1),  newtask(1),  NIS+(1),  passwd(1),   automount(1M),
       ifconfig(1M),  mdnsd(1M),  rpc.bootparamd(1M), rpc.nisd(1M),
@@ -451,6 +542,7 @@
       is read only once; if the file is later changed, the process
       will continue using the old configuration.
  
+ 
       The use of both nis and nisplus  as  sources  for  the  same
       database  is  strongly  discouraged since both the name ser-
       vices are expected to  store  similar  information  and  the
@@ -457,16 +549,17 @@
       lookups  on the database may yield different results depend-
       ing on which name service is operational at the time of  the
       request.  The  same applies for using ldap along with nis or
-      nisplus.  The  same  applies for  using  ldap  along with ad
-      when  ldap  is  used  with  schema  mapping  with  an Active
-      Directory domain.
+-     nisplus.
++     nisplus. The  same  applies for  using  ldap  along with ad
++     when  ldap  is  used  with  schema  mapping  with  an Active
++     Directory domain.
  
+ 
       Misspelled names of sources and databases will be treated as
       legitimate  names  of  (most likely nonexistent) sources and
       databases.
  
+ 
       The   following   functions   do   not   use   the   switch:
       fgetgrent(3C),     fgetprojent(3PROJECT),     fgetpwent(3C),
       fgetspent(3C), getpw(3C), putpwent(3C), shadow(4).
- 
- SunOS 5.11          Last change: 21 Aug 2007                   11
--- nssad-details.txt-orig Jul 23 19:22:48 2008
+++ nssad-details.txt   Wed Jul 23 19:25:14 2008
@@ -2,10 +2,10 @@
 1.  Introduction
 
    1.1. Project/Component Working Name:
-        NSS_AD: Name Service Module for AD
+        NSSAD: Name Service Module for AD
    1.2. Name of Document Author/Supplier:
         Author:  Baban Kenkre
-   1.3  Date:
+   1.3  Date of This Document:
         11 July, 2008
 
 
@@ -115,8 +115,38 @@
       get{pw,gr}{nam,uid,gid}() to do the same.
 
 
-7.  Mapping to passwd(4) and shadow(4)
+7.  Password Updates
 
+   passwd(1) manpage contains a list of valid password update
+   configurations for the passwd entry in nsswitch.conf(4) file.  Adding
+   'ad' to these configurations will be supported though changing AD
+   users' passwords through passwd(1) won't be supported. 'ad' will be
+   skipped if found in the passwd entry during password update.  AD
+   users' passwords can be updated using kpasswd(1) command. passwd(1)
+   and nsswitch.conf(4) manpages as well as the Solaris Admin Guide will
+   be updated to reflect this.
+
+
+8.  Other consumers of passwd entry
+
+   As mentioned previously "ad" can be added to any of the existing
+   valid passwd and group entries in nsswitch.conf.
+
+   Examples:
+        passwd: files ad OR
+        passwd: files ldap ad
+
+   This allows consumers of get{pw|gr}{nam|uid|gid} to resolve Windows
+   names and ephemeral IDs.  Other name service databases such as
+   audit_user(4) and user_attr(4) that follow passwd entry in
+   nsswitch.conf will not be affected by the additional backend in the
+   passwd entry.  This backend will be processed (based on the
+   configuration) and if it's 'ad' then it will return NOTFOUND because
+   RBAC is not yet suppported by AD.
+
+
+9.  Mapping to passwd(4) and shadow(4)
+
    Mapping of Windows user to passwd(4) form will be done as follows:
 
    o  The Windows's user object belongs to objectClass "user".
@@ -160,7 +190,7 @@
       because shadow fields are irrevalent with AD and krb5.
 
 
-8.  Mapping to group(4)
+10.  Mapping to group(4)
 
    Mapping of Windows group to group(4) form will be done as follows:
 
@@ -184,9 +214,9 @@
       object does not contain the group's password.
 
 
-9.  Relevant ARC cases and CRs
+11.  Relevant ARC cases and CRs
 
-   o  6722476 name service switch module for AD (nss_ad) needed
+   o  6722476 name service switch module for AD (nssad) needed
 
    o  PSARC/2006/315 Winchester:ID Mapping service
 
@@ -199,7 +229,7 @@
    o  PSARC/2008/342 Further SID support
 
 
-10.  Supporting Documents
+12.  Supporting Documents
 
    +---------------------+-----------------------------------+
    | Filename            | Description                       |
@@ -207,13 +237,17 @@
    | ad.5.txt            | ad(5) manpage                     |
    |                     |                                   |
    | nsswitch.conf.4.txt | Modified nsswitch.conf(4) manpage |
+   |                     |                                   |
+   | passwd.1.txt        | Modified passwd(1) manpage        |
    +---------------------+-----------------------------------+
 
-   In addition to the above the Solaris admin guide will include a
-   chapter on AD name service in Solaris.
+   In addition to the above the Solaris Admin Guide will include (i) a
+   chapter on nss_ad and (ii) the Naming and Directory services (DNS,
+   NIS, and LDAP) chapter will be modified to clarify the password
+   update issue related to AD users.
 
 
-11.  References
+13.  References
 
    [1]  "Well-Known SIDs", <http://support.microsoft.com/kb/243330>.
 

Reply via email to