大家好,我是腾意。

本文涵盖了基本的系统管理任务,如键盘配置、日期和时间配置、用户和组群配置以及授权配置。

系统地区和键盘配置‌

系统地区配置是指系统服务和用户界面的语言环境配置。键盘布局配置是指文本控制台和图形用户界面的键盘布局规则。这些设置可以通过修改

/etc/locale.conf 配置文件或使用 localectl 命令。此外,您可以在用户图形界面来执行任务,详情请参考安装手册。

配置系统地区‌

LANG=de_DE.UTF-8 LC_MESSAGES=C

系统地区配置文件为/etc/locale.conf,在系统启动时引导 systemd 守护进程。这个配置文件可以被每一个服务或者用户继承,单个服务或者用户也可修改配置文件。例如语言为英语,地区为德国的/etc/locale 文件的配置内容如下:

LC_MESSAGES 选项决定了诊断消息的标准输出文本格式。其他选项说明总结在表 1-1 在所示。

1-1/etc/locale.conf 文件中可配置项

配置项 描述
LANG 提供系统时区的默认值
LC_COLLATE 定义该环境的排序和比较规则
LC_CTYPE 用于字符分类和字符串处理,控制所有字符的处理方式, 包括字符编码,字符是单字节还是多字节,如何打印等。是最重要的一个环境变量
LC_NUMERIC 非货币的数字显示格式
LC_TIME 时间和日期格式
LC_MESSAGES 提示信息的语言

显示当前配置

Localectl 命令可用于配置语言环境和键盘布局。显示当前配置,可使用如下命令:

localectl status

显示可用地区列表

显示可用地区列表可使用如下命令:

localectl list-locales | grep en_

配置地区

配置系统默认地区,需要以 root 用户身份运行:

localectl set-locale LANG=locale

用户可以配置适合的地区标示符以代替 locale,可通过 localectl list-locales

检索适合的地区。

配置键盘布局‌

键盘布局配置是指文本控制台和图形用户界面的键盘布局规则。

显示当前配置

localectl status

Localectl 命令可用于配置语言环境和键盘布局。显示当前配置,可使用如下命令:

显示可用键盘布局列表

显示可用键盘布局列表可使用如下命令:

localectl list-keymaps

配置键盘

配置系统默认键盘布局,需要以 root 用户身份运行:

localectl set-keymap *{map}*
localectl set-x11-keymap cz

用户可以配置适合的键盘布局标示符以代替{map},如“cz”,可通过 localectl list-keymaps 检索适合的键盘布局。该命令还可用于配置 X11 窗口的键盘布局映射,但使用--no–convert 参数的话则不生效。同样也可用以下命令单独配置 X11窗口的键盘布局:

如果用户希望 X11 窗口和命令行终端的键盘布局不一样,可以使用如下命令:

localectl --no-convert set-x11-keymap cz

网络访问配置‌

动态网络配置‌

打开终端,以网口 eth0 为例:

nmcli conn add connection.id eth0-dhcp type ether ifname eth0 ipv4.method auto

其中“eth0-dhcp”为连接的名字,可以根据自己的需要命名方便记忆和操作的名字;“ifname eth0”为配置的网口,根据自己的设备情况按需调整。

静态网络配置‌

打开终端,以网口 eth0 为例:

nmcli conn add connection.id eth0-static type ether ifname eth0 ipv4.method manual ipv4.address 192.168.1.10/24 ipv4.gateway 192.168.1.254 ipv4.dns 192.168.1.254

其中“eth0-static”为连接的名字,可以根据自己的需要命名方便记忆和操作的名字;“ifname eth0”为配置的网口,根据设备情况按需调整;IP、子网掩码、网关根据实际网络按需配置。

配置 DNS

打开终端,编辑/etc/resolv.conf,设置 nameserver:

image

日期和时间配置‌

操作系统区分以下两种时区:

  • 实时时间(RTC),通常作为物理时钟,它可以独立于系统当前状态计时,在主机关机情况下也可计时。
  • 系统时间,是基于实时时间的由操作系统内核维护的软件时间。等系统启动内核初始化系统时间后,系统时间就独立于实时时间自行计时。

系统时间通常还保持一套世界统一时间(UTC),用于转换系统的不同时区,本地时间就是用户所在时区的真实时间。

操作系统提供了三种命令行时间管理工具,timedatectl、date 和 hwclock。以下将分别介绍各个工具的使用。

timedatectl 工具使用说明

显示当前日期和时间

timedatectl

命令 timedatectl 可以显示当前系统时间和机器的物理时间及其详细信息。如下示例是未启用 NTP 时钟同步的系统时间:

systemctl restart systemd-timedated.service

变更 chrony 或 ntpd 服务状态不会主动通知 timedatectl 工具,如果想要更新服务的配置信息,请执行以下命令:

变更当前时间

以 root 用户运行以下命令可以修改当前时间:

timedatectl set-time HH: MM: SS

其中 HH 代表小时,MM 代表分钟,SS 代表秒数,均需两位表示。这个命令同样可以更新系统时间和物理时间,效果类似于 date --set 和 hwclock --systohc命令。

