This is the mail archive of the cygwin 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: Testers needed: New passwd/group handling in Cygwin


On Mar 10 17:19, Achim Gratz wrote:
> Corinna Vinschen <corinna-cygwin <at> cygwin.com> writes:
> > The fact that the shells are doing it right seems to indicate that this
> > isn't a generic problem.  I can't debug this, though.  Can you see if
> > you can figure out what's going on under the hood?  Does strace show
> > anything of interest?  Can we perhaps set up some joint debugging via
> > private mail during the next couple of days?
> 
> Perl goes through stat64 that seems to explicitly check the ACL while sh
> uses a different codepath.  I don't see anything obviously wrong with either
> trace.  If I set up cygdrive to use the noacl option the problem goes away,
> apparently because the ACL check never takes place within stat64.
> 
>   869 2501512 [main] perl 2604 stat64: entering
>   814 2502326 [main] perl 2604 normalize_posix_path: src x86
>   802 2503128 [main] perl 2604 cwdstuff::get: posix /cygdrive/x/install
>  1195 2504323 [main] perl 2604 cwdstuff::get: (/cygdrive/x/install) =
> cwdstuff::get (0x80000008, 32768, 1, 0), errno 0
>   810 2505133 [main] perl 2604 normalize_posix_path: /cygdrive/x/install/x86
> = normalize_posix_path (x86)
>  1195 2506328 [main] perl 2604 mount_info::conv_to_win32_path:
> conv_to_win32_path (/cygdrive/x/install/x86)
>   810 2507138 [main] perl 2604 mount_info::cygdrive_win32_path: src
> '/cygdrive/x/install/x86', dst 'X:\install\x86'
>   837 2507975 [main] perl 2604 set_flags: flags: binary (0x2)
>   810 2508785 [main] perl 2604 mount_info::conv_to_win32_path: src_path
> /cygdrive/x/install/x86, dst X:\install\x86, flags 0x4022, rc 0
>  3329 2512114 [main] perl 2604 symlink_info::check: 0x0 = NtCreateFile
> (\??\X:\install\x86)
>  2816 2514930 [main] perl 2604 symlink_info::check: not a symlink
>   845 2515775 [main] perl 2604 symlink_info::check: 0 =
> symlink.check(X:\install\x86, 0x289888) (0x404022)
>   839 2516614 [main] perl 2604 path_conv::check: this->path(X:\install\x86),
> has_acls(1)
>   828 2517442 [main] perl 2604 build_fh_pc: fh 0x612DD5A0, dev 000000C3
>   816 2518258 [main] perl 2604 stat_worker: (\??\X:\install\x86, 0x800390D0,
> 0x612DD5A0), file_attributes 16
>  1603 2519861 [main] perl 2604 cygpsid::debug_print: get_sids_info: owner
> SID = S-1-5-21-2052111302-842925246-682003330-75441
>   818 2520679 [main] perl 2604 cygpsid::debug_print: get_sids_info: group
> SID = S-1-5-21-2052111302-842925246-682003330-513
>   818 2521497 [main] perl 2604 get_info_from_sd: ACL 0x4000, uid 75441, gid
> 10513
>   875 2522372 [main] perl 2604 fhandler_base::fstat_helper: 0 = fstat
> (\??\X:\install\x86, 0x800390D0) st_size=0, st_mode=0x4000, st_ino=-197262732544
                                              ^^^^^^^^^^^^^^
This is the important snippet, but I don't see how this could have been
different before my patches.  The mode is S_IFDIR and 000 permissions.

That usually means:

- The owner of the file, here S-1-5-21-2052111302-842925246-682003330-75441,
  has no ACCESS_ALLOWED_ACE in the ACL, or the owner has no FILE_READ_DATA,
  FILE_WRITE_DATA, and FILE_EXECUTE permissions on the file.

- The group of the file, here S-1-5-21-2052111302-842925246-682003330-513
  (Domain Users, apparently) has no ACCESS_ALLOWED_ACE in the ACL, or
  the owner has no FILE_READ_DATA, FILE_WRITE_DATA, and FILE_EXECUTE
  permissions on the file.

- The Everyone group S-1-1-0 has no ACCESS_ALLOWED_ACE in the ACL, or
  the owner has no FILE_READ_DATA, FILE_WRITE_DATA, and FILE_EXECUTE
  permissions on the file.

This stuff is entirely independent of the new passwd/group code, unless
the owner and group are Samba Unix Users/Groups (S-1-22-[...]), in which
case I made some changes in this area on 2014-02-27.

The uid and gid values point to the fact that you're still using a
passwd and group file.  How are your /etc/nsswitch.conf settings and
does switching to db-only make a difference?


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

Attachment: pgpe0JuQcOGyT.pgp
Description: PGP signature


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