TEST RELEASE: Cygwin 2.0.0-0.7
Fri Apr 17 11:03:00 GMT 2015
Hi Cygwin friends and users,
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.
- Improved getfacl tool. It now prints effective permissions just like
the Linux tool. --noname optioned renamed to --numeric (but --noname
is still accepted for backward compat). New -c,--omit-header,
-e,--all-effective, and -E,--no-effective options.
- Fix a bug in account handling. In certain scenarios a PSID pointer
was pointing into a buffer space which got moved away due to a call to
realloc. This bug seems to be the problem of the reported "Permission
denied" problems when trying to chmod.
- Add a missing check for uid/gid values which can't be resolved to
Windows accounts. chmod now returns EINVAL now in this case, just as
the pre 2.0 DLLs.
- I introduced a change in chmod behaviour which is not exactly in
line with POSIX 1003.1e draft 17:
If you have a non-trivial ACL with secondary accounts and thus a mask
value, chmod is supposed to change only the mask, not the permissions
of the primary group. However, if the primary group has few permissions
to begin with, the result is really surprising. ls -l would, e.g.,
show read/write perms for the group, but the group might still have
only read perms.
Personally I find this chmod behaviour really, really bad, so I took
the liberty to change it in a way which gives a much less surprising
result: If you call chmod on a non-trivial ACL, the group permissions
will be used for the primary group and the mask. I hope that this
is working out ok.
- Fix a bug when reading DENAY ACEs of accounts with multiple entries
(typically in the owner == group case).
- Fix how group perms are merged into owner perms in owner == group case.
- Fix a bug in SID handling which may result in broken SID info in
passwd/group entries of unknown accounts.
Other than that...
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.
For a description of POSIX ACLs, see http://linux.die.net/man/5/acl
All changes in this release so far:
- New, unified implementation of POSIX permission and ACL handling. The
new ACLs now store the POSIX ACL MASK/CLASS_OBJ permission mask, and
they allow to inherit the S_ISGID bit. ACL inheritance now really
works as desired, in a limited, but theoretically equivalent fashion
even for non-Cygwin processes.
To accommodate Windows default ACLs, the new code ignores SYSTEM and
Administrators group permissions when computing the MASK/CLASS_OBJ
permission mask on old ACLs, and it doesn't deny access to SYSTEM and
Administrators group based on the value of MASK/CLASS_OBJ when
creating the new ACLs.
The new code now handles the S_ISGID bit on directories as on Linux:
Setting S_ISGID on a directory causes new files and subdirs created
within to inherit its group, rather than the primary group of the user
who created the file. This only works for files and directories
created by Cygwin processes.
- basename(3) now comes in two flavors, POSIX and GNU. The POSIX version is
the default. You get the GNU version after
- The maximum number of PTYs has been raised from 64 to 128.
- Fix potential hang in pseudo ttys when generating ECHO output while the slave
is flooding the pty with output.
- Fix potential premature SIGHUP in pty code.
- Fix a name change from symlink to target name in calls to execvp, system, etc.
- Fix internal error in pty -ONLCR handling. Fix timing bug in pty OPOST
NOTE: This change introduces a not yet addressed regression.
Native Windows tools generating output with Unix LF instead of
Windows CRLF line endings will not get OPOST handling. This
prominently affects icacls.
- Avoid creating passwd and group records from fully qualified Windows
account names (domain\name, name@domain).
- Avoid potential crash at startup or in getgroups(2).
- Fix UTF-16 surrogate handling in wctomb and friends.
To install 32-bit Cygwin use https://cygwin.com/setup-x86.exe
To install 64 bit Cygwin use https://cygwin.com/setup-x86_64.exe
If you're already running a 32 bit version of Cygwin on 64 bit Windows
machines, you can continue to do so. If you're planning a new install
of Cygwin on a 64 bit Windows machine, consider to use the new 64 bit
Cygwin version, unless you need certain packages not yet available in
the 64 bit release.
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
More information about the Cygwin-announce