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


索引

名称
描述
支持的 EAPIS
函数
Eclass 变量
作者
维护者
报告 Bug
文件
参见

此文档由 man2html 使用手册页创建。
时间:2024年11月12日,格林威治标准时间03:27:00