couple of getpwnam() questions

Gerald Carter gcarter at
Tue Nov 21 20:36:24 GMT 2000


A couple of comments and questions.  Perhaps someone
can enlighten me if I am seeing this wrong.

--- username.c:Get_Pwnam() ---------------------------------

The current code tries to lookup the username

  o as transmitted
  o in all lower case
  o in all caps
  o with the first letter only in upper case
  o with the last letter only in upper case

My question is "Are the last two checks really necessary?"
For example, a lookup of "Administrator" looks like

  o getpwnam("Administrator")
  o getpwnam("administrator")
  o getpwnam("ADMINISTRATOR")
  o getpwnam("Administrator")
  o getpwnam("AdministratoR")

IMO the last two checks should be handled by a 

	username level = 1

if the host system requires them.

--- passdb.c:local_lookup_name() -----------------------------

In the following snippet of code, we use a the Get_Pwnam()
wrapper for case variations in the username.  From what I can
tell, this is not necessarily required since the use of this
function is used by RPCs (or cases where the username case 
is correct already).  Can anyone articulate a reason not
to change this call to sys_getpwnam() instead for performance
reasons?  (btw...also look at the use of getgrnam() which assumes
the case is already correct)

	if(!(pass = Get_Pwnam(user))) {
		 * Maybe it was a group ?
		struct group *grp = getgrnam(user);

			return False;

Cheers, jerry
   /\  Gerald (Jerry) Carter                     Professional Services
 \/  VA Linux Systems   gcarter at       SAMBA Team          jerry at                     jerry at

       "...a hundred billion castaways looking for a home."
                                - Sting "Message in a Bottle" ( 1979 )

More information about the samba-technical mailing list