htpasswd – управление файлами пользователей для аутентификации по принципу «пользователь/пароль»
Новая в версии 1.3.
Описание
- Добавление и удаление записей имени пользователя/пароля в файле паролей с помощью htpasswd.
- Используется веб-серверами, такими как Apache и Nginx, для аутентификации по принципу «пользователь/пароль».
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- passlib>=1.6
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attributes - добавлено в 2.3 | Атрибуты, которые должен иметь файл или каталог. Для получения поддерживаемых флагов обратитесь к странице справки для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и в выводе lsattr. = по умолчанию, в противном случае + или - операторы должны быть включены в строку.псевдонимы: attr | |
| create логический |
| Используется с state=present. Если указано, файл будет создан, если он еще не существует. Если установлено «нет», произойдет ошибка, если файл не существует |
| crypt_scheme - |
| Схема шифрования, которая будет использоваться. Помимо четырёх вариантов, перечисленных здесь, вы также можете использовать любой другой хэш, поддерживаемый passlib, такой как md5_crypt и sha256_crypt, которые являются хэшами linux passwd. В этом случае файл паролей не будет совместим с Apache или Nginx |
| group - | Имя группы, которой должен принадлежать файл/каталог, как в команде chown. | |
| mode - | Режим файла или каталога. Для тех, кто знаком с /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны либо добавить ведущую ноль, чтобы Ansible's YAML-парсер знал, что это восьмеричное число (например, 0644 или 01777), либо заключить его в кавычки (например, '644' или '1777'), чтобы Ansible получил строку и смог выполнить преобразование из строки в число. Передача Ansible числа без соблюдения одного из этих правил приведёт к десятичному числу, что даст неожиданный результат. Начиная с версии 1.8, режим может быть указан как символьный режим (например, u+rwx или u=rw,g=r,o=r). | |
| name - / обязательно | Имя пользователя для добавления или удаления псевдонимы: имя_пользователя | |
| owner - | Имя пользователя, которому должен принадлежать файл/каталог, как в команде chown. | |
| password - | Пароль, связанный с пользователем. Должен быть указан, если пользователь ещё не существует. | |
| path - / обязательно | Путь к файлу, содержащему имена пользователей и пароли псевдонимы: dest, destfile | |
| selevel - | По умолчанию: "s0" | Часть контекста файла SELinux. Это атрибут MLS/MCS, иногда известный как range. Функция _default работает так же, как и для seuser. |
| serole - | Роль в контексте файла SELinux. Функция _default работает так же, как и для seuser. | |
| setype - | Тип в контексте файла SELinux. Функция _default работает так же, как и для seuser. | |
| seuser - | Пользователь в контексте файла SELinux. Будет по умолчанию соответствовать политике системы, если применимо. Если установлено _default, будет использоваться часть политики user, если она доступна. | |
| state - |
| Указывает, должен ли быть указан пользователь или нет |
| unsafe_writes логический добавлено в 2.2 |
| По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов, но иногда системы настроены или просто сломаны таким образом, что это невозможно. Один из примеров — смонтированные файлы Docker, которые не могут быть обновлены атомарно внутри контейнера и могут быть записаны только небезопасным способом. Этот параметр позволяет Ansible вернуться к небезопасным методам обновления файлов, когда атомарные операции завершаются неудачно (однако он не заставляет Ansible выполнять небезопасные записи). ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных. |
Примечания
Примечание
- Этот модуль зависит от Python-библиотеки passlib, которую необходимо установить на все целевые системы.
- В Debian, Ubuntu или Fedora: установите python-passlib.
- В RHEL или CentOS: включите EPEL, затем установите python-passlib.
Примеры
# Add a user to a password file and ensure permissions are set
- htpasswd:
path: /etc/nginx/passwdfile
name: janedoe
password: '9s36?;fyNp'
owner: root
group: www-data
mode: 0640
# Remove a user from a password file
- htpasswd:
path: /etc/apache2/passwdfile
name: foobar
state: absent
# Add a user to a password file suitable for use by libpam-pwdfile
- htpasswd:
path: /etc/mail/passwords
name: alex
password: oedu2eGh
crypt_scheme: md5_crypt
Статус
- Этот модуль не гарантирует обратной совместимости интерфейса. [превью]
- Этот модуль поддерживается сообществом Ansible. [community]
Авторы
- Команда разработчиков Ansible
Подсказка
Если вы обнаружите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.7/modules/htpasswd_module.html