B.3. kickstart 命令进行系统配置

这个列表中的 Kickstart 命令配置结果系统的更多详情,比如用户、库或服务。

B.3.1. auth 或 authconfig(已弃用)

重要

使用新的 authselect 命令而不是已弃用的 authauthconfig Kickstart 命令。authauthconfig 仅适用于有限的向后兼容性。

authauthconfig Kickstart 命令是可选的。它使用 authconfig 工具为系统设置身份验证选项,也可以在安装完成后在命令行中运行该工具。

Syntax

authconfig [OPTIONS]

备注

  • 在以前的版本中,authauthconfig Kickstart 命令称为 authconfig 工具。在 Red Hat Enterprise Linux 8 中已弃用这个工具。这些 Kickstart 命令现在使用 authselect-compat 工具调用新的 authselect 工具。有关兼容性层及其已知问题的描述,请参阅 authselect-migration(7) 手册页。安装程序将自动检测弃用命令的使用并在系统上安装 authselect-compat 软件包以提供兼容性层。
  • 默认使用影子密码。
  • 使用带有 SSL 协议的 OpenLDAP 时,请确保在服务器配置中禁用了 SSLv2SSLv3 协议。这是因为 POODLE SSL 漏洞(CVE-2014-3566)。详情请查看 https://access.redhat.com/solutions/1234843

B.3.2. authselect

authselect Kickstart 命令是可选的。它使用 authselect 命令为系统设置身份验证选项,也可以在安装完成后在命令行中运行该命令。

Syntax

authselect [OPTIONS]

备注

  • 这个命令会将所有选项传递给 authselect 命令。详情请查看 authselect(8) 手册页和 authselect --help 命令。
  • 这个命令替换了 Red Hat Enterprise Linux 8 中已弃用的 authauthconfig 命令以及 authconfig 工具。
  • 默认使用影子密码。
  • 使用带有 SSL 协议的 OpenLDAP 时,请确保在服务器配置中禁用了 SSLv2SSLv3 协议。这是因为 POODLE SSL 漏洞(CVE-2014-3566)。详情请查看 https://access.redhat.com/solutions/1234843

B.3.3. firewall

firewall Kickstart 命令是可选的。它为安装的系统指定防火墙配置。

Syntax

firewall --enabled|--disabled [incoming] [OPTIONS]

必填选项

  • --enabled--enable - 拒绝那些不是响应出站请求(如 DNS 回复或 DHCP 请求)的传入连接。如果需要访问在这个机器中运行的服务,您可以选择允许指定的服务通过防火墙。
  • --disabled--disable - 不配置任何 iptables 规则。

可选选项

  • --trust - 在此处列出设备,如 em1,允许进出该设备的所有流量通过防火墙。要列出多个设备,请多次使用这个选项,如 --trust em1 --trust em2。不要使用逗号分隔的格式,如 --trust em1、em2
  • --remove-service - 不允许服务穿过防火墙。
  • incoming - 使用以下服务中的一个或多个来替换,从而允许特定的服务穿过防火墙。

    • --ssh
    • --smtp
    • --http
    • --ftp
  • --port= - 您可以使用 port:protocol 格式指定允许通过防火墙的端口。例如,要允许 IMAP 通过您的防火墙,可指定 imap:tcp。数字端口也可以明确指定;例如,要允许 UDP 数据包在端口 1234 到,请指定 1234:udp。要指定多个端口,用逗号将它们隔开。
  • --service= - 此选项提供允许服务穿过防火墙的更高级别方法。有些服务(如 cupsvahi 等)需要打开多个端口或其他特殊配置才能使服务正常工作。您可以使用 --port 选项指定各个端口,或者指定 --service= 并一次性全部打开它们。

    有效选项是 firewalld 软件包中 firewall-offline-cmd 程序可识别的任何内容。如果 firewalld 服务正在运行,firewall-cmd --get-services 会提供已知服务名称的列表。

  • --use-system-defaults - 完全不配置防火墙。这个选项告诉 anaconda 不做任何工作,并允许系统依赖软件包或者 ostree 提供的默认值。如果将这个选项与其它选项一同使用,则将忽略所有其他选项。

B.3.4. group

