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