B.3. kickstart 命令进行系统配置
这个列表中的 Kickstart 命令配置结果系统的更多详情,比如用户、库或服务。
B.3.1. auth 或 authconfig(已弃用)
使用新的 authselect
命令而不是已弃用的 auth
或 authconfig
Kickstart 命令。auth
和 authconfig
仅适用于有限的向后兼容性。
auth
或 authconfig
Kickstart 命令是可选的。它使用 authconfig
工具为系统设置身份验证选项,也可以在安装完成后在命令行中运行该工具。仅使用此命令一次。
语法
authconfig [OPTIONS]
备注
-
在以前的版本中,
auth
或authconfig
Kickstart 命令称为authconfig
工具。在 Red Hat Enterprise Linux 8 中已弃用这个工具。这些 Kickstart 命令现在使用authselect-compat
工具调用新的authselect
工具。有关兼容性层及其已知问题的描述,请参阅 authselect-migration(7) 手册页。安装程序将自动检测弃用命令的使用并在系统上安装authselect-compat
软件包以提供兼容性层。 - 默认使用影子密码。
-
使用带有
SSL
协议的 OpenLDAP 时,请确保在服务器配置中禁用了SSLv2
和SSLv3
协议。这是因为 POODLE SSL 漏洞(CVE-2014-3566)。详情请查看 https://access.redhat.com/solutions/1234843。
B.3.2. authselect
authselect
Kickstart 命令是可选的。它使用 authselect
命令为系统设置身份验证选项,也可以在安装完成后在命令行中运行该命令。仅使用此命令一次。
语法
authselect [OPTIONS]
备注
-
这个命令会将所有选项传递给
authselect
命令。详情请查看 authselect(8) 手册页和authselect --help
命令。 -
这个命令替换了 Red Hat Enterprise Linux 8 中已弃用的
auth
或authconfig
命令以及authconfig
工具。 - 默认使用影子密码。
-
使用带有
SSL
协议的 OpenLDAP 时,请确保在服务器配置中禁用了SSLv2
和SSLv3
协议。这是因为 POODLE SSL 漏洞(CVE-2014-3566)。详情请查看 https://access.redhat.com/solutions/1234843。
B.3.3. firewall
firewall
Kickstart 命令是可选的。它为安装的系统指定防火墙配置。
语法
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=
- 此选项提供允许服务穿过防火墙的更高级别方法。有些服务(如cups
、vahi
等)需要打开多个端口或其他特殊配置才能使服务正常工作。您可以使用--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)
相同格式的值,可以是布局
格式(如 ascz
),也可以是布局 (变体)
格式(如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 命令是必需的。它设置了在安装过程中使用的语言以及系统的默认语言。仅使用此命令一次。
语法
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 脚本中启用软件包模块流。
语法
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
行。
语法
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
。仅使用此命令一次。
语法
selinux [--disabled|--enforcing|--permissive]
选项
--enforcing
-
使用默认目标策略
enforcing
启用 SELinux。 --permissive
- 根据 SELinux 策略输出警告,但并不强制执行该策略。
--disabled
- 在系统上完全禁用 SELinux。
其它资源
B.3.11. services
services
Kickstart 命令是可选的。它修改在默认 systemd 目标下运行的默认服务集合。禁用的服务列表会在启用的服务列表前进行处理。因此,如果服务出现在这两个列表中,它将被启用。
语法
services [--disabled=list] [--enabled=list]
选项
-
--disabled=
- 禁用在逗号分隔列表中给出的服务。 -
--enabled=
- 启用逗号分隔列表中给出的服务。
注
-
当使用
services
元素启用systemd
服务时,请确保您包括了在%packages
部分中包含指定服务文件的软件包。 应该用逗号隔开多个服务,没有任何空格。例如,要禁用四个服务,请输入:
services --disabled=auditd,cups,smartd,nfslock
如果您包含任何空格,Kickstart 只启用或禁用第一个空格前的服务。例如:
services --disabled=auditd, cups, smartd, nfslock
这仅禁用
auditd
服务。要禁用所有四个服务,此条目不得包含空格。
B.3.12. skipx
skipx
Kickstart 命令是可选的。如果存在,安装的系统上就不会配置 X。
如果您在软件包选择选项中安装 display manager,这个软件包会创建一个 X 配置,安装的系统会默认使用 graphical.target
。这会覆盖 skipx
选项的影响。仅使用此命令一次。
语法
skipx
备注
- 这个命令没有选项。
B.3.13. sshkey
sshkey
Kickstart 命令是可选的。它将 SSH 密钥添加到已安装系统上指定用户的 authorized_keys
文件中。
语法
sshkey --username=user "ssh_key"
必填选项
-
--username=
- 要安装密钥的用户。 - ssh_key - 完整的 SSH 密钥指纹。它必须用引号括起。
B.3.14. syspurpose
syspurpose
Kickstart 命令是可选的。使用它来设置系统在安装后的系统目的。这些信息有助于在系统中应用正确的订阅授权。仅使用此命令一次。
Red Hat Enterprise Linux 9.0 及更新的版本使您能够通过使 role
、service-level
、usage
,以及 addons
子命令在一个 subscription-manager syspurpose
模块下可用来管理并显示系统目的属性。之前,系统管理员使用四个独立的 syspurpose
命令之一来管理每个属性。从 RHEL 9.0 开始,这个独立的 syspurpose
命令已弃用,并计划在 RHEL 9 后删除。红帽将在当前发行生命周期中将提供对这个功能的 bug 修复和支持,但此功能将不再获得改进。从 RHEL 9 开始,单个 subscription-manager syspurpose
命令及其相关的子命令是使用系统用途的唯一方法。
语法
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 命令是必需的。它设置系统时区。仅使用此命令一次。
语法
timezone timezone [OPTIONS]
必填选项
- timezone - 为系统设定的时区。
可选选项
-
--UTC -
如果存在,系统假定硬件时钟被设置为 UTC(格林威治 Mean)时间。 -
--nontp
- 禁用 NTP 服务自动启动。这个选项已弃用。 -
--ntpservers=
- 指定用作没有空格的逗号分隔列表的 NTP 服务器列表。这个选项已弃用,改为使用timesource
命令。
备注
在 Red Hat Enterprise Linux 9 中,时区名称使用 pytz.all_timezones
列表进行验证,它由 pytz 软件包提供。在以前的版本中,这些名称会根据 pytz.common_timezones
进行验证,它是当前使用列表的子集。请注意,图形和文本模式界面仍然使用更受限制的 pytz.common_timezones
列表;您必须使用 Kickstart 文件来使用额外的时区定义。
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 命令是可选的。它在系统上创建新用户。
语法
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
。这是因为为系统用户和组保留的范围(0
到999
)将来可能会增加,因此与常规用户的 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=
文档。