ansible.builtin.user – Управление учетными записями пользователей
Примечание
Этот модуль является частью ansible-base и включён во все установки Ansible. В большинстве случаев вы можете использовать короткое имя модуля user, даже не указывая ключевое слово collections:. Несмотря на это, мы рекомендуем использовать FQCN для лёгкой ссылки на документацию по модулю и для предотвращения конфликтов с другими коллекциями, которые могут иметь то же имя модуля.
Новое в версии 0.2: of ansible.builtin
Описание
- Управление учетными записями пользователей и атрибутами пользователей.
- Для целевых систем Windows используйте модуль ansible.windows.win_user вместо этого.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| append логический тип |
| Если yes, добавить пользователя в группы, указанные в groups.Если no, пользователь будет добавлен только в группы, указанные в groups, удаляя его из всех других групп. |
| authorization строка добавлен в версии 2.8 ansible.builtin | Устанавливает авторизацию пользователя. Не выполняет никаких действий при использовании с другими платформами. Можно установить несколько авторизаций, разделяя их запятыми. Для удаления всех авторизаций используйте authorization=''.В настоящее время поддерживается на Illumos/Solaris. | |
| comment строка | Необязательно устанавливает описание (также известное как GECOS) учетной записи пользователя. | |
| create_home логический тип |
| Если не установлено значение no, домашний каталог будет создан для пользователя при создании учетной записи или если домашний каталог не существует.Изменено с createhome на create_home в Ansible 2.5.псевдонимы: createhome |
| expires число с плавающей точкой добавлен в версии 1.9 ansible.builtin | Время истечения срока действия для пользователя в формате эпохи, оно будет проигнорировано на платформах, которые не поддерживают эту функцию. В настоящее время поддерживается на GNU/Linux, FreeBSD и DragonFlyBSD. С Ansible 2.6 можно удалить время истечения срока действия, указав отрицательное значение. В настоящее время поддерживается на GNU/Linux и FreeBSD. | |
| force логический тип |
| Это влияет только на state=absent, принудительно удаляет пользователя и связанные каталоги на поддерживаемых платформах.Поведение такое же, как и userdel --force, см. страницу руководства для userdel на вашей системе для получения подробной информации и поддержки.При использовании с generate_ssh_key=yes это принудительно перезаписывает существующий ключ. |
| generate_ssh_key логический тип добавлен в версии 0.9 ansible.builtin |
| Необходимо ли сгенерировать SSH-ключ для данного пользователя. Это не перезапишет существующий SSH-ключ, если не используется вместе с force=yes. |
| group строка | Необязательно устанавливает основную группу пользователя (принимает имя группы). | |
| groups список / элементы=строка | Список групп, к которым будет добавлен пользователь. Если установлено значение пустая строка '', пользователь удаляется из всех групп, кроме основной.До Ansible 2.3 единственным допустимым форматом ввода была строка, разделенная запятыми. | |
| hidden логический тип добавлен в версии 2.6 ansible.builtin |
| Только macOS, необязательно скрывает пользователя из окна входа в систему и системных настроек. Значение по умолчанию будет yes, если используется параметр system. |
| home путь | Необязательно задает домашний каталог пользователя. | |
| local логический тип добавлен в версии 2.4 ansible.builtin |
| Принудительно использует альтернативы команды "local" на платформах, которые их реализуют. Это полезно в средах с централизованной аутентификацией, когда нужно управлять локальными пользователями (другими словами, это использует luseradd вместо useradd).Это проверит /etc/passwd на предмет существования учетной записи перед вызовом команд. Если база данных локальных учетных записей находится где-то помимо /etc/passwd, эта настройка не будет работать должным образом.Для этого требуется, чтобы указанные выше команды, а также /etc/passwd существовали на целевом хосте, в противном случае это приведет к ошибке. |
| login_class строка | Необязательно устанавливает класс входа в систему пользователя, функция большинства BSD ОС. | |
| move_home логический тип |
| Если установлено значение yes при использовании с home: , попытаться переместить старый домашний каталог пользователя в указанный каталог, если он там еще не существует, и старый домашний каталог существует. |
| name строка / обязательно | Имя пользователя, для создания, удаления или изменения. псевдонимы: user | |
| non_unique логический тип добавлен в версии 1.1 ansible.builtin |
| Необязательно, при использовании с опцией -u, эта опция позволяет изменить идентификатор пользователя на не уникальное значение. |
| password строка | Необязательно задает пароль пользователя на это зашифрованное значение. На macOS системах это значение должно быть открытым текстом. Будьте внимательны к вопросам безопасности. Для создания отключенной учетной записи на Linux системах установите это значение на '!' или '*'.Для создания отключенной учетной записи на OpenBSD установите это значение на '*************'.См. https://docs.ansible.com/ansible/latest/reference_appendices/faq.html#how-do-i-generate-encrypted-passwords-for-the-user-module для получения подробной информации о различных способах генерации этих значений пароля. | |
| password_expire_max целое число добавлен в версии 2.11 ansible.builtin | Максимальное количество дней между сменой пароля. Поддерживается только на Linux. | |
| password_expire_min целое число добавлен в версии 2.11 ansible.builtin | Минимальное количество дней между сменой пароля. Поддерживается только на Linux. | |
| password_lock логический тип добавлен в версии 2.6 ansible.builtin |
| Заблокировать пароль ( usermod -L, usermod -U, pw lock).Реализация отличается в зависимости от платформы. Эта опция не всегда означает, что пользователь не может войти в систему с помощью других методов. Эта опция не отключает пользователя, а только блокирует пароль. Этот параметр должен быть установлен в значение False для разблокировки текущего заблокированного пароля. Отсутствие этого параметра не разблокирует пароль.В настоящее время поддерживается на Linux, FreeBSD, DragonFlyBSD, NetBSD, OpenBSD. |
| profile строка добавлен в версии 2.8 ansible.builtin | Устанавливает профиль пользователя. Не выполняет никаких действий при использовании с другими платформами. Можно установить несколько профилей, разделяя их запятыми. Для удаления всех профилей используйте profile=''.В настоящее время поддерживается на Illumos/Solaris. | |
| remove логический тип |
| Это влияет только на state=absent, попытка удалить каталоги, связанные с пользователем.Поведение такое же, как и userdel --remove, см. страницу руководства для получения подробной информации. |
| role строка добавлен в версии 2.8 ansible.builtin | Устанавливает роль пользователя. Не выполняет никаких действий при использовании с другими платформами. Можно установить несколько ролей, разделяя их запятыми. Для удаления всех ролей используйте role=''.В настоящее время поддерживается на Illumos/Solaris. | |
| seuser строка добавлен в версии 2.1 ansible.builtin | Необязательно устанавливает тип seuser (user_u) на системах с включенным selinux. | |
| shell строка | Необязательно задает оболочку пользователя. На macOS, до Ansible 2.5, стандартной оболочкой для пользователей, не являющихся системными, была /usr/bin/false. Начиная с Ansible 2.5, стандартной оболочкой для пользователей, не являющихся системными, на macOS является /bin/bash.См. примечания для получения подробной информации о том, как другие операционные системы определяют стандартную оболочку с помощью базового инструмента. | |
| skeleton строка добавлен в версии 2.0 ansible.builtin | Необязательно задает каталог шаблона домашнего каталога. Требуется параметр create_home! | |
| ssh_key_bits целое число добавлен в версии 0.9 ansible.builtin | Значение по умолчанию: "значение по умолчанию устанавливается ssh-keygen" | Необязательно укажите количество битов в SSH-ключе для создания. |
| ssh_key_comment строка добавлен в версии 0.9 ansible.builtin | Значение по умолчанию: "сгенерировано ansible на $HOSTNAME" | Необязательно задайте комментарий для SSH-ключа. |
| ssh_key_file путь добавлен в версии 0.9 ansible.builtin | Необязательно укажите имя файла SSH-ключа. Если это имя файла относительно, оно будет относиться к домашнему каталогу пользователя. По умолчанию этот параметр .ssh/id_rsa. | |
| ssh_key_passphrase строка добавлен в версии 0.9 ansible.builtin | Установите пароль для SSH-ключа. Если пароль не указан, SSH-ключ по умолчанию не имеет пароля. |
| ssh_key_type string добавлено в 0.9 ansible.builtin | Значение по умолчанию: "rsa" | Необязательно укажите тип SSH-ключа для генерации. Доступные типы SSH-ключей будут зависеть от реализации на целевом хосте. |
| state string |
| Указывает, должен ли аккаунт существовать или нет, выполняя действия, если состояние отличается от указанного. |
| system boolean |
| При создании аккаунта state=present, установление этого значения в yes делает пользователя системным аккаунтом.Это значение нельзя изменить для существующих пользователей. |
| uid integer | Необязательно устанавливает UID пользователя. | |
| update_password string добавлено в 1.3 ansible.builtin |
| always будет обновлять пароли, если они отличаются.on_create будет устанавливать пароль только для вновь созданных пользователей. |
Примечания
Примечание
- Существуют определенные требования к платформам для управления пользователями. Однако они, как правило, предварительно установлены в системе, и Ansible потребует их наличия во время выполнения. Если их нет, будет показано описательное сообщение об ошибке.
- На платформах SunOS тень файла автоматически резервируется, поскольку этот модуль редактирует его напрямую. На других платформах тень файла резервируется базовыми инструментами, используемыми этим модулем.
- На платформах 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для удаления учетных записей. - Поддерживает
check_mode.
См. также
См. также
- ansible.posix.authorized_key
-
Официальная документация по модулю ansible.posix.authorized_key.
- ansible.builtin.group
-
Официальная документация по модулю ansible.builtin.group.
- ansible.windows.win_user
-
Официальная документация по модулю ansible.windows.win_user.
Примеры
- name: Add the user 'johnd' with a specific uid and a primary group of 'admin'
ansible.builtin.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
ansible.builtin.user:
name: james
shell: /bin/bash
groups: admins,developers
append: yes
- name: Remove the user 'johnd'
ansible.builtin.user:
name: johnd
state: absent
remove: yes
- name: Create a 2048-bit SSH key for user jsmith in ~jsmith/.ssh/id_rsa
ansible.builtin.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
ansible.builtin.user:
name: james18
shell: /bin/zsh
groups: developers
expires: 1422403387
- name: Starting at Ansible 2.6, modify user, remove expiry time
ansible.builtin.user:
name: james18
expires: -1
- name: Set maximum expiration date for password
user:
name: ram19
password_expire_max: 10
- name: Set minimum expiration date for password
user:
name: pushkar15
password_expire_min: 5
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| append boolean | При state равно present и пользователи существуют | Указывает, добавлять ли пользователя в группы. Пример: True |
| comment string | При пользователи существуют | Раздел комментариев из файла passwd, обычно имя пользователя. Пример: Agent Smith |
| create_home boolean | Когда пользователь не существует и не проверяется режим | Указывает, создавать ли домашний каталог. Пример: True |
| force boolean | Когда state равно absent и пользователь существует | Указывает, был ли пользовательский аккаунт удален принудительно. |
| group integer | При пользователи существуют | ID первичной группы пользователя Пример: 1001 |
| groups string | Когда groups не пустое и state равно present
| Список групп, членом которых является пользователь. Пример: chrony,apache |
| home string | При state равно present
| Путь к домашнему каталогу пользователя. Пример: /home/asmith |
| move_home boolean | При state равно present и пользователь существует | Указывает, перемещать ли существующий домашний каталог. |
| name string | всегда | Имя учетной записи пользователя. Пример: asmith |
| password string | При state равно present и password не пустое | Замаскированное значение пароля. Пример: NOT_LOGGING_PASSWORD |
| password_expire_max integer | При пользователи существуют | Максимальное количество дней, в течение которых пароль действителен. Пример: 20 |
| password_expire_min integer | При пользователи существуют | Минимальное количество дней между сменой пароля Пример: 20 |
| remove boolean | При state равно absent и пользователь существует | Указывает, удалить ли учетную запись пользователя. Пример: True |
| shell string | При state равно present
| Оболочка входа пользователя. Пример: /bin/bash |
| ssh_fingerprint string | При generate_ssh_key равно True
| Отпечаток сгенерированного SSH-ключа. Пример: 2048 SHA256:aYNHYcyVm87Igh0IMEDMbvW0QDlRQfE0aJugp684ko8 ansible-generated on host (RSA) |
| ssh_key_file string | При generate_ssh_key равно True
| Путь к сгенерированному закрытому ключу SSH. Пример: /home/asmith/.ssh/id_rsa |
| ssh_public_key string | При generate_ssh_key равно True
| Сгенерированный открытый ключ SSH. Пример: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC95opt4SPEC06tOYsJQJIuN23BbLMGmYo8ysVZQc4h2DZE9ugbjWWGS1/pweUGjVstgzMkBEeBCByaEf/RJKNecKRPeGd2Bw9DCj/bn5Z6rGfNENKBmo 618mUJBvdlEgea96QGjOwSB7/gmonduC7gsWDMNcOdSE3wJMTim4lddiBx4RgC9yXsJ6Tkz9BHD73MXPpT5ETnse+A3fw3IGVSjaueVnlUyUmOBf7fzmZbhlFVXf2Zi2rFTXqvbdGHKkzpw1U8eB8xFPP7y d5u1u0e6Acju/8aZ/l17IDFiLke5IzlqIMRTEbDwLNeO84YQKWTm9fODHzhYe0yvxqLiK07 ansible-generated on host' |
| stderr string | Когда stderr возвращается командой, которая запускается | Стандартная ошибка выполнения команд. Пример: Группа wheels не существует |
| stdout string | При возвращении стандартного вывода командой, которая выполняется | Стандартный вывод от выполнения команд. |
| system boolean | Когда system передано модулю, а учетная запись не существует | Является ли аккаунт системным аккаунтом. Пример: True |
| uid integer | Когда uid передано модулю | Идентификатор пользователя учетной записи пользователя. Пример: 1044 |
Авторы
- Stephen Fromm (@sfromm)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/ansible/builtin/user_module.html