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: [ANNOUNCEMENT] TEST RELEASE: Cygwin 2.0.0-0.7


Corinna Vinschen writes:
> New 2.0.0-0.7 test release:
>
> - Improved setfacl tool.  It now handles mask recomputation just like
>   the Linux tool.  -d option renamed to -x (but -d is still accepted
>   for backward compat).  New -n,--no-mask and --mask options.

"setfacl -b -k" still errors out instead of removing both the default
and extended ACL entries.

> The important change in this release is the POSIX permission handling
> change, a rewrite of the underlying routines reading and creating
> Windows ACLs following POSIX permission rules and POSIX ACL creating
> rules per POSIX 1003.1e draft 17, as on Linux.

I seem to have found another fly in that ointment (or rather cygport
did find it for meâ):

While packaging a "find usr/ -type f -executable" would find newly
created info files that ls and getfacl agree are not executable:

-rw-------+ 1 ASSI Kein 48880  5. Apr 2014  ucl.log
# file: ucl.log
# owner: ASSI
# group: Kein
user::rw-
group::---
group:SYSTEM:rwx                        #effective:---
group:Administratoren:rwx               #effective:---
mask:---
other:---

It seems that some of the code doesn't take the masking bits into
account just yet.  Here's the relevant portion of an strace on a
different file (I had already deleted the ACL on the original ones):

  215   43687 [main] find 2808 normalize_posix_path: src /mnt/share/maint/ucl.log
   23   43710 [main] find 2808 normalize_posix_path: /mnt/share/maint/ucl.log = normalize_posix_path (/mnt/share/maint/ucl.log)
   35   43745 [main] find 2808 mount_info::conv_to_win32_path: conv_to_win32_path (/mnt/share/maint/ucl.log)
   28   43773 [main] find 2808 set_flags: flags: binary (0x2)
   27   43800 [main] find 2808 mount_info::conv_to_win32_path: src_path /mnt/share/maint/ucl.log, dst D:\Freeware\CygShare\maint\ucl.log, flags 0x2, rc 0
   63   43863 [main] find 2808 symlink_info::check: 0x0 = NtCreateFile (\??\D:\Freeware\CygShare\maint\ucl.log)
   43   43906 [main] find 2808 symlink_info::check: not a symlink
   57   43963 [main] find 2808 symlink_info::check: 0 = symlink.check(D:\Freeware\CygShare\maint\ucl.log, 0x23B600) (0x400002)
   24   43987 [main] find 2808 path_conv::check: this->path(D:\Freeware\CygShare\maint\ucl.log), has_acls(1)
   32   44019 [main] find 2808 build_fh_pc: fh 0x1802FEE38, dev 000000C3
   22   44041 [main] find 2808 stat_worker: (\??\D:\Freeware\CygShare\maint\ucl.log, 0x60003B6E0, 0x1802FEE38), file_attributes 32
  125   44166 [main] find 2808 fhandler_base::fstat_helper: 0 = fstat (\??\D:\Freeware\CygShare\maint\ucl.log, 0x60003B6E0) st_size=48880, st_mode=0100600, st_ino=281474977000743st_atim=533FAD65.25D44958 st_ctim=5531679B.D5E5E90 st_mtim=533FADD7.6CDF1E4 st_birthtim=533FAD65.25D44958
   27   44193 [main] find 2808 stat_worker: 0 = (\??\D:\Freeware\CygShare\maint\ucl.log,0x60003B6E0)
  226   44419 [main] find 2808 normalize_posix_path: src /mnt/share/maint/ucl.log
   23   44442 [main] find 2808 normalize_posix_path: /mnt/share/maint/ucl.log = normalize_posix_path (/mnt/share/maint/ucl.log)
   21   44463 [main] find 2808 mount_info::conv_to_win32_path: conv_to_win32_path (/mnt/share/maint/ucl.log)
   25   44488 [main] find 2808 set_flags: flags: binary (0x2)
   19   44507 [main] find 2808 mount_info::conv_to_win32_path: src_path /mnt/share/maint/ucl.log, dst D:\Freeware\CygShare\maint\ucl.log, flags 0x2, rc 0
   86   44593 [main] find 2808 symlink_info::check: 0x0 = NtCreateFile (\??\D:\Freeware\CygShare\maint\ucl.log)
   34   44627 [main] find 2808 symlink_info::check: not a symlink
   21   44648 [main] find 2808 symlink_info::check: 0 = symlink.check(D:\Freeware\CygShare\maint\ucl.log, 0x23B530) (0x400002)
   21   44669 [main] find 2808 path_conv::check: this->path(D:\Freeware\CygShare\maint\ucl.log), has_acls(1)
   38   44707 [main] find 2808 build_fh_pc: fh 0x1802FEE38, dev 000000C3
  110   44817 [main] find 2808 check_file_access: flags 0x1, ret 0
   47   44864 [main] find 2808 fhandler_base::fhaccess: returning 0
   44   44908 [main] find 2808 faccessat: returning 0

