ACCT-USER.ECLASS
章节: eclass-manpages (5)更新: 2024年11月
索引 返回主内容
名称
acct-user.eclass - 用于创建和维护单个用户条目描述
此 eclass 代表并创建一个单个用户条目。用户名称派生自 ${PN},而 (首选) UID 需要通过 ACCT_USER_ID 指定。提供其他变量来覆盖默认的主目录、shell 和添加组成员资格。需要该用户的软件包应依赖于提供它的软件包。ebuild 需要在指定 ACCT_USER_GROUPS 后调用 acct-user_add_deps。
示例:如果您的软件包需要属于同名组的用户 'foo',则创建 'acct-user/foo' 软件包并添加一个包含以下内容的 ebuild
EAPI=8 inherit acct-user ACCT_USER_ID=200 ACCT_USER_GROUPS=( foo ) acct-user_add_deps
然后将相应的依赖项添加到您的软件包中。请注意,构建系统也可能需要解析名称。依赖项类型应为:如果用户必须在构建时可解析(例如 'fowners' 在 src_install 中使用它),则为 BDEPEND;如果用户必须在安装时可解析(例如 'fowners' 在 pkg_preinst 中使用它),则为 IDEPEND;在所有情况下均为 RDEPEND。
支持的 EAPIS
7 8函数
- acct-user_add_deps
- 从 ACCT_USER_GROUPS 生成相应的 RDEPEND。如果设置了 ACCT_USER_GROUPS,则必须调用此函数。
- acct-user_pkg_pretend
- 执行正确使用 eclass 的健全性检查,以及早期检查是否可以强制执行请求的 UID。
- acct-user_src_install
- 将一个 keep 文件安装到用户的主目录中,以确保它由软件包和 sysusers.d 文件拥有。
- acct-user_pkg_preinst
- 如果用户尚不存在,则创建该用户。设置安装映像中主目录的权限。
- acct-user_pkg_postinst
- 如有必要,更新用户属性。这需要在新主目录安装后完成。
- acct-user_pkg_prerm
- 确保在删除用户帐户时将其锁定。
Eclass 变量
- ACCT_USER_NAME = ${PN}
- 用户名称。这强制为 ${PN},并且策略禁止更改它。该变量保留为可写,以便在覆盖层中使用;软件包命名限制会禁止某些其他有效的用户名。
- ACCT_USER_ID (必需)
- 新用户的首选 UID。此变量是强制性的,其值在所有用户软件包中必须唯一。这可以通过 make.conf 中的 ACCT_USER_<UPPERCASE_USERNAME>_ID 变量覆盖。
覆盖层应将其设置为 -1 以动态分配 UID。在 ::gentoo 中使用 -1 由策略禁止。
- ACCT_USER_ENFORCE_ID
- 如果设置为非空值,则 eclass 将要求用户具有指定的 UID。如果用户已存在且具有其他 UID,或 UID 被其他用户占用,则安装将失败。
- ACCT_USER_NO_MODIFY
- 如果设置为非空值,则 eclass 不会对已存在的用户进行任何更改。
- ACCT_USER_COMMENT
- 用于用户的注释。如果未指定,则将使用软件包描述。这可以通过 make.conf 中的 ACCT_USER_<UPPERCASE_USERNAME>_COMMENT 变量覆盖。
- ACCT_USER_SHELL ?= /sbin/nologin
- 用于用户的 shell。如果未指定,则使用系统的“nologin”变体。这可以通过 make.conf 中的 ACCT_USER_<UPPERCASE_USERNAME>_SHELL 变量覆盖。
- ACCT_USER_HOME ?= /dev/null
- 用户的 home 目录。如果未指定,则使用 /dev/null。如果目录不存在,则将使用相应的权限创建它。更新时,不会移动现有的 home 目录。这可以通过 make.conf 中的 ACCT_USER_<UPPERCASE_USERNAME>_HOME 变量覆盖。
- ACCT_USER_HOME_OWNER
- 用于 home 目录的所有权,采用 chown ([user][:group]) 语法。默认为新创建的用户及其主组。这可以通过 make.conf 中的 ACCT_USER_<UPPERCASE_USERNAME>_HOME_OWNER 变量覆盖。
- ACCT_USER_HOME_PERMS ?= 0755
- 用于 home 目录的权限,采用 chmod(八进制或详细)形式。这可以通过 make.conf 中的 ACCT_USER_<UPPERCASE_USERNAME>_HOME_PERMS 变量覆盖。
- ACCT_USER_GROUPS (必需)
- 用户应属于的组列表。这必须是一个 bash 数组。指定的第一个组是用户的主组,其余组(如果有)成为辅助组。
这可以通过 make.conf 中的 ACCT_USER_<UPPERCASE_USERNAME>_GROUPS 变量覆盖,或通过 ACCT_USER_<UPPERCASE_USERNAME>_GROUPS_ADD 附加。请注意,由于技术限制,覆盖变量不是数组,而是空格分隔的列表。
作者
Michael Orlitzky <[email protected]>Michał Górny <[email protected]>
维护者
Michał Górny <[email protected]>Mike Gilbert <[email protected]>
报告 Bug
请通过 https://bugs.gentoo.org/ 报告 Bug文件
acct-user.eclass参见
ebuild(5)https://gitweb.gentoo.org/repo/gentoo.git/log/eclass/acct-user.eclass
索引
此文档由 man2html 使用手册页创建。
时间:2024年11月12日,格林威治标准时间03:27:00