user — Управление учётными записями пользователей
Обзор
- Управление учётными записями пользователей и атрибутами пользователей.
- Для целевых систем Windows используйте модуль win_user вместо этого.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| append bool |
| Если yes, добавить пользователя в группы, указанные в groups. Если no, пользователь будет добавлен только в указанные в groups группы, удалив его из всех остальных. |
| comment | Необязательно задаёт описание (также известное как GECOS) учётной записи пользователя. | |
| create_home bool |
| Если не установлено no, домашний каталог для пользователя будет создан при создании учётной записи или если домашний каталог не существует.Изменено с createhome на create_home в версии 2.5.псевдонимы: createhome |
| expires (добавлен в 1.9) | Время действия пользователя в формате эпохи, оно будет проигнорировано на платформах, которые этого не поддерживают. В настоящее время поддерживается на GNU/Linux, FreeBSD и DragonFlyBSD. С версии 2.6 вы можете удалить время действия, указав отрицательное значение. В настоящее время поддерживается на GNU/Linux и FreeBSD. | |
| force bool |
| Это влияет только на state=absent, оно принудительно удаляет пользователя и связанные каталоги на поддерживаемых платформах. Поведение аналогично userdel --force, см. страницу руководства по userdel на вашей системе для получения подробной информации и поддержки. |
| generate_ssh_key bool |
| Создавать ли SSH-ключ для данного пользователя. Это не перезапишет существующий SSH-ключ. |
| group | Необязательно задаёт основную группу пользователя (принимает имя группы). | |
| groups | Список групп, к которым будет добавлен пользователь. При установке пустой строки '', null, или ~, пользователь удаляется из всех групп, кроме основной. (~ означает null в YAML)До версии 2.3 единственный допустимый формат ввода — строка, разделённая запятыми. Теперь этот параметр принимает как список, так и строку, разделённую запятыми. | |
| hidden bool (добавлен в 2.6) |
| Только macOS, необязательно скрывает пользователя из окна входа в систему и системных настроек. Значение по умолчанию будет «True», если используется параметр «system». |
| home | Необязательно задаёт домашний каталог пользователя. | |
| local bool (добавлен в 2.4) |
| Принудительно использует альтернативные команды «local» на платформах, которые их реализуют. Это полезно в средах с централизованной аутентификацией, когда вы хотите управлять локальными пользователями. То есть, он использует `luseradd` вместо `useradd`. Это требует, чтобы эти команды существовали на целевом хосте, иначе это будет ошибка. |
| login_class | Необязательно задаёт класс входа пользователя, функция большинства операционных систем BSD. | |
| move_home bool |
| Если установлено yes при использовании с home=, попытаться переместить старый домашний каталог пользователя в указанный каталог, если он там ещё не находится, и старый домашний каталог существует. |
| name обязательно | Имя пользователя для создания, удаления или изменения. псевдонимы: user | |
| non_unique bool |
| Необязательно, при использовании с опцией -u, эта опция позволяет изменить идентификатор пользователя на не уникальное значение. |
| password | Необязательно задаёт пароль пользователя этому зашифрованному значению. В системах macOS это значение должно быть в открытом виде. Будьте внимательны к вопросам безопасности. См. https://docs.ansible.com/ansible/faq.html#how-do-i-generate-crypted-passwords-for-the-user-module для получения подробной информации о различных способах создания этих значений паролей. | |
| password_lock bool (добавлен в 2.6) |
| Заблокировать пароль (usermod -L, pw lock, usermod -C). НО реализация отличается на разных платформах, эта опция не всегда означает, что пользователь не может войти с помощью других методов. Эта опция не отключает пользователя, а только блокирует пароль. Не изменяйте пароль в одной и той же задаче. В настоящее время поддерживается на Linux, FreeBSD, DragonFlyBSD, NetBSD, OpenBSD. |
| remove bool |
| Это влияет только на state=absent, оно пытается удалить каталоги, связанные с пользователем. Поведение аналогично userdel --remove, см. страницу руководства для получения подробной информации и поддержки. |
| seuser (добавлен в 2.1) | Необязательно задаёт тип селинкса (user_u) в системах с включённым selinux. | |
| shell | Необязательно задаёт оболочку пользователя. В macOS до версии 2.5 стандартной оболочкой для пользователей, не являющихся частью системы, была /usr/bin/false. С версии 2.5 стандартной оболочкой для пользователей, не являющихся частью системы, в macOS является /bin/bash. В других операционных системах стандартная оболочка определяется используемым подлежащим инструментом. Подробности см. в разделах "Примечания". | |
| skeleton (добавлен в 2.0) | Необязательно задаёт каталог шаблона домашнего каталога. Требуется параметр create_home! | |
| ssh_key_bits | По умолчанию: "значение по умолчанию устанавливается ssh-keygen" | Необязательно задаёт количество бит в SSH-ключе для создания. |
| ssh_key_comment | По умолчанию: "сгенерировано ansible на $HOSTNAME" | Необязательно задаёт комментарий к SSH-ключу. |
| ssh_key_file | По умолчанию: ".ssh/id_rsa" | Необязательно задаёт имя файла SSH-ключа. Если это относительное имя файла, то оно будет относительным к домашнему каталогу пользователя. |
| ssh_key_passphrase | Устанавливает пароль для SSH-ключа. Если пароль не указан, SSH-ключ по умолчанию не имеет пароля. | |
| ssh_key_type | По умолчанию: "rsa" | Необязательно задаёт тип SSH-ключа для создания. Доступные типы SSH-ключей зависят от реализации, присутствующей на целевом хосте. |
| state |
| Указывает, должна ли учётная запись существовать или нет, выполняя действия, если состояние отличается от указанного. |
| system bool |
| При создании учётной записи state=present, установка этого значения в yes делает пользователя системным. Это значение нельзя изменить для существующих пользователей. |
| uid | Необязательно задаёт UID пользователя. | |
| update_password (добавлен в 1.3) |
| always обновит пароли, если они отличаются. on_create будет устанавливать пароль только для вновь созданных пользователей. |
Примечания
Примечание
- Существуют определенные требования к средствам управления пользователями на каждой платформе. Однако, как правило, они предварительно установлены в системе, и Ansible потребует их присутствия во время выполнения. Если они отсутствуют, будет отображено сообщение об ошибке с описанием.
- Для целевых платформ Windows используйте модуль win_user вместо этого.
- На платформах SunOS shadow-файл резервируется автоматически, поскольку этот модуль редактирует его напрямую. На других платформах shadow-файл резервируется средствами, используемыми этим модулем.
- На macOS этот модуль использует
dsclдля создания, изменения и удаления учетных записей.dseditgroupиспользуется для изменения группы принадлежности. Учетные записи скрываются из окна входа путем изменения/Library/Preferences/com.apple.loginwindow.plist. - В FreeBSD этот модуль использует
pw useraddиchpassдля создания,pw usermodиchpassдля изменения,pw userdelдля удаления,pw lockдля блокировки иpw unlockдля разблокировки учетных записей. - На всех других платформах этот модуль использует
useraddдля создания,usermodдля изменения иuserdelдля удаления учетных записей.
Примеры
- name: Add the user 'johnd' with a specific uid and a primary group of 'admin'
user:
name: johnd
comment: John Doe
uid: 1040
group: admin
- name: Add the user 'james' with a bash shell, appending the group 'admins' and 'developers' to the user's groups
user:
name: james
shell: /bin/bash
groups: admins,developers
append: yes
- name: Remove the user 'johnd'
user:
name: johnd
state: absent
remove: yes
- name: Create a 2048-bit SSH key for user jsmith in ~jsmith/.ssh/id_rsa
user:
name: jsmith
generate_ssh_key: yes
ssh_key_bits: 2048
ssh_key_file: .ssh/id_rsa
- name: Added a consultant whose account you want to expire
user:
name: james18
shell: /bin/zsh
groups: developers
expires: 1422403387
- name: starting at version 2.6, modify user, remove expiry time
user:
name: james18
expires: -1
Значения возврата
Общие значения возврата описаны здесь, ниже приведены поля, уникальные для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| append bool | При состоянии 'present' и пользователе, который существует | Флаг добавления пользователя в группы Пример: True |
| comment строка | Когда пользователь существует | Секция комментариев из файла passwd, обычно имя пользователя Пример: Agent Smith |
| create_home bool | Когда пользователь не существует и режим проверки не задан | Флаг создания домашнего каталога Пример: True |
| force bool | Когда состояние 'absent' и пользователь существует | Флаг принудительного удаления учетной записи пользователя |
| group int | Когда пользователь существует | Идентификатор основной группы пользователя Пример: 1001 |
| groups строка | Когда groups не пусто и state равно 'present' | Список групп, членом которых является пользователь Пример: chrony,apache |
| home строка | Когда state равно 'present' | Путь к домашнему каталогу пользователя Пример: /home/asmith |
| move_home bool | Когда state равно 'present' и пользователь существует | Флаг перемещения существующего домашнего каталога |
| name строка | всегда | Имя учетной записи пользователя Пример: asmith |
| password строка | Когда state равно 'present' и password не пусто | Замаскированное значение пароля Пример: NOT_LOGGING_PASSWORD |
| remove bool | Когда state равно 'absent' и пользователь существует | Флаг удаления учетной записи пользователя Пример: True |
| shell строка | Когда state равно 'present' | Оболочка входа пользователя Пример: /bin/bash |
| ssh_fingerprint строка | Когда generate_ssh_key равно True
| Отпечаток сгенерированного SSH-ключа Пример: 2048 SHA256:aYNHYcyVm87Igh0IMEDMbvW0QDlRQfE0aJugp684ko8 ansible-generated on host (RSA) |
| ssh_key_file строка | Когда generate_ssh_key равно True
| Путь к сгенерированному открытому ключу SSH Пример: /home/asmith/.ssh/id_rsa |
| ssh_public_key строка | Когда generate_ssh_key равно True
| Сгенерированный открытый ключ SSH Пример: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC95opt4SPEC06tOYsJQJIuN23BbLMGmYo8ysVZQc4h2DZE9ugbjWWGS1/pweUGjVstgzMkBEeBCByaEf/RJKNecKRPeGd2Bw9DCj/bn5Z6rGfNENKBmo 618mUJBvdlEgea96QGjOwSB7/gmonduC7gsWDMNcOdSE3wJMTim4lddiBx4RgC9yXsJ6Tkz9BHD73MXPpT5ETnse+A3fw3IGVSjaueVnlUyUmOBf7fzmZbhlFVXf2Zi2rFTXqvbdGHKkzpw1U8eB8xFPP7y d5u1u0e6Acju/8aZ/l17IDFiLke5IzlqIMRTEbDwLNeO84YQKWTm9fODHzhYe0yvxqLiK07 ansible-generated on host' |
| stderr строка | Когда stderr возвращается командой, которая выполняется | Стандартная ошибка, полученная при выполнении команд Пример: Группа wheels не существует |
| stdout строка | Когда стандартный вывод возвращается командой, которая выполняется | Стандартный вывод, полученный при выполнении команд |
| system bool | Когда system передано модулю и учетная запись не существует | Флаг того, является ли учетная запись системной Пример: True |
| uid int | Когда UID передано модулю | Идентификатор пользователя учетной записи Пример: 1044 |
Статус
Этот модуль помечен как stableinterface, что означает, что авторы модуля гарантируют отсутствие несовместимых изменений интерфейса.
Техническое обслуживание
Этот модуль помечен как core, что означает, что он поддерживается Командой ядра Ansible. Подробнее см. Техническое обслуживание и поддержка модулей.
Список других модулей, которые также поддерживаются Командой ядра Ansible, см. здесь.
Поддержка
Дополнительную информацию о поддержке этого модуля компанией Red Hat см. в этой статье базы знаний
Автор
- Stephen Fromm (@sfromm)
Подсказка
Если вы обнаружите проблемы в этой документации, вы можете изменить этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.6/modules/user_module.html