Это - ошибка с гну mkdir
: http://savannah.gnu.org/bugs/?19546 Там не является никаким способом отключить традиционные полномочия Unix. С тех пор mkdir
работы, которые Вы могли записать функции оболочки, которая переопределяет mkdir
. В оболочке функция ищут a -p
в args и выполненный серия non-p-using mkdir
s вместо этого.
Много основанных на Linux систем теперь используют umask 0002 с частными на пользователя группами, таким образом, эта проблема не подходит.
Это была ошибка в gnu mkdir
( # 14371 ), она была исправлена в coreutils 8.22.
Есть несколько обходных путей.
Обходной путь # 1: оболочка (уже предложена Марком Вагнером)
Поскольку mkdir работает, вы можете написать функцию оболочки, которая отменяет mkdir (или скрипт / usr / local / bin / mkdir, поскольку это обычно перед / bin). Этот сценарий ищет -p в аргументах, а затем рекурсивно вызывает mkdir без "-p".
Обходной путь №2: umask 0002
Если вы можете управлять сценарием, вызывающим mkdir, вы можете установить маску перед вызовом mkdir :
(umask 0002 ; mkdir -p /path/to/dir)
Ваши другие вопросы:
Мне интересно, есть ли еще одна возможность решить эту проблему. Было бы идеально иметь возможность полностью отключить / игнорировать старые разрешения в стиле unix для каталога, управляемого ACL.
Нет, для совместимости требуется разрешение, также прочтите Почему chmod (1) на группа влияет на маску ACL?
Или отключите этот "эффективный ACL".
Нет