This is the mail archive of the cygwin-developers@cygwin.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]
Other format: [Raw text]

Re: 1.5.12


On Wed, Oct 06, 2004 at 05:07:49PM -0400, Christopher Faylor wrote:
> Anything else?

Unfortunately, yes.  I've just begun to track down the following Cygwin
problem:

    If a user tries to connect to proftpd when not logged in to Windows,
    then the proftpd login fails because chdir() to the user's home
    directory fails.  If they are already logged in to Windows, then the
    proftpd login succeeds.

I believe the problem is due to a bunch of seteuid() and setegid() calls
by proftpd to drop root privileges which prevents Cygwin from being able
to read its mount table in the registry.

So far, I have the following strace from a failure:

  218 8207898 [main] 27.0 3212 seteuid32: uid: 1027 myself->gid: 513
  191 8208089 [main] 27.0 3212 seteuid32: Found token -1
 1623 8209712 [main] 27.0 3212 set_process_privilege: 0 = set_process_privilege (SeCreateTokenPrivilege, 1)
 4311 8214023 [main] 27.0 3212 set_process_privilege: 1 = set_process_privilege (SeCreateTokenPrivilege, 0)
  402 8214425 [main] 27.0 3212 create_token: 1548 = create_token ()
  989 8215414 [main] 27.0 3212 seterrno_from_win_error: /netrel/src/cygwin-snapshot-20041007-1/winsup/cygwin/sec_helper.cc:346 windows error 1008
  112 8215526 [main] 27.0 3212 geterrno_from_win_error: windows error 1008 == errno 22
   63 8215589 [main] 27.0 3212 geterrno_from_win_error: windows error 1008 == errno 22
   85 8215674 [main] 27.0 3212 set_process_privilege: -1 = set_process_privilege (SeRestorePrivilege, 1)
  248 8215922 [main] 27.0 3212 open_shared: name S-1-5-21-3757435101-2935130677-2106517767-1027, shared 0xA010000 (wanted 0xA010000), h 0x750
   81 8216003 [main] 27.0 3212 user_shared_initialize: opening user shared for 'S-1-5-21-3757435101-2935130677-2106517767-1027' at 0xA010000
   78 8216081 [main] 27.0 3212 user_shared_initialize: user shared version 0
   62 8216143 [main] 27.0 3212 user_shared_initialize: initializing user shared
  149 8216292 [main] 27.0 3212 reg_key::build_reg: failed to create key SOFTWARE in the registry
  123 8216415 [main] 27.0 3212 reg_key::build_reg: failed to create key SOFTWARE in the registry
  163 8216578 [main] 27.0 3212 reg_key::build_reg: failed to create key SOFTWARE in the registry
   74 8216652 [main] 27.0 3212 mount_info::read_mounts: RegEnumKeyEx failed, error 6!
  122 8216774 [main] 27.0 3212 reg_key::build_reg: failed to create key SOFTWARE in the registry
   69 8216843 [main] 27.0 3212 mount_info::read_mounts: RegEnumKeyEx failed, error 6!

and the corresponding strace from a success:

   66 11727055 [main] 27.0 1112 setegid32: new egid: 10513 current: 544
   99 11727154 [main] 27.0 1112 setegid32: SetTokenInformation(process, TokenPrimaryGroup), Win32 error 1308
   96 11727250 [main] 27.0 1112 seteuid32: uid: 178097 myself->gid: 10513          95 11727345 [main] 27.0 1112 seteuid32: Found token -1
  939 11728284 [main] 27.0 1112 set_process_privilege: 0 = set_process_privilege (SeCreateTokenPrivilege, 1)                                                     4203 11732487 [main] 27.0 1112 set_process_privilege: 1 = set_process_privilege (SeCreateTokenPrivilege, 0)
  338 11732825 [main] 27.0 1112 create_token: 1528 = create_token ()              188 11733013 [main] 27.0 1112 load_registry_hive: User registry hive for S-1-5-21-839522115-1425521274-1417001333-168097 already exists                         186 11733199 [main] 27.0 1112 open_shared: name S-1-5-21-839522115-1425521274-1417001333-168097, shared 0xA010000 (wanted 0xA010000), h 0x750
   65 11733264 [main] 27.0 1112 user_shared_initialize: opening user shared for 'S-1-5-21-839522115-1425521274-1417001333-168097' at 0xA010000
   77 11733341 [main] 27.0 1112 user_shared_initialize: user shared version B1D50001

Unfortunately, I haven't been able to create a simple test case yet.  :,(

Does anyone have any ideas?

Thanks,
Jason

-- 
PGP/GPG Key: http://www.tishler.net/jason/pubkey.asc or key servers
Fingerprint: 7A73 1405 7F2B E669 C19D  8784 1AFD E4CC ECF4 8EF6


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