1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
findutils (4.2.25-1) unstable; urgency=low
* The GNU-extension "find -perm +MODE" has been withdrawn in GNU findutils
4.1.22 because it is incompatible with POSIX. The new syntax
"find ... -perm /MODE" has been introduced instead.
Old usages will still continue to work, so long as they do not conflict
with POSIX. However a big number of usages _do_ conflict.
E.g. -perm +u+x used to be (and -perm /u+x still should be) treated as
the mode "u+x", which maps to 0100, then returning true for ALL files
that have the u+x bit set regardless of the state of their other bits.
Now, per POSIX, +u+x is treated as the valid mode "+u+x" (which is
identical to "+u,+x", and again maps to 0111 & 07777). Find therefore
returns true on files that are EXACTLY that mode (ie a file that has NO
read or write permissions, but all three execute permissions).
The ONLY character that can appear in a valid mode but which cannot
directly follow '+' according to POSIX is 'a'. So in terms of backwards
compatibility, EVERY symbolic mode, except for those starting with a
leading 'a', are affected by the change in findutils semantics to be
POSIX compliant,
[Large parts of this entry are quoted from a comment by Eric Blake in
savannah bug #14619]
* WORKAROUNDS:
If you are using find -perm +... you have got the following options:
- Use numerical instead of symbolic notation, e.g. "find . -perm +022"
instead of "find . -perm +g+w,o+w". Symbolic modes are not affected by
this change.
- Specify the mode in a different way if possible. e.g. "-perm -u+x"
instead of "-perm +u+x".
- use the new syntax -perm /... instead of -perm +MODE. If you use this
syntax in a Debian package, you'll need to depend on findutils
(>= 4.2.25).
-- Andreas Metzler <ametzler@debian.org> Sat, 8 Oct 2005 11:16:45 +0200
|