Насколько разумно делать надёжную работу над системами с ограничительной umask?

Q1. Если вы настроите root с помощью ограничивающего umask, это повлияет на файлы, созданные при запуске, правда? (Если вы не сообщите, что хотите, чтобы обеспечить определенный режим, разрешите).

A1. Похоже, он не может автоматически сбросить umask.

  • Использование доступного для обновления, доступного в envronment с ограничительной umask
  • [ansible-project] Временная настройка umask

Q2. Что мы можем сделать из этого?

  1. Есть ли способ написать несущие роли, которые они никогда не будут зависеть от umask?
  2. Есть ли недостатки в написании незаменимой роли для работы в рамках этого ограничения?

Теперь Ansible отвечает на этот вопрос, добавляя опцию umask , к модулям, подобным упомянутым, которые создают файлы без определенного режима.

  • pip_module.html опции #
  • Невозможно установить маску / режим для модуля Git # 10279 – Закрыто

Я не вижу большого недостатка, если вы добавите этот более явный вариант, когда это необходимо. Может быть, просто небольшое раздражение при чтении роли.

Я отмечаю, что модуль copy не реализует umask . Вы можете указать mode , просто это немного отличается от семантики. Если вы можете указать umask , и файл уже существует (независимо от содержимого), то его режим не будет изменен. (В той роли, над которой я работаю, я считаю полезным, чтобы модуль копирования заставил меня задуматься).

Я отмечаю, что в исходном сообщении упоминаются права на доступ к запрету на доступную установку в /usr/lib/python2.6/site-packages . Разумеется, это также будет проблемой при запуске pip вручную. Это звучит как дефект в пипе … но в отличие от пакетов ОС пакеты pip также могут быть установлены внутри virtualenv , поэтому для разработчиков намного сложнее определить намерение пользователя. Вероятно, это скорее пример потенциально непредвиденной проблемы использования ограничительной umask.