Spec-Zone.ru › Ansible

Модуль community.general.htpasswd — Управление файлами пользователей для аутентификации по основанию

Примечание

Этот модуль является частью коллекции community.general (версия 9.5.0).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.

Чтобы установить её, используйте: ansible-galaxy collection install community.general. Для использования этого модуля необходимы дополнительные требования, см. Требования для подробностей.

Чтобы использовать его в книге задач, укажите: community.general.htpasswd.

  • Описание
  • Требования
  • Параметры
  • Атрибуты
  • Примечания
  • Примеры

Описание

  • Добавление и удаление записей имя пользователя/пароль в файле паролей с помощью htpasswd.
  • Используется веб-серверами, такими как Apache и Nginx, для аутентификации по основанию.

Требования

Ниже перечислены требования к хосту, на котором выполняется этот модуль.

  • passlib>=1.6

Параметры

Параметр

Комментарии

attributes

псевдонимы: attr

строка

Атрибуты, которые должен иметь создаваемый файл.

Список поддерживаемых флагов см. в справке man для команды chattr на целевой системе.

Эта строка должна содержать атрибуты в том же порядке, что и при выводе команды lsattr.

Оператор = предполагается по умолчанию, в противном случае необходимо включить операторы + или - в строку.

create

булево

Используется с state=present. Если true, файл будет создан, если он не существует. В противном случае, если установлено false и файл не существует, будет выдано ошибку.

Варианты:

  • false
  • true ← (по умолчанию)

group

строка

Имя группы, которая должна владеть объектом файловой системы, как это передаётся в команду chown.

Если не указано, используется текущая группа текущего пользователя, за исключением случаев, когда вы являетесь root, в этом случае может сохраняться предыдущая принадлежность.

hash_scheme

псевдонимы: crypt_scheme

строка

Схема хеширования для использования. Помимо четырёх вариантов, перечисленных здесь, можно также использовать любые другие хеши, поддерживаемые passlib, такие как portable_apache22 и host_apache24; или md5_crypt и sha256_crypt, которые являются хешами Linux passwd. Только некоторые схемы помимо четырёх вариантов ниже будут совместимы с Apache или Nginx, а поддерживаемые схемы зависят от версии passlib и его зависимостей.

См. параметр default_scheme в https://passlib.readthedocs.io/en/stable/lib/passlib.apache.html#passlib.apache.HtpasswdFile.

Некоторые доступные варианты могут включать: apr_md5_crypt, des_crypt, ldap_sha1, plaintext.

По умолчанию: "apr_md5_crypt"

mode

любой

Разрешения, которые должен иметь создаваемый объект файловой системы.

Для тех, кто привык к команде /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны предоставить Ansible достаточную информацию для корректного анализа. Для согласованных результатов укажите восьмеричные числа в кавычках (например, '644' или '1777') для того, чтобы Ansible получил строку и смог выполнить собственное преобразование из строки в число. Добавление ведущего нуля (например, 0755) иногда работает, но может завершиться ошибкой в циклах и некоторых других ситуациях.

Передача Ansible числа без соблюдения этих правил приведёт к использованию десятичного числа, что приведёт к неожиданным результатам.

Начиная с Ansible 1.8, режим может быть задан в символическом формате (например, u+rwx или u=rw,g=r,o=r).

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

Если mode не указан и целевой объект файловой системы существует, будет использован режим существующего объекта файловой системы.

Указание mode — лучший способ гарантировать создание объектов файловой системы с правильными разрешениями. См. CVE-2020-1736 для получения дополнительных сведений.

name

псевдонимы: username

строка / обязательно

Имя пользователя для добавления или удаления.

owner

строка

Имя пользователя, который должен владеть объектом файловой системы, как это передаётся в команду chown.

Если не указано, используется текущий пользователь, за исключением случаев, когда вы являетесь root, в этом случае может сохраняться предыдущая принадлежность.

Указание числового имени пользователя будет интерпретировано как идентификатор пользователя, а не как имя пользователя. Избегайте числовых имён пользователей, чтобы избежать этой путаницы.

password

строка

Пароль, связанный с пользователем.

Необходимо указать, если пользователь ещё не существует.

path

псевдонимы: dest, destfile

путь / обязательно

Путь к файлу, содержащему имена пользователей и пароли.

selevel

строка

Часть уровня SELinux контекста объекта файловой системы.

Это атрибут MLS/MCS, иногда известный как range.

Если установлено _default, будет использоваться часть политики level, если она доступна.

serole

строка

Часть роли SELinux контекста объекта файловой системы.

Если установлено _default, будет использоваться часть политики role, если она доступна.

setype

строка

Часть типа SELinux контекста объекта файловой системы.

Если установлено _default, будет использоваться часть политики type, если она доступна.

seuser

строка

Часть пользователя SELinux контекста объекта файловой системы.

По умолчанию используется политика system применительно.

Если установлено _default, будет использоваться часть политики user если она доступна.

state

строка

Присутствует ли запись пользователя в файле или нет.

Варианты:

  • "present" ← (по умолчанию)
  • "absent"
END_OF_DOCUMENT_MARKER

unsafe_writes

boolean

Влияет на то, когда использовать атомарную операцию для предотвращения повреждения данных или несогласованных чтений из целевого объекта файловой системы.

По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых объектов файловой системы, но иногда системы настроены или просто неисправны таким образом, что это невозможно. Одним из примеров являются объекты файловой системы, смонтированные с помощью Docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только неатомарно.

Этот параметр позволяет Ansible перейти к небезопасным методам обновления объектов файловой системы, когда атомарные операции завершаются неудачно (тем не менее, он не заставляет Ansible выполнять небезопасные записи).

ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных.

Варианты:

  • false ← (по умолчанию)
  • true

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: полная

Может работать в режиме check_mode и возвращать прогноз о статусе изменений без модификации цели.

diff_mode

Поддержка: отсутствует

В режиме сравнения будет возвращать подробности о том, что изменилось (или, возможно, должно измениться в check_mode).

Примечания

Примечание

  • Этот модуль зависит от библиотеки Python passlib, которая должна быть установлена на всех целевых системах.
  • В Debian < 11, Ubuntu <= 20.04 или Fedora: установите python-passlib.
  • В Debian, Ubuntu: установите python3-passlib.
  • В RHEL или CentOS: включите EPEL, а затем установите python-passlib.

Примеры

- name: Add a user to a password file and ensure permissions are set
  community.general.htpasswd:
    path: /etc/nginx/passwdfile
    name: janedoe
    password: '9s36?;fyNp'
    owner: root
    group: www-data
    mode: 0640

- name: Remove a user from a password file
  community.general.htpasswd:
    path: /etc/apache2/passwdfile
    name: foobar
    state: absent

- name: Add a user to a password file suitable for use by libpam-pwdfile
  community.general.htpasswd:
    path: /etc/mail/passwords
    name: alex
    password: oedu2eGh
    hash_scheme: md5_crypt

Авторы

  • Команда разработчиков Ansible

Ссылки на коллекции

  • Отслеживание ошибок
  • Репозиторий (источники)
  • Задать вопрос
  • Отправить отчет об ошибке
  • Запросить функцию
  • Связь

© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/general/htpasswd_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API