timedatectl set-local-rtc boolean

系统默认时间配置基于 UTC,如果想基于本地时间来配置系统时间,需要以 root 用户运行以下命令修改。

如果基于本地时间,需要将 boolean 配置为 yes(或者 y,true,t 或者 1)。如果使用 UTC 时间,则要将 boolean 配置为 no(或者 n,false,f 或者 0)。系统默认 boolean 为 no。

变更当前日期

以 root 用户运行以下命令可以修改当前日期:

timedatectl set-time YYYY-MM-DD



timedatectl set-time '2020-02-17 23:26:00'

其中 YYYY 代表年份,需 4 位数表示;MM 代表月份,需两位数表示;DD代表日期,需两位表示。如果还需要配置时间,可以补充上时间参数,示例如下:

修改时区

执行以下命令可以显示当前时区:

timedatectl show

以 root 用户运行以下命令可以修改当前时区,如修改为“上海”:

timedatectl set-timezone Asia/Shanghai

显示所有时区命令如下:

timedatectl list-timezones

同步系统与远程服务器时间

以 root 用户运行以下命令可以启用/禁用时间同步服务:

timedatectl set-ntp boolean



timedatectl set-ntp yes

启用与禁用需要配置 boolean 值为 yes 或者 no。例如需要自动同步一个远程时间服务器,可以执行以下命令:

date 工具使用说明‌

显示当前日期和时间

命令 date 可以显示当前系统时间、时区、日期等信息。并可以通过参数--utc显示当前时区时间。通过“format”标示符来输出特定状态。常用的 format 说明如下:

1-2 参数介绍

参数 描述
%H 以 HH 格式输出当前小时
%M 以 MM 格式输出当前分钟
%S 以 SS 格式输出当前秒数
%d 以 DD 格式输出当前日期
%m 以 MM 格式输出当前月份
%Y 以 YYYY 格式输出当前年份
%Z 显示时区制式,例如 C EST
%F 以 YYYY-MM-DD 格式输出当前年月日,等价于参数%Y-%m-%d
%T 以 HH:MM:SS 格式输出当前时间,等价于参数%H:%M:%S

示例如下:

date

Mon Feb 17 17:30:24 CEST 2020

date --utc

Mon Feb 17 15:30:34 UTC 2020 #date+"%Y-%m-%d%H%M" 2020-02-17 17:30

变更当前时间

以 root 用户运行以下命令可以修改当前时间:

date --set HH: MM: SS

其中 HH 代表小时,MM 代表分钟,SS 代表秒数,均需两位表示。这个命令同样可以更新系统时间和物理时间,效果类似于 hwclock –systohc 命令。

date --set HH: MM: SS --utc

系统默认时间配置基于本地时间,如果想基于 UTC 时间来配置系统时间,需要以 root 用户运行以下命令修改。

变更当前日期

以 root 用户运行以下命令可以修改当前日期:

date --set YYYY-MM-DD



date --set 2020-02-20 23:26:00

其中 YYYY 代表年份,需 4 位数表示;MM 代表月份,需两位数表示;DD代表日期,需两位表示。如果还需要配置时间,可以补充上时间参数,示例如下:

hwclock 工具使用说明‌

显示当前日期和时间

命令 hwclock 可以显示当前系统时间、时区、日期等信息。并可以通过参数

--utc 或--localtime 显示当前 UTC 时区时间和本地时间。示例如下:

hwclock

Thur 13 Feb 2020 04:23:46 PM CEST -0.329272 seconds

变更当前日期和时间

以 root 用户运行以下命令可以修改当前时间:

hwclock --set --date "dd mmm yyyy HH:MM"

其中 dd 代表日期 HH 代表小时,MM 代表分钟,SS 代表秒数,均需两位表示。Mmm 代表月份,以月份英文三位字母简写表示,yyyy 代表年份,以四位数字表示。这个命令通过参数--utc 或—localtime 区分配置当前 UTC 时区时间和本地时间

hwclock --set --date "20 Feb 2020 21:17" --utc

基于 UTC 时间来配置系统时间,需要以 root 用户运行以下命令修改,示例如下。

同步系统与远程服务器时间

以 root 用户运行以下命令同步远程时间:

hwclock --systohc

用户配置‌

用户配置可以对用户进行创建与管理,点击开始->控制面板->用户账户->创建一个新账户可以新建用户,并且可以配置头像、是否自动登录以及用户类型,输入用户名以及密码,点击创建用户即可创建成功。

image

1-1 创建账户

用户创建成功后,可以对账户密码以及头像进行重新更改,点击“更换密码”以及“更换头像”即可更改,点击“删除用户”即可将用户删除。

image

1-2 用户账户

Kdump 机制‌

Kdump 是基于 kexec 的内核崩溃转储机制,在系统崩溃、死锁或死机时用来转储内存运行参数的一个工具和服务,用来捕获内核崩溃的时候产生的 crash dump。Kdump 是迄今为止最可靠的内核转存机制,最大的优点在于崩溃转储数据可从一个新启动内核的上下文中获取,而不是从已经崩溃内核的上下文。

