Solution 1:

It is a bug with gnu mkdir: http://savannah.gnu.org/bugs/?19546 There is no way to disable the traditional Unix permissions. Since mkdir works you could write a shell function that overrides mkdir. In the shell function look for a -p in the args and run a series of non-p-using mkdirs instead.

Many Linux-based systems are now using umask 0002 with user-private groups so this problem doesn't come up.

Solution 2:

It was a bug with gnu mkdir (#14371), it was fixed in coreutils 8.22.

  • affected: Debian Wheezy 7, RHEL/CentOS 5 and 6 are affected (and probably Ubuntu Trusty 14.04)
  • not affected: Debian 8 Jessie, RHEL/CentOS 7 (and probably Tbuntu Utopic 14.10)

There are a few workaround.

Workaround #1: wrapper (already suggested by Mark Wagner)

Since mkdir works you could write a shell function that overrides mkdir (or a script /usr/local/bin/mkdir as this is usualy before /bin). That script look for a -p in the args then recursively invoke mkdir without "-p".

Workaround #2: umask 0002

If you can control the script that calls mkdir, you can set the mask before invoking mkdir:

(umask 0002 ; mkdir -p /path/to/dir)

Your other questions:

So I wonder if there is another possibility to solve this problem. It would be perfect to be able to completely disable/ignore the old unix-style permission stuff for a ACL-controlled directory.

No, Permission are required for compatibility, also read Why does chmod(1) on the group affect the ACL mask?

Or disable this "effective ACL" stuff.

No