group Kickstart 命令是可选的。它在系统中创建新用户组。

group --name=name [--gid=gid]

必填选项

  • --name= - 提供组的名称。

可选选项

  • --gid= - 组的 GID。如果没有提供,则默认使用下一个可用的非系统 GID。

备注

  • 如果具有指定名称或 GID 的组群已经存在,这个命令会失败。
  • user 命令可用于为新创建的用户创建新组。

B.3.5. keyboard(必需)

keyboard Kickstart 命令是必需的。它为系统设置一个或多个可用的键盘布局。

语法

keyboard --vckeymap|--xlayouts OPTIONS

选项

  • --vckeymap= - 指定应使用的 VConsole 键映射。有效名称与 /usr/lib/kbd/keymaps/xkb/ 目录中的文件列表对应,没有 .map.gz 扩展名。
  • --xlayouts= - 指定 X 布局列表,该列表应当用作逗号分隔的列表,没有空格。接受与 setxkbmap(1) 相同格式的值,可以是 布局 格式(如 as cz),也可以是 布局变体 格式(如 cz (qwerty))。

    可以在下方的 xkeyboard-config(7) man page 中查看所有可用 布局

  • --switch= - 指定布局切换选项列表(在多个键盘布局之间切换的快捷方式)。必须使用逗号分开多个选项,没有空格。接受与 setxkbmap(1) 相同格式的值。

    您可以在 xkeyboard-config(7) man page 上的 Options 下查看可用的切换选项。

备注

  • 必须使用 --vckeymap=--xlayouts= 选项。

示例

以下示例使用 --xlayouts= 选项设置了两种键盘布局 (English (US)Czech (qwerty)),并允许使用 Alt+Shift 在它们之间切换:

keyboard --xlayouts=us,'cz (qwerty)' --switch=grp:alt_shift_toggle

B.3.6. lang(必需)

lang Kickstart 命令是必需的。它设置了在安装过程中使用的语言以及系统的默认语言。

Syntax

lang language [--addsupport=language,...]

必填选项

  • language - 安装对此语言的支持并将其设置为系统默认。

可选选项

  • --addsupport= - 添加对其他语言的支持。格式为使用逗号分开的列表,无空格。例如:

    lang en_US --addsupport=cs_CZ,de_DE,en_UK

备注

  • locale -a | grep _localectl list-locales | grep _ 命令返回支持的区域列表。
  • 文本模式安装中不支持某些语言(比如中文、日语、韩文和印度的语言)。如果您使用 lang 命令指定这些语言中的一种,安装过程将继续使用英语,但安装的系统会使用您选择的语言作为其默认语言。

示例

要将语言设置为英语,Kickstart 文件应包含以下行:

lang en_US

B.3.7. module

module Kickstart 命令是可选的。使用这个命令在 kickstart 脚本中启用软件包模块流。

Syntax

module --name=NAME [--stream=STREAM]

必填选项

--name=
指定要启用的模块名称。使用实际名称替换 NAME

可选选项

--stream=

指定要启用的模块流的名称。将 STREAM 替换为实际名称。

您不需要为定义的默认流的模块指定此选项。对于没有默认流的模块,这个选项是强制的,省略它将导致错误。无法多次启用带有不同流的模块。

备注

  • 通过这个命令和 %packages 部分的组合,您可以安装由启用的模块和流组合提供的软件包,而无需明确指定模块和流。安装软件包前必须启用模块。使用 module 命令启用模块后,您可以通过在 %packages 部分列出此模块启用的软件包来安装它们。
  • 单个 module 命令只能启用单个模块和流组合。要启用多个模块,请使用多个 module 命令。无法多次启用带有不同流的模块。
  • 在 Red Hat Enterprise Linux 9 中,模块仅存在于 AppStream 软件仓库中。要列出可用的模块,请在已安装的 Red Hat Enterprise Linux 9 系统上使用带有有效订阅的 dnf module list 命令。

B.3.8. repo

repo Kickstart 命令是可选的。它配置额外的 dnf 存储库,可用作软件包安装的来源。您可以添加多个 repo 行。

Syntax

repo --name=repoid [--baseurl=url|--mirrorlist=url|--metalink=url] [OPTIONS]

