This issue was introduced in commit
v8.19-145-g24ebca6
* src/copy.c (copy_internal): On systems that don't support ACLs,
the fallback default chmod done on directories should maintain
the set-group-ID, as that's generally auto-set by the system.
* NEWS: Mention the fix.
Reported by Bruno Haible on Alpine (with tests/cp/preserve-mode.sh)
to preserve ownership" when copying to GNU/Linux CIFS file systems.
They do this by working around some Linux CIFS bugs.
+ cp --no-preserve=mode will correctly maintain set-group-ID bits
+ for created directories. Previously on systems that didn't support ACLs,
+ cp would have reset the set-group-ID bit on created directories.
+ [bug introduced in coreutils-8.20]
+
join and uniq now support multi-byte characters better.
For example, 'join -tX' now works even if X is a multi-byte character,
and both programs now treat multi-byte characters like U+3000
{
int default_permissions = S_ISDIR (src_mode) || S_ISSOCK (src_mode)
? S_IRWXUGO : MODE_RW_UGO;
+ dst_mode = dst_sb.st_mode;
+ if (S_ISDIR (src_mode)) /* Keep set-group-ID for directories. */
+ default_permissions |= (dst_mode & S_ISGID);
if (set_acl (dst_name, -1, default_permissions & ~cached_umask ()) != 0)
return false;
}