This is the mail archive of the cygwin@sources.redhat.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Default User ID can be misleading


I am using the following snippet of C-code to get the name of the current
user.

  pwd = getpwuid (getuid ());
  if (pwd != NULL)
   /* pwd->pw_name */
  else
   /* get the user name from the environment */
      Windows 2000 sets USERNAME
      Many Unix systems set LOGNAME
      Cygwin sets USER (sometimes inappropriately, see below)

Default installation:
cygwin installed by domain administrator on Windows 2000.  The default
installation procedure creates /etc/passwd with only local entries.

When cygwin is run by an ordinary domain user (not in the password file),
getuid returns the uid for the local Administrator.  (The environment
variable
USER is also set to "Administrator".)

Updated installation:
Domain administrator runs "mkpasswd -d -l > /etc/passwd".  Now all domain
domain users in the password table are also correctly recognized.

--------------------
The system works properly when the currently logged in user is in the
password table.  But the question is what uid to return if a user is not
in the password table.  It seems to me that in that case getuid should
return a uid that is not in the password table and not fall back to the
Administrator uid.  Better to have a blank user name than a misleading
one.

Peter Kabal     Kabal@ECE.McGill.CA (514) 398-7130
Electrical & Computer Engineering   (514) 398-4470 (FAX)
McGill University
3480 University, Montreal, Quebec, Canada  H3A 2A7



--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]