This is the mail archive of the
cygwin-developers@cygwin.com
mailing list for the Cygwin project.
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