Spec-Zone.ru › Ansible

Модуль community.general.homectl — управление учётными записями пользователей с помощью systemd-homed

Примечание

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

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

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

Чтобы использовать модуль в плейбуке, укажите: community.general.homectl.

Добавлено в community.general 4.4.0

  • Краткое описание
  • Требования
  • Параметры
  • Атрибуты
  • Примечания
  • Примеры
  • Возвращаемые значения

Краткое описание

  • Управляет домашним каталогом пользователя, управляемым systemd-homed.

Требования

Следующие требования необходимы на узле, выполняющем этот модуль.

  • passlib (библиотека Python, рекомендуется) или legacycrypt в Python 3.13 и новее
  • В Python 3.12 и более ранних версиях зависимости не требуются, но в этом случае используется устаревший модуль стандартной библиотеки crypt.

Параметры

Параметр

Комментарии

disksize

string

Предполагаемый объём дискового пространства домашнего каталога.

Удобочитаемое значение, например 10G, 10M или 10B.

email

string

Адрес электронной почты пользователя.

environment

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

string

Строка со значениями переменных среды, разделёнными запятыми. Каждая переменная и её значение задаются для сеанса входа пользователя в формате, совместимом с putenv(\).

Любая указанная здесь переменная среды автоматически задаётся pam_systemd для всех сеансов входа пользователя.

gid

integer

Задаёт gid пользователя.

При использовании uid homed требует, чтобы значение совпадало.

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

homedir

path

Путь, используемый в качестве домашнего каталога пользователя.

Это каталог, куда монтируется домашний каталог пользователя, когда он входит в систему.

Здесь не хранятся данные пользователя; см. imagepath.

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

iconname

string

Имя значка, выбранного пользователем, например для аватара.

Имя должно соответствовать семантике, определённой в спецификации именования значков.

Подробности см. на странице https://specifications.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html.

imagepath

path

Путь для размещения домашнего каталога пользователя.

Дополнительные сведения см. на странице https://www.freedesktop.org/software/systemd/man/homectl.html#--image-path=PATH.

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

language

string

Предпочитаемый язык/локаль пользователя.

Значение должно быть в формате, совместимом с переменной среды LANG.

location

string

Произвольная строка с описанием местоположения пользователя.

locked

boolean

Определяет, следует ли заблокировать учётную запись пользователя.

Варианты:

  • false
  • true

memberof

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

string

Строка со списком групп UNIX, разделённых запятыми, в которые должен входить пользователь.

Группы, в которые должен входить пользователь, следует указать в виде списка, разделённого запятыми.

mountopts

string

Строка с параметрами монтирования домашнего каталога пользователя, разделёнными запятыми.

Допустимые параметры: nosuid, nodev или noexec.

По умолчанию homed использует nodev и nosuid, а noexec отключён.

name

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

string / обязательный

Имя пользователя, которого нужно создать, удалить или обновить.

notafter

integer

Время в секундах с начала эпохи UNIX, после которого запись следует считать недействительной для входа в систему.

notbefore

integer

Время в секундах с начала эпохи UNIX, до которого запись следует считать недействительной для входа в систему.

password

string

Задаёт пароль пользователя.

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

Модуль принимает пароль и создаёт его хеш SHA-512 с 10000 раундами генерации соли с помощью crypt.

См. https://systemd.io/USER_RECORD/.

Обязателен для state=present. При обновлении существующего пользователя это значение сверяется с хранящимся в homed хешем.

passwordhint

string

Подсказка для пароля указанного пользователя.

realm

string

«Область» (realm), в которой определён пользователь.

realname

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

string

Настоящее («человеческое») имя пользователя.

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

resize

boolean

При использовании с disksize этот параметр пытается немедленно изменить размер домашнего каталога.

Варианты:

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

shell

string

Исполняемый файл оболочки для входа пользователя в систему через терминал.

Если значение не указано, homed по умолчанию использует /bin/bash.

skeleton

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

path

Абсолютный путь к каталогу-шаблону, содержимое которого копируется в новый домашний каталог.

