community.general.homectl 模块 – 使用 systemd-homed 管理用户帐户
注意
此模块是 community.general 集合 (版本 10.1.0) 的一部分。
如果您使用的是 ansible 包,则可能已安装此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list。
要安装它,请使用: ansible-galaxy collection install community.general。您需要其他要求才能使用此模块,有关详细信息,请参阅 要求。
要在 playbook 中使用它,请指定: community.general.homectl。
community.general 4.4.0 中的新增功能
概要
- 管理由 systemd-homed 管理的用户的主目录。 
要求
以下要求是在执行此模块的主机上所需的。
- legacycrypt(在 Python 3.13 或更高版本上) 
参数
| 参数 | 注释 | 
|---|---|
| 预期的主目录磁盘空间。 人类可读的值,例如  | |
| 用户的电子邮件地址。 | |
| 以逗号分隔的字符串,每个字符串包含一个环境变量及其值,用于为用户的登录会话设置,格式与 ``putenv()`` 兼容。 此处列出的任何环境变量都会由 pam_systemd 自动为用户的全部登录会话设置。 | |
| 用户选择的图标名称,例如头像。 应遵循图标命名规范中定义的语义。 有关详细信息,请参阅 https://specifications.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html。 | |
| 放置用户主目录的路径。 有关更多信息,请参阅 https://www.freedesktop.org/software/systemd/man/homectl.html#–image-path=PATH。 仅在首次创建用户时使用。 | |
| 用户的首选语言/区域设置。 这应采用与  | |
| 描述用户位置的自由格式位置字符串。 | |
| 用户帐户是否应被锁定。 选项 
 | |
| 以逗号分隔的字符串,每个字符串表示此用户应属于的 UNIX 组。 用户应属于的组应作为逗号分隔的列表提供。 | |
| 以逗号分隔的字符串,每个字符串表示用户主目录的挂载选项。 有效选项为  Homed 默认使用  | |
| 要创建、删除或更新的用户名。 | |
| 自 UNIX 纪元以来的时间,在此时间之后,该记录应被认为对于登录无效。 | |
| 自 UNIX 纪元以来的时间,在此时间之前,该记录应被认为对于登录无效。 | |
| 将用户的密码设置为这个。 Homed 要求此值在创建用户和更新用户时为明文。 该模块采用密码并使用 crypt 生成 SHA-512 密码哈希,并进行 10000 轮盐生成。 请参阅 https://systemd.io/USER_RECORD/。 这对于  | |
| 给定用户的密码提示。 | |
| 用户在其中定义的“领域”。 | |
| 用户的真实姓名(“人类”姓名)。 这也可以用于添加注释,以保持与 | |
| 用于给定用户的终端登录的Shell二进制文件。 如果未指定,homed 默认使用 | |
| 用于从其填充新主目录的骨架目录的绝对路径。 这仅在首次创建主目录时使用。 如果未指定,homed 默认使用 | |
| 用逗号分隔的字符串,每个字符串列出一个被授权访问帐户的SSH公钥。 这些密钥应遵循与传统 | |
| 对用户采取的操作。 选项 
 | |
| 指示用户主目录的存储机制。 如果未指定存储类型,则`homed.conf(5)` 定义要使用的默认存储。 仅在首次创建用户时使用。 选项 
 | |
| 用户首选的时区。 应为与 tzdata 兼容的位置字符串,例如 | |
| 设置用户登录会话的umask。 值从 | 
属性
| 属性 | 支持 | 描述 | 
|---|---|---|
| 支持: 完全支持 | 可以在 | |
| 支持: 不支持 | 在差异模式下,将返回有关已更改内容(或可能需要在 | 
注释
注意
- 此模块需要已弃用的crypt Python 模块库,该库已从 Python 3.13 中删除。对于 Python 3.13 或更高版本,您需要安装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
返回值
常用返回值已在此处记录,以下是此模块独有的字段
| 键 | 描述 | 
|---|---|
| 从 返回:成功 示例: | 