With the ACLÂremoved, the trace looks like this instead:

 277   46985 [main] find 3992 normalize_posix_path: src /mnt/share/maint/ucl.log
   29   47014 [main] find 3992 normalize_posix_path: /mnt/share/maint/ucl.log = normalize_posix_path (/mnt/share/maint/ucl.log)
   39   47053 [main] find 3992 mount_info::conv_to_win32_path: conv_to_win32_path (/mnt/share/maint/ucl.log)
   20   47073 [main] find 3992 set_flags: flags: binary (0x2)
   18   47091 [main] find 3992 mount_info::conv_to_win32_path: src_path /mnt/share/maint/ucl.log, dst D:\Freeware\CygShare\maint\ucl.log, flags 0x2, rc 0
   58   47149 [main] find 3992 symlink_info::check: 0x0 = NtCreateFile (\??\D:\Freeware\CygShare\maint\ucl.log)
   51   47200 [main] find 3992 symlink_info::check: not a symlink
   20   47220 [main] find 3992 symlink_info::check: 0 = symlink.check(D:\Freeware\CygShare\maint\ucl.log, 0x23B600) (0x400002)
   23   47243 [main] find 3992 path_conv::check: this->path(D:\Freeware\CygShare\maint\ucl.log), has_acls(1)
   39   47282 [main] find 3992 build_fh_pc: fh 0x1802FEE38, dev 000000C3
   22   47304 [main] find 3992 stat_worker: (\??\D:\Freeware\CygShare\maint\ucl.log, 0x60003B6E0, 0x1802FEE38), file_attributes 32
  143   47447 [main] find 3992 fhandler_base::fstat_helper: 0 = fstat (\??\D:\Freeware\CygShare\maint\ucl.log, 0x60003B6E0) st_size=48880, st_mode=0100600, st_ino=281474977000743st_atim=533FAD65.25D44958 st_ctim=5531680B.36B1E654 st_mtim=533FADD7.6CDF1E4 st_birthtim=533FAD65.25D44958
   27   47474 [main] find 3992 stat_worker: 0 = (\??\D:\Freeware\CygShare\maint\ucl.log,0x60003B6E0)
  206   47680 [main] find 3992 normalize_posix_path: src /mnt/share/maint/ucl.log
   27   47707 [main] find 3992 normalize_posix_path: /mnt/share/maint/ucl.log = normalize_posix_path (/mnt/share/maint/ucl.log)
   18   47725 [main] find 3992 mount_info::conv_to_win32_path: conv_to_win32_path (/mnt/share/maint/ucl.log)
   68   47793 [main] find 3992 set_flags: flags: binary (0x2)
   24   47817 [main] find 3992 mount_info::conv_to_win32_path: src_path /mnt/share/maint/ucl.log, dst D:\Freeware\CygShare\maint\ucl.log, flags 0x2, rc 0
   51   47868 [main] find 3992 symlink_info::check: 0x0 = NtCreateFile (\??\D:\Freeware\CygShare\maint\ucl.log)
   42   47910 [main] find 3992 symlink_info::check: not a symlink
   21   47931 [main] find 3992 symlink_info::check: 0 = symlink.check(D:\Freeware\CygShare\maint\ucl.log, 0x23B530) (0x400002)
   65   47996 [main] find 3992 path_conv::check: this->path(D:\Freeware\CygShare\maint\ucl.log), has_acls(1)
   26   48022 [main] find 3992 build_fh_pc: fh 0x1802FEE38, dev 000000C3
   71   48093 [main] find 3992 __set_errno: int check_access(security_descriptor&, GENERIC_MAPPING&, ACCESS_MASK, int, bool):588 setting errno 13
   31   48124 [main] find 3992 check_file_access: flags 0x1, ret -1
   73   48197 [main] find 3992 fhandler_base::fhaccess: returning -1
   69   48266 [main] find 3992 faccessat: returning -1


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

SD adaptation for Waldorf rackAttack V1.04R1:
http://Synth.Stromeko.net/Downloads.html#WaldorfSDada

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


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