Используется только при первом создании домашнего каталога.

Если значение не указано, homed по умолчанию использует /etc/skel.

sshkeys

string

Строка со списком открытых ключей SSH, которым разрешён доступ к учётной записи; ключи разделяются запятыми.

Ключи должны соответствовать формату строк в традиционном файле ~/.ssh/authorized_key.

state

string

Операция, которую необходимо выполнить с пользователем.

Варианты:

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

storage

string

Определяет механизм хранения домашнего каталога пользователя.

Если тип хранилища не указан, homed.conf(5\) определяет используемый тип по умолчанию.

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

Варианты:

  • "classic"
  • "luks"
  • "directory"
  • "subvolume"
  • "fscrypt"
  • "cifs"

timezone

string

Предпочитаемый часовой пояс пользователя.

Строка местоположения должна быть совместима с tzdata, например America/New_York.

uid

integer

Задаёт UID пользователя.

При использовании gid homed требует, чтобы значение совпадало.

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

umask

integer

Задаёт umask для сеансов входа пользователя.

Значение от 0000 до 0777.

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: full

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

diff_mode

Поддержка: none

В режиме diff возвращает сведения об изменениях (или возможных изменениях в check_mode).

Примечания

Примечание

  • При наличии этот модуль использует passlib для хеширования паролей, а в противном случае — модуль Python crypt или legacycrypt.

Примеры

- name: Add the user 'james'
  community.general.homectl:
    name: johnd
    password: myreallysecurepassword1!
    state: present

- name: Add the user 'alice' with a zsh shell, uid of 1000, and gid of 2000
  community.general.homectl:
    name: alice
    password: myreallysecurepassword1!
    state: present
    shell: /bin/zsh
    uid: 1000
    gid: 1000

- name: Modify an existing user 'frank' to have 10G of diskspace and resize usage now
  community.general.homectl:
    name: frank
    password: myreallysecurepassword1!
    state: present
    disksize: 10G
    resize: true

- name: Remove an existing user 'janet'
  community.general.homectl:
    name: janet
    state: absent

Возвращаемые значения

Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:

Ключ

Описание

data

dictionary

Словарь, возвращаемый homectl inspect -j.

Возвращается: success

Пример: {"data": {"binding": {"e9ed2a5b0033427286b228e97c1e8343": {"fileSystemType": "btrfs", "fileSystemUuid": "7bd59491-2812-4642-a492-220c3f0c6c0b", "gid": 60268, "imagePath": "/home/james.home", "luksCipher": "aes", "luksCipherMode": "xts-plain64", "luksUuid": "7f05825a-2c38-47b4-90e1-f21540a35a81", "luksVolumeKeySize": 32, "partitionUuid": "5a906126-d3c8-4234-b230-8f6e9b427b2f", "storage": "luks", "uid": 60268}}, "diskSize": 3221225472, "disposition": "regular", "lastChangeUSec": 1641941238208691, "lastPasswordChangeUSec": 1641941238208691, "privileged": {"hashedPassword": ["$6$ov9AKni.trf76inT$tTtfSyHgbPTdUsG0CvSSQZXGqFGdHKQ9Pb6e0BTZhDmlgrL/vA5BxrXduBi8u/PCBiYUffGLIkGhApjKMK3bV."]}, "signature": [{"data": "o6zVFbymcmk4YTVaY6KPQK23YCp+VkXdGEeniZeV1pzIbFzoaZBvVLPkNKMoPAQbodY5BYfBtuy41prNL78qAg==", "key": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAbs7ELeiEYBxkUQhxZ+5NGyu6J7gTtZtZ5vmIw3jowcY=\n-----END PUBLIC KEY-----\n"}], "status": {"e9ed2a5b0033427286b228e97c1e8343": {"diskCeiling": 21845405696, "diskFloor": 268435456, "diskSize": 3221225472, "service": "io.systemd.Home", "signedLocally": true, "state": "inactive"}}, "userName": "james"}}

Авторы

  • James Livulpi (@jameslivulpi)

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

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

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

Spec-Zone.ru

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