必填选项

  • --name= - 存储库 ID。这个选项是必需的。如果库的名称与另一个之前添加的库冲突,则会忽略它。因为安装程序使用预设置程序库列表,这意味着您无法添加名称与预先设置的库的名称相同的库。

URL options

这些选项是互斥的,也是可选的。此处不支持 dnf 存储库配置文件中可以使用的变量。您可以使用字符串 $releasever$basearch,它们由 URL 中的对应值替换。

  • --baseurl= - 存储库的 URL。
  • --mirrorlist= - 指向存储库镜像列表的 URL。
  • --metalink= - 存储库的 metalink 的 URL。

可选选项

  • --install - 将已安装系统上的仓库配置保存在 /etc/yum.repos.d/ 目录中。如果不使用这个选项,在 Kickstart 文件中配置的程序库将只在安装过程中使用,而无法在安装的系统中使用。
  • --cost= - 为这个存储库分配成本的整数值。如果多个库提供同样的软件包,这个数字就会被用来决定优先使用哪个库。成本低的软件仓库优先于成本高的软件仓库。
  • --excludepkgs= - 不能从此存储库拉取的软件包名称,是一个以逗号分隔的列表。如果多个存储库提供同样的软件包,您希望这个软件包来自特定的仓库,可以使用它。可接受完整软件包名称(如 publican)和 globs(如 gnome-*)。
  • --includepkgs= - 允许从此存储库拉取的软件包名称和 glob 的逗号分隔列表。该程序仓库提供的其他软件包将被忽略。如果您只想从库中安装单个软件包或软件包组而不包括该程序库提供的所有其他软件包,这个选项就很有用了。
  • --proxy=[protocol://][username[:password]@]host[:port ] - 指定仅用于此存储库的 HTTP/HTTPS/FTP 代理。此设置不会影响任何其他存储库,也不会影响在 HTTP 安装中如何获取 install.img
  • --noverifyssl - 连接到 HTTPS 服务器时禁用 SSL 验证。

备注

  • 用于安装的软件仓库必须是稳定版本。如果在安装完成前修改库,则安装会失败。

B.3.9. rootpw(必需)

需要 rootpw Kickstart 命令。它将系统的根密码设置为 password 参数的值。

语法

rootpw [--iscrypted|--plaintext] [--lock] password

必填选项

  • password - 密码规格。纯文本或者加密字符串。请参阅以下 --iscrypted--plaintext

选项

  • --iscrypted - 如果给出这个选项,则假设 password 参数已被加密。这个选项与 --plaintext 相互排斥。要创建一个加密的密码,您可以使用 python:

    $ python -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirm: ")) else exit())'

    这会使用随机 salt 为密码生成 sha512 兼容哈希。

  • --plaintext - 如果给出这个选项,则假设 password 参数为纯文本。这个选项与 --iscrypted 相互排斥。
  • --lock - 如果给出这个选项,则默认锁定 root 帐户。这意味着 root 用户无法从控制台登录。这个选项还在图形和文本手动安装中禁用 Root 密码 页面。
  • --allow-ssh - 如果存在这个选项,root 用户可以使用带密码的 SSH 登录到系统。这个选项只在 RHEL 9.1 及更新的版本中可用。

在 kickstart 安装方法期间向 kickstart 文件中添加以下行,以启用 基于密码的 SSH root 登录。选项 --allow-ssh 在 RHEL 9.0 中不可用。

%post
echo "PermitRootLogin yes" > /etc/ssh/sshd_config.d/01-permitrootlogin.conf
%end

B.3.10. selinux

selinux Kickstart 命令是可选的。它在安装的系统中设定 SELinux 状态。默认 SELinux 策略为 enforcing

Syntax

selinux [--disabled|--enforcing|--permissive]

选项

--enforcing
使用默认目标策略启用 SELinux enforcing
--permissive
根据 SELinux 策略输出警告,但并不强制执行该策略。
--disabled
在系统上完全禁用 SELinux。

其他资源

B.3.11. services

services Kickstart 命令是可选的。它修改在默认 systemd 目标下运行的默认服务集合。禁用的服务列表会在启用的服务列表前进行处理。因此,如果服务出现在这两个列表中,它将被启用。

Syntax

services [--disabled=list] [--enabled=list]

选项

  • --disabled= - 禁用在逗号分隔列表中给出的服务。
  • --enabled= - 启用逗号分隔列表中给出的服务。

备注

  • 不要在服务列表中包含空格。如果您这样做,Kickstart 将只启用或者禁用在第一个空格前的服务。例如:

    services --disabled=auditd, cups,smartd, nfslock

    这仅禁用 auditd 服务。要禁用所有四个服务,这个条目一定不能有空格:

    services --disabled=auditd,cups,smartd,nfslock

B.3.12. skipx

skipx Kickstart 命令是可选的。如果存在,安装的系统上就不会配置 X。

如果您在软件包选择选项中安装 display manager,这个软件包会创建一个 X 配置,安装的系统会默认使用 graphical.target。这会覆盖 skipx 选项的影响。

Syntax

skipx

备注

  • 这个命令没有选项。

B.3.13. sshkey

sshkey Kickstart 命令是可选的。它将 SSH 密钥添加到已安装系统上指定用户的 authorized_keys 文件中。

Syntax

sshkey --username=user "ssh_key"

必填选项

  • --username= - 要安装密钥的用户。
  • ssh_key - 完整的 SSH 密钥指纹。它必须用引号括起。

B.3.14. syspurpose

syspurpose Kickstart 命令是可选的。使用它来设置系统在安装后的系统目的。这些信息有助于在系统中应用正确的订阅授权。

注意

Red Hat Enterprise Linux 9.0 及更新的版本使您能够通过使 roleservice-levelusage,以及 addons 子命令在一个 subscription-manager syspurpose 模块下可用来管理并显示系统目的属性。之前,系统管理员使用四个独立的 syspurpose 命令之一来管理每个属性。从 RHEL 9.0 开始,这个独立的 syspurpose 命令已弃用,并计划在 RHEL 9 后删除。红帽将在当前发行生命周期中将提供对这个功能的 bug 修复和支持,但此功能将不再获得改进。从 RHEL 9 开始,单个 subscription-manager syspurpose 命令及其相关的子命令是使用系统用途的唯一方法。

Syntax

syspurpose [OPTIONS]

选项

  • --role= - 设置预期的系统角色。可用值有:

    • Red Hat Enterprise Linux Server
    • Red Hat Enterprise Linux Workstation
    • Red Hat Enterprise Linux Compute 节点
  • --SLA= - 设置服务级别协议。可用值有:

    • Premium(高级)
    • Standard(标准)
    • Self-Support(自助)
  • --usage= - 系统预定用途。可用值有:

    • Production
    • Disaster Recovery
    • Development/Test
  • --Addon= - 指定额外的层次产品或功能。您可以多次使用这个选项。

备注

  • 输入有空格的值,并使用双引号包括它们:

    syspurpose --role="Red Hat Enterprise Linux Server"
  • 虽然强烈建议您配置系统目的,但它是 Red Hat Enterprise Linux 安装程序的可选功能。

B.3.15. timezone(必需)

timezone Kickstart 命令是必需的。它设置系统时区。

Syntax

timezone timezone [OPTIONS]

必填选项

  • timezone - 为系统设定的时区。

可选选项

  • --UTC - 如果存在,系统假定硬件时钟被设置为 UTC(格林威治 Mean)时间。
  • --nontp - 禁用 NTP 服务自动启动。这个选项已弃用。
  • --ntpservers= - 指定用作没有空格的逗号分隔列表的 NTP 服务器列表。这个选项已弃用,改为使用 timesource 命令。

备注

在 Red Hat Enterprise Linux 9 中,时区名称使用 pytz 软件包提供的 pytz.common_timezones 列表进行验证。

B.3.16. timesource(可选)

timesource kickstart 命令是可选的。使用它来设置提供时间数据的 NTP、NTS 服务器和池,以及控制系统上是否启用或禁用 NTP 服务。

Syntax

timesource [--ntp-server NTP_SERVER | --ntp-pool NTP_POOL | --ntp-disable] [--nts]

必填选项

在使用 timesource 命令时,必须指定以下选项之一:

  • --ntp-server - 添加一个 NTP 服务器作为时间源.这个选项只能添加到单个命令中,以添加一个 NTP 时间源服务器。要添加多个源,每次都使用单个 --ntp-server 或 --ntp-pool 选项添加多个 timesource 命令。例如,为 Europe 时区添加多个源

    timezone Europe
    timesource --ntp-server 0.rhel.pool.ntp.org
    timesource --ntp-server 1.rhel.pool.ntp.org
    timesource --ntp-server 2.rhel.pool.ntp.org
  • --ntp-pool - 添加 NTP 服务器池作为时间源.这个选项只能添加一次,以添加单个 NTP 时间源池。重复 timesource 命令,以添加多个源。
  • --ntp-disable - 禁用已安装系统的 NTP 时间源。

可选选项

  • --ntp-disable 此命令添加的服务器或池使用 NTS 协议。请注意,即使使用 --ntp-disable,也可以添加这个选项,但它无效。

备注

  • timezone 命令中的 --ntpservers 选项已弃用。红帽建议使用这个新选项来表达 timesource 命令的功能。
  • 只有 timesource 命令可以将服务器和池标记为使用 NTS,而不是普通的 NTP 协议。

B.3.17. user

user Kickstart 命令是可选的。它在系统上创建新用户。

Syntax

user --name=username [OPTIONS]

必填选项

  • --name= - 提供用户名称。这个选项是必需的。

可选选项

  • --GECOS= - 为用户提供 GECOS 信息。这个字符串包括使用逗号分开的各种具体系统字段。它通常用来指定用户全名、办公室号码等等。详情请查看 passwd(5) 手册页。
  • --groups= - 除默认组外,还有以逗号分隔的用户应属于的组名列表。组群必须在创建该用户帐户前就已经存在。请参阅 group 命令。
  • --homedir= - 用户的主目录。如果没有提供,则默认为 /home/username
  • --lock - 如果给出这个选项,则默认锁定这个帐户。这意味着用户无法从控制台登录。这个选项还在图形和文本手动安装中禁用创建用户 页面。
  • --password= - 新用户的密码。如果没有提供,则默认锁定该帐户。
  • --iscrypted - 如果给出这个选项,则假设 password 参数已被加密。这个选项与 --plaintext 相互排斥。要创建一个加密的密码,您可以使用 python:

    $ python -c 'import crypt,getpass;pw=getpass.getpass();print(crypt.crypt(pw) if (pw==getpass.getpass("Confirm: ")) else exit())'

    这会使用随机 salt 为密码生成 sha512 兼容哈希。

  • --plaintext - 如果给出这个选项,则假设 password 参数为纯文本。这个选项与 --iscrypted 相互排斥
  • --shell= - 用户的登录 shell.如果没有提供,则使用系统默认。
  • --uid= - 用户的 UID(用户 ID)。如果没有提供,则默认使用下一个可用的非系统 UID。
  • --gid= - 用于用户组的 GID(组 ID)。如果没有提供,则默认使用下一个可用的非系统组群 ID。

备注

  • 请考虑使用 --uid--gid 选项设置常规用户及其默认组的 ID,范围从 5000 开始,而不是 1000。这是因为为系统用户和组保留的范围( 0999 )将来可能会增加,因此与常规用户的 ID 重叠。
  • 使用不同权限创建的文件和目录,由用来创建文件或目录的应用程序指定。例如,mkdir 命令创建启用了所有权限的目录。但是,应用无法为新创建的文件授予某些权限,如 user file-creation mask 设置所指定。

    user file-creation mask 可通过 umask 命令控制。新用户的 user file-creation mask 默认设置由安装系统上的 /etc/login.defs 配置文件中的 UMASK 变量定义。如果未设置,则默认为 022。这意味着,默认情况下,当应用程序创建一个文件时,会防止为该文件所有者以外的用户授予写入权限。不过,这可以被其他设置或脚本覆盖。

B.3.18. xconfig

xconfig Kickstart 命令是可选的。它配置 X 窗口系统。

语法

xconfig [--startxonboot]

选项

  • --startxonboot - 在安装的系统上使用图形登录。

备注

  • 因为 Red Hat Enterprise Linux 9 不包含 KDE 桌面环境,请不要使用上游 --defaultdesktop= 文档。