Kdump 需要两个不同目的的内核,生产内核和捕获内核。生产内核是捕获内核服务的对像:如果系统一旦崩溃,那么正常的内核就没有办法工作了,在这个时候将由 Kdump 产生一个用于捕获当前运行信息的内核,该内核会与相应的 ramdisk(虚拟内存盘:将内存模拟成硬盘的技术)一起组建一个微环境,将此时的内存中的所有运行状态和数据信息收集到一个 dump core 文件中,一旦内存信息收集完成,系统将会自动重启。

Kdump 机制主要包括两个组件:kdump 和 kexec。

kdump 使用 kexec 启动到捕获内核,以很小内存启动以捕获转储镜像。生产内核保留了内存的一部分给捕获内核启动用。由于 kdump 利用 kexec 启动捕获内核,绕过了 BIOS,所以第一个内核的内存得以保留。这是内核崩溃转储的本质。

kexec 是一个快速启动 kernel 的机制,它运行在某一正在运行的 kernel 中,启动一个新的 kernel 而且不用重新经过 BIOS 就可以完成启动。因为一般 BIOS都会花费很长的时间,尤其是在大型并且同时连接许多外部设备的 Server 上的环境下,BIOS 会花费更多的时间。

kexec 包括 2 个组成部分:一是内核空间的系统调用 kexec_load,负责在生产内核启动时将捕获内核加载到指定地址。二是用户空间的工具 kexec-tools,他将捕获内核的地址传递给生产内核,从而在系统崩溃的时候能够找到捕获内核的地址并运行。

Kdump 命令行配置

安装 Kdump 需要的软件包

1-6 Kdump 所需的软件包

软件包名称 软件包说明
kdump kdump软件包
kexec-tools kexec软件包,kdump用到的各种工具都在此包中
kernel-debuginfo 用来分析vmcore文件
kernel-debuginfo-common kernel-debuginfo依赖包

使用Kdump服务,需先安装这些工具包。安装命令如下:

dnf install kdump kexec-tools kernel-debuginfo-common kernel-debuginfo

配置 grub

Kdump 的使用需要配置 kdump kernel 的内存区域。Kdump 要求操作系统正常使用的时候,不能使用 kdump kernel 所占用的内存,配置这个需要修改

/boot/grub/grub.conf 文件,修改用到的引导部分,加入 crashkernel。Crashkernel

的格式如下:

crashkernel=nn[KMG]@ss[KMG]

其中 nn 表示要为 crashkernel 预留多少内存,ss 表示为 crashkernel 预留内存的起始位置。

修改完成并重启后,可以通过 cat /proc/cmdline 查看 kernel 启动配置选项,其中已经加入了 crashkernel 项。

systemctl status kdump.service

启动和查看 Kdump 服务

查看 Kdump 服务命令如下:

如果 Kdump 服务未开启,使用如下命令来启动 kdump 服务:

systemctl start kdump.service

获取特权‌

系统普通用户的权限有不同的限制,某些情况下普通需用需要执行管理员用户权限才能执行的命令,此时可以通过 su 或者 sudo 命令获得管理员权限特权。

su 命令工具

usermod -G wheel username

用户使用 su 命令时,需要输入 root 用户密码,验证通过后可以获取 root 的脚本环境。一旦通过 su 命令登入,这个用户的所有操作均视为 root 用户操作。由于 su 可以获取 root 全部权限,并因此获取其他用户的权限,可能存在一定安全问题。因此可以通过管理员组群 wheel 来进行限制。以 root 用户执行以下命令:

auth required pam_wheel.so use_uid

当将用户加入 wheel 组群后,可以限制只有这个组群的用户可以使用 su 命令访问。配置 su 的 PAM 可以编辑/etc/pam.d/su 文件,通过添加删除#字符来确认添加或删除相应内容。

上述内容表示管理员组群 wheel 内的用户可以通过 su 访问其他用户。

sudo 命令工具

sudo 命令允许系统管理员让普通用户执行一些或者全部的 root 命令。当可信用户执行 sudo 命令时,需要提供他们自己的用户密码,然后以 root 权限执行命令。

基本的 sudo 命令如下:

sudo command

sudo 命令有很大的弹性,只有在/etc/sudoers 文件中被允许的用户可以执行在他们自己的 shell 环境中执行 sudo 命令,而不是 root 的 shell 环境。这意味着在 7 系列中 root 的 shell 环境是被禁止访问的。

juan ALL=(ALL) ALL

配置 sudo 必须通过编辑/etc/sudoers 文件,而且只有管理员用户才可以修改它,必须使用 visudo 编辑。之所以使用 visudo 有两个原因,一是它能够防止两个用户同时修改它;二是它也能进行一些的语法检查。以 root 身份用 visudo 打开配置文件,输入以下内容:

这条信息意思是 juan 用户可以以任何主机连接并通过 sudo 执行任何命令。下面这条信息说明users 用户可以本地主机可以执行/sbin/shutdown -h now 命令:

%users localhost=/sbin/shutdown -h now

版权声明:如无特殊说明,文章均为本站原创,版权所有,转载需注明本文链接

本文链接:http://www.bianchengvip.com/article/KylinOS-Basic-System-Configuration/