seteuid ?

Earnie Boyd
Fri Sep 29 15:27:00 GMT 2000

--- Corinna Vinschen <> wrote:
> Earnie Boyd wrote:
> > 
> > Hey Corinna,
> > 
> > I've copied my Domain User /etc/passwd record and changed the User=root and
> > UID=0.  If I put this record first in /etc/passwd file I could `su -' just
> fine
> > and dandy.  However, that ended up as the user record when starting bash.
> > Moving the record to the end of the file, I `su -' and I would the EPERM
> error.
> > This is due to the test of pw_cur != pw_new.  I removed the set_errno and
> > return -1 statements and su now changes the effective user.  Comments?
> What you have done is _not_ changing the user context. It only looks as
> if the context has changed. The test in seteuid() is intended to check
> if a previous cygwin_logon_user()/cygwin_set_impersonation_token() pair
> was called prior to using seteuid(). I have described that in detail in
> the documentation. You can't change the user context without providing
> a password. I have finally managed to update the net documentation to
> contain the "New setuid concept" chapter. Take a look.

I understand and I'll take a look at your documentation.  In my particular
instance not changing the NT user context was what needed to happen.  It did
change the emulated UNIX user context so that the Cygwin functions reported
that I was root.

BTW, su doesn't ask for a password if the password field from getpwent() is


Do You Yahoo!?
Yahoo! Photos - 35mm Quality Prints, Now Get 15 Free!

More information about the Cygwin-developers mailing list