On Wednesday, 09 April 2003, at 16:49:43 (+0200),
Cristalle Azundris Sabon wrote:

>   Normally, getpwnam() will heed nsswitch.conf (if the system even has
>   one, not peering BSD-wards here):
> 
>     These functions are used to obtain password entries. Entries can
>     come from any of the sources for passwd specified in the
>     /etc/nsswitch.conf file (see nsswitch.conf(4) ).
> 
>   Basically, you can get user-data from anything that's mentioned in
>   your nsswitch.conf (and that you actually do have a configured plugin
>   for, nss_ldap.so and friends).  Your program may be backend agnostic;
>   the data will look the same no matter whether they came from LDAP, NIS,
>   or the desert.  (I.e., if for some arcane reason the LDAP model does not
>   use the posixAccount object-class, it is the responsibility of the
>   plugin to query the right attributes and return them in proper format etc.)
> 
>   As long as it's only the home-dir you're interested in, getpw...() should
>   be fine.
> 
> 
> 
>   However, if PAM exists, and you want to check auth-credentials (to log
>   somebody in), you must go through PAM:
> 
>   LDAP allows ACLs with a rather high granularity.  Hence, on a system that
>   has both PAM and NSS, we are likely to find the following setup:
> 
>   - A DN ("user") in LDAP nss_ldap may log into the LDAP as.  This
>     "user" may read all the data normally stored in /etc/password, but
>     not the data from /etc/shadow, specifically not the password.  It
>     doesn't need to know the password -- that's only used for auth,
>     which is done in PAM, so NSS doesn't need access to the pwd.  This
>     way, all NSS-related stuff (uid->user-name mapping for ls, top, ps
>     and friends) will work as always, but password hashes cannot be
>     listed ("ypcat passwd" issue in NIS).
> 
>   - A DN in LDAP pam_ldap may may use to auth against the LDAP server.
>     This "user" will see the password-data (hashed or otherwise), but
>     to know the semi-secret DN and its secret password, one would have
>     to read pam_ldap.conf, which is owned by and read-only to root.
>     PAM-stuff usually runs as root ; ), so it gets the data it needs.
>     NSS-stuff gets only the data it needs, which excludes password data.
> 
>   The general upshot is that password data are only readable to root,
>   unlike in many YP/NIS setups.
> 
>   The specific upshot is that when PAM exists on a system, a setup as
>   described above is possible, perchance likely.  Hence, if the entrance
>   is to work on systems with and without PAM (with passwords in files,
>   LDAP, NIS, or wherever), the following applies.
> 
>   - If there is no PAM, we can with reasonable safety assume that there
>     also isn't the setup described above. ; )  => use getpwnam() and friends.
> 
>   - If PAM exists, NSS may or may not be configured to get data from LDAP.
>     Even if it is, there is no guarantee that these data will include
>     password data.  => go through PAM
> 
>   I'm in a bit of a hurry, so I didn't have a chance to edit this off the
>   top of my head rant much.  Hope it helps either way.

heh  I'm just not nearly verbose enough, am I? :-)

Michael

-- 
Michael Jennings (a.k.a. KainX)  http://www.kainx.org/  <[EMAIL PROTECTED]>
n + 1, Inc., http://www.nplus1.net/       Author, Eterm (www.eterm.org)
-----------------------------------------------------------------------
 "Sometimes I give myself the creeps.  Sometimes my mind plays tricks
  on me.  It all keeps adding up; I think I'm cracking up.  Am I just
  paranoid?  Am I just stoned?"            -- Green Day, "Basket Case"


-------------------------------------------------------
This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger 
for complex code. Debugging C/C++ programs can leave you feeling lost and 
disoriented. TotalView can help you find your way. Available on major UNIX 
and Linux platforms. Try it free. www.etnus.com
_______________________________________________
enlightenment-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to