RHCE 9 - RH124
2024-07-19 17:59:02 0 举报
AI智能生成
登录查看完整内容
红帽系统管理一
作者其他创作
大纲/内容
Linux 是IT 专业人士应了解的关键技术
为什么应了解Linux
可以彻底了解程序或系统的工作方式
Linux 是开源软件
Linux 提供命令行接口(CLI),不仅访问便捷,而且具有强大的脚本化功能
Linux 是一种模块化操作系统,设计为可以轻松替换或删除组件
Linux 的优点是什么
开源软件是任何人都可以使用、研究、修改和共享其源代码的软件
公共版许可证,旨在鼓励保持代码开源
宽松式许可证,旨在最大限度地提供代码可重用性
开源许可证的类型
志愿者和学术团体
组织(供应商)
开源软件由谁开发
什么是开源软件
发行版是一种可安装的操作系统,由Linux 内核以及提供支持的用户程序和库构建而成。
什么是Linux 发行版
红帽企业Linux (RHEL) 是红帽的商业化生产级Linux 发行版。红帽通过一个多阶段流程开发开源软件并将其集成到RHEL 中
红帽参与支持各个开源项目
红帽赞助开源项目并将它们集成到一个社区驱动型发行版Fedora 中
红帽使CentOS Stream 软件成为稳定版本,确保其为长期支持和标准化做好准备,并将其集成到企业就绪型发行版本RHEL 中
红帽企业Linux 生态系统
是一个开发和发布免费、完整、基于Linux 的操作系统的社区项目
Fedora
Fedora 项目特别兴趣小组(SIG) 构建并维护一个由社区支持的软件包存储库
Extra Packages for Enterprise Linux
是RHEL 的上游项目
CentOS Stream
红帽企业Linux(RHEL) 是红帽提供的、受商业支持的生产就绪型Linux 发行版。
RHEL 使用基于订阅的支持模式,不收取开源软件许可证费用。
红帽支持订阅提供产品支持、维护、更新、安全补丁,以及对客户门户知识库、应用程序和红帽产品可下载版本的访问
红帽企业Linux
什么是Linux
小测验:红帽企业 Linux 入门
总结
1. 红帽企业Linux 入门
普通用户
$ 字符
Root 超级用户
# 字符
shell提示符
Bash Shell 介绍
命令
选项
参数
shell命令组成
Shell 基础知识
键盘和显示器与计算机连接
物理控制台
Ctrl+Alt+F1~F6
虚拟控制台
登陆本地系统
ssh remoteuser@remotehost
用户身份
ssh -i mylab.pem remoteuser@remotehost
公钥身份
OpenSSH
登陆远程系统
exit
Ctrl+D
远程系统注销
访问命令行
小测验:访问命令行
Linux系统图形用户界面
GNOME桌面环境
使用桌面访问命令行
指导练习:使用桌面访问命令行
命令、选项(通常以 - 或 -- 开头)、参数
通过空格隔开词语
分号 ; 作为命令分隔符
键入多个命令
基本命令语法
Sun Feb 27 08:32:42 PM EST 2022
date
显示当前的日期和事件
超级用户或特权用户可使用date设置系统时钟
20:33
date +%R
02/27/2022
date +%x
加号+ 参数
更改当前用户密码
无参数
更改指定用户密码
超级用户或特权用户可修改其他用户密码
passwd
显示文件类型
文本文件可以被识别
file
编写简单命令
创建单个或多个文件
cat /etc/passwd
cat file1 file2
查看文件内容
串联不同文件内容
文件内容重定向到终端或文件
向上 UpArrow键
向下 DownArrow键
分页
退出分页
q
less
cat
显示文件10行
指定不同行数
-n
head & tail
命令可计算文件中行、字和字符的数量
行数
-l
字数
-w
字符数
-c
wc
唯一后快速补全
按一次
不唯一时显示字符开头所有
显示命令所有选项
按两次
Tab补全(命令 & 文件名作为参数)
反斜杠字符 \\
按Enter后在下一行继续输入
多行命令
history
指定编号匹配的命令
!+number
最近指定字符开头的命令
!+string
感叹号字符!
上一命令
UpArrow
下一命令
DownArrow
LeftArrow
RightArrow
移动光标
插入上一命令的最后一个单词
Esc+. 或Alt+.
显示命令历史记录
跳到命令行的开头
Ctrl+A
跳到命令行的末尾
Ctrl+E
将光标处到命令行开头的内容清除
Ctrl+U
将光标处到命令行末尾的内容清除
Ctrl+K
跳到命令行中前一字的开头
Ctrl+LeftArrow
跳到命令行中下一字的末尾
Ctrl+RightArrow
在历史记录列表中搜索某一模式的命令
Ctrl+R
编辑命令行
使用Bash Shell执行命令
小测验:使用 Bash Shell 执行命令
开放研究实验:访问命令行
2. 访问命令行
根目录
/
启动过程所需的文件
/boot
供系统用于访问硬件的特殊设备文件
/dev
特定于系统的配置文件
/etc
供普通用户存储个人数据和配置文件的主目录
/home
管理超级用户root的主目录
/root
自上一次系统启动以来启动的进程的运行时数据
/run
10填内未曾访问、更改或修改的文件将自动删除
/var/tmp也是临时目录,30天内
供临时文件使用的全局可写空间。
/tmp
安装的软件、共享的库和只读程序数据
./usr/bin 用户命令
./usr/sbin 系统管理命令
./usr/local 本地自定义软件
/usr
特定于系统的可变数据应在系统启动之间保持永久性。动态变为文件可以在/var下找到
如:数据库、缓存目录、日志文件、打印机后台处理文档和网站内容
/var
文件系统层次结构-树
描述Linux 文件系统层次结构概念
小测试:描述 Linux 文件系统层次结构概念
从根 / 目录开始
第一个字符是正斜杠 / 的路径名
绝对路径
用户登陆后,默认该用户的主目录/工作目录
第一个字符不是正斜杠 / 的路径名
当前工作目录和相对路径
显示当前工作目录的完整路径名
pwd
列出指定目录的目录内容
未指定目录,则列出当前工作目录的内容
长列表
包含隐藏文件的所有文件
-a
递归方式,包含左右子目录的内容
-R
ls
更改当前工作目录
切换到用户的主目录
更改到用户在进入当前目录之前所处的目录
-
父目录
..
可为当前位置是来源或目录参数的命令指定当前目录
当前目录
.
cd
将文件的时间戳更新为当前的日期和时间,而不进行其他修改
如不存在文件名会导致创建该文件
touch
一个圆点 .
两个圆点 ..
特殊目录
开头为句点 . 的文件表示隐藏文件
浏览文件系统的路径
通过名称指定文件
小测验:通过名称指定文件
创建一个或多个目录或之目录
创建缺少的父目录-请谨慎使用
-p
mkdir
复制文件
默认不复制目录,而会忽略
复制目录及其内容
-r
cp
将文件从一个位置移动到另一个位置
重命名文件
mv -V 文件 目录
将文件移动到另一个目录
-V
mv
默认不会删除目录
删除文件
删除目录及其内容
-r 或 --recursive
使用相对路径删除文件或目录之前,最后先使用pwd验证当前工作目录
以交互方式提示确认后再删除
-i
强制删除而不提示用户进行确认
-f
rm
删除空目录
rm -r可删除非空目录
rmdir
使用命令行工具管理文件
指导练习:实验命令行工具管理文件
ls -l查看文件是否有多个硬链接
相同的链接数、访问权限、用户和组所有权、时间戳,以及文件内容
创建一个指向现有文件的硬链接
现有文件的路径
以及要创建的硬链接路径
至少需要两个参数
ln
确定两个文件是否被硬链接 - 索引节点编号
ls -i
只能将硬链接用于常规文件
无法创建指向目录或特殊文件的硬链接
df 命令累出位于不同文件系统上的目录
两个文件位于同一文件系统
硬链接的局限性
创建软链接
ln -s
可以链接不同文件系统上
可以指向目录或特殊文件,而不仅限于常规文件
ls -l查看文件长列表的第一个字符是 l 而不是 - 就表示是软链接
原始文件删除,符合链接指向缺失
悬空符号链接
可以更改符号链接为当前工作目录
-P 选项使用实际目录为当前工作目录
创建符合链接(软链接)
制作文件间的链接
指导练习:制作文件间的链接
可以生成多个字符串
逗号分隔
可以互相嵌套
例如:{m..p}为{m n o p}
可以使用双点语法 ..
大括号 {}
扩展至用户主目录路径
开头为斜杠 / 意外的字符串,会将该斜杠之前的字符串解译为用户名
如果找不到匹配用户名,将使用实际波形符号加上该字符串
波形符
将文本替换为shell变量中存储的值
VARIABLENAME=value
美元符号$开头使用变量
${VARIABLENAME}
放在大括号中使用变量
变量
将文本替换为命令的输出
$(command)
命令替换
帮助按模式匹配选择一个或多个文件
路径名
主要扩展
由零个或更多字符组成的任何字符串
*
任何一个字符
?
括起的类(位于两个方括号之间)中的任何一个字符
[abc...]
不再括起的类中任何一个字符
[!abc...]
[^abc...]
任何字母字符
[[:alpha:]]
任何小写字符
[[:lower:]]
任何大写字符
[[:upper:]]
任何字母字符或数字
[[:alnum:]]
除空格和字母数字外的任何可打印字符
[[:punct:]]
从0到9的任何单个数字
[[:digit:]]
任何单个空格字符,可能包括制表符、换行符、回车符、换页符或空格
[[:space:]]
路径名扩展和模式匹配
转义字符
反斜杠 \\
较长字符串
单引号将阻止所有
美元符号$
反斜杠 \\
反引号 '
感叹号 !
双引号则阻止大部分
单引号或双引号
防止参数被扩展
使用Shell扩展匹配文件名
小测验:使用 Shell 扩展匹配文件名
开放研究实验:从命令行管理文件
3. 从命令行管理文件
页面存储在/usr/share/man目录的子目录中
例如passwd(1)
man page查看中在主题后面附上了章节编号(用括号括起)
man passwd 默认显示passwd(1)
man 5 passwd 会显示passwd(5)
man topic
man
可执行命令和shell程序
用户命令
1
从用户空间调用的内核例程
系统调用
2
由程序库提供
库函数
3
列如设备文件
特殊文件
4
用于许多配置文件和结构
文件格式
5
(过去的趣味程序章节
游戏和屏保
6
协议、文件系统
惯例、标准和其他
7
维护任务
系统管理和特权命令
8
内部内核调用
Linux 内核 API
9
常见章节
向前(向下)滚动一屏
Spacebar
PageDown
向后(向上)滚动一屏
PageUp
向前(向下)滚动一行
向后(向上)滚动一行
向前(向下)滚动半屏
D
向后(向上)滚动半屏
U
在 man page 中向前(向下)搜索string
/string
在 man page 中重复之前的向前(向下)搜索
N
在 man page 中重复之前的向后(向上)搜索
Shift+N
转到 man page 的开头
G
转到 man page 的末尾
Shift+G
退出 man,并返回到命令shell提示符
Q
regex(7) man 主题中找到相关正则表达式和语法
可以使用正则表达式搜索
浏览和搜索 Man Page
主题名称。通常是命令或文件名。简短的描述
NAME
命令语法的概要
SYNOPSIS
提供对主题的基本理解的描述
DESCRIPTION
命令执行选项的说明
OPTIONS
有关如何使用命令、功能或文件的示例
EXAMPLES
与 man page 相关的文件和目录的列表
FILES
相关的信息,通常是其他 man page 的主题
SEEALSO
软件中的已知错误
BUGS
有关参与撰写该主题的人员的信息
AUTHOR
阅读 Man Page : 常见标题
标题和描述中搜索
man -k
全文页面中搜索
Q 退出第一页,显示下一页
man -K(大写)
根据关键字搜索 man page
Linux 手册页介绍
阅读手册页
指导练习:阅读手册页
开放研究实验:在红帽企业 Linux 中获取帮助
4. 在红帽企业Linux中获取帮助
重定向stdout以覆盖文件
>file
重定向stdout以附加到文件
>>file
重定向stderr以覆盖文件
2>file
将stderr错误消息重定向到 /dev/null,从而丢弃他们
2>/dev/null
重定向stdout和 stderr 以覆盖同一个文件
>file 2>&1&>file
重定向stdout 和 stderr 以附加到同一文件
>>file 2>&1&>>file
管道是一个或多个命令的序列,用竖线字符 | 分隔
不能使用合并重定向操作符(&>和&>>)使用管道 |
构建管道
重定向与管道组合,管道的中间使用输出重定向到文件,不是下一个命令
管道、重定向和附加到文件
ls -l | tee /empsaved-output | less
输出重定向到文件,并且将它传递到下一个命令
ls -t | head -n 10 | tee /emp/ten-last-changed-files
将内容追加到文件
tee -a 选项
使用tee 命令的管道示例
将输出重定向到文件或程序
小测验:将输出重定向到文件或程序
vi filename
通过vim-minimal 软件包,具有核心供的vi 编辑器
vim filename
使用 vim-enhanced 软件包,完整功能
vim 入门
第一打开vim以命令模式启动,可用于导航、剪切和粘贴,以及其他文件修改
命令模式
按 : 键启动扩展命令模式,可以执行的任何包括写入文件(进行保存),以及退出vim 编辑器等
扩展命令模式
按 i 键进入插入模式,其中输入的所有文本将为文件内容。按 Esc 键返回到命令模式
编辑模式
按 v 键进入可视模式,可在其中选择多个字符进行文本操作。使用Shift+v 选择多行,使用 Ctrl+V 可选择文本块。按 v 、Shift+V 或 Ctrl+V 键退出可视模式
可视模式
可以按几次Esc 来返回命令模式
不确定所用模式
vim 操作模式
可撤销最近的编辑
u
可删除单个字符
x
可写入(保存)文件,并保留在命令模式中以进行更多编辑
:w
可写入(保存)文件并退出vim
:wq
可退出 vim,同时放弃上次写入以来进行的所有更改
:q!
最低程度的基本 vim 工作流
将光标定位到选择的第一个字符
然后进入可视模式
使用箭头键扩展可视选择
按 y 将所选内容拖拉到内存中
将光标定位到新位置上,然后按 p 将所选内容放置到光标处
使用 y 和 p 命令字符执行拖拉和放置(复制和粘贴)
重排现有文本
屏幕底部会出现VISUAL
字符模式 v
屏幕底部会出现VISUAL LINE
行模式 Shift+v
屏幕底部会出现VISUAL BLOCK
块模式 Ctrl+v
可用于突出显示和操作不同行和列中的文本
vim 中的可视模式
/etc/vimrc
~/.vimrc
vim 配置文件
从Shell 提示符编辑文本文件
指导练习:从 Shell 提示符编辑文本文件
变量名称可以包含大写或小写字母、数字和下划线字符 _
set | less 分页查看所有 shell 变量
通常shell 变量全部大写字符。自定义变量,不妨使用小写字符组成的名称来防止命名冲突
为变量分配值
使用变量扩展,在变量名称前面加上美元符号 $
COUNT=40${COUNT}x,结果是40x
可以使用花括号 {}
使用变量扩展检索值
一些shell 变量在Bash 启动时设置。可以修改它们来调整shell 的行为
例如,HISTTIMEFORMAT=\"%F %T\" 定义历史记录中每个命令的时间戳格式
使用Shell 变量配置 Bash
如果 shell 变量不是环境变量,则只有 shell 可以使用他
如果 shell 变量时环境变量,则 shell 和从该 shell 运行的任何程序都可以使用该变量
EDITOR=vimexport EDITOR
export EDITOR=vim
将变量标记为使用 export
设置为用户目录的文件名
HOME变量
export LANG=fr_ER.UTF-8 使用法语 UTF-8 Unicode编码
设定的时区域设置编码
LANG变量
包含一个含有程序的目录的冒号分隔列表
PATH变量
列出特定shell 的所有环境变量
env
使用环境变量配置程序
export EDITOR=nano
EDITOR环境变量指定要用于命令行程序的默认文本编辑器(默认 vi 或 vim)
设置默认文本编辑器
用户在shell 中输入命令
/etc/profile 和 ~/.bash_profile 文件配置Bash 环境
/etc/profile 和 ~/.bash_profile 文件页分别提供/etc/profile 和 ~/.bashrc
登陆shell
/etc/profile 和 ~/.bashrc 文件配置 Bash 环境
/etc/profile 和 ~/.bash_profile 文件使用于整个系统
~/.bash_profile 和 ~/.bashrc 文件则是特定用户
非登陆shell
编辑 ~/.bashrc 文件
创建所有交互式 shell 使用的变量
可在~/.bash_profile 文件中定义
用户登录后仅应用一次变量
交互式
后台运行且无需用户干预,例如脚本
调用BASH_ENV 变量定义的任何文件。默认情况不定义此变量
非交互式
编辑Bash 启动脚本
自动设置变量
alias hello='echo \
alisas
Bash 别名
取消设置和取消导出变量,unset file1
unset
取消导出变量,不取消设置
export -n
取消设置别名
unalias
取消设置和取消导出变量与别名
更改 Shell 环境
指导练习:更改 Shell 环境
开放研究实验:创建、查看和编辑文本文件
5. 创建、查看和编辑文本文件
root,UID为0
超级用户
服务进程使用,无法以交互方式登录
系统用户
用于处理日常工作账户
显示有关当前登录用户的信息
用户作为参数,可查看指定用户信息
id
第三列显示用户名
查看文件所有者
ls -l
查看目录的所有者
ls -ld
查看进程信息
-a 选项查看与某一终端相关的所有进程
第一列显示用户名
-u 查看与进程关联的用户
ps
/etc/passwd 文件存储有关本地用的信息
user01:x:1000:1000:User One:/home/user01:/bin/bash
代码块的每个部分用冒分隔
此用户的用户名
user01
用户的加密密码历来存储在这里,这现在是个占位符
此用户账户的UID 编号
1000
此用户账户的主要组的GID 编号
此用户的简短注释、描述或真实姓名
User One
用户的主目录
/home/user01
此用户的默认shell 程序
/bin/bash
cat /etc/paswd
操作系统内部利用UID 来跟踪用户
用户
存储有关本地组的信息
/ect/group
冒号分隔
此组的名称
group01
以前的组密码字段,现在是一个占位符
此组的GID 编号
10000
属于此组成员的用户列表,作为一个补充组
cat /ect/group
创建普通用户时,会创建一个与用户同名的组 - 主要组
该用户时这个用户私有组的唯一成员
每个用户有且只有一个主要组
主要组和补充组
可以显示用户的组成员资格
组
描述用户和组的概念
小测验:描述用户和组概念
授予其他用户超级用户访问权限
sudo
切换用户账户
普通用户账户运行 su 命令并将另一用户账户用作参数+提供账户的密码
root 用户身份运行su 无需输入用户密码
切换到 root
使用原始用户的环境设置
su 将启动非登录 shell
会将 shell 环境设置为如果以该用户身份重新登陆一样
su - 会启动登录 shell
su 或 su -
su
sudo 默认将所有执行的命令记录到 /var/log/secure 中
sudo配置不允许,则bash 会阻止该命令,并记录厂商,并且向 root 用户发送一封电子邮件
su 、su - 和 sudo 区别
所有成员都可以使用自己的密码通过sudo 以任何用户身份运行命令,包括 root 在内
在红帽企业Linux 7 和更高版本中
wheel组
通过sudo 运行命令
将切换到root 账户并运行该用的默认shell (通常为bash)及关联的交互式登陆脚本
sudo -i
没有交互式脚本的情况下运行shell
sudo -s
通过sudo 获取交互式 root shell
文件是sudo 命令的主要配置文件
会验证该文件,确保没有语法错误
visudo 命令进行编辑
%wheel ALL=(ALL:ALL) ALL
%wheel 字符串是规则所应用到的用户或组。词语wheel 前的 % 符号指定一个组
指定在具有此文件的任何主机上(第一个 ALL)
wheel 组中的用户可以在系统上以任何其他用户(第二个 ALL)和任何其他组(第三个 ALL)运行命令
ALL=(ALL:ALL)
指定wheel 组中的用户可以运行任何命令
ALL
wheel 组成员启用 sudo 访问权限
将文件复制到目录中或中目录中删除文件
启用或禁用sudo 访问权限
还包含/etc/sudoers.d 目录中所有文件的内容
/etc/sudoer.d/user01
user01 ALL=(ALL) ALL
为user01 用户启用完整的 sudo 权限
/etc/sudoer.d/group01
%group01 ALL=(ALL) ALL
为group01 组启用完整的 sudo 权限
/etc/sudoers.d/games 文件
%games ALL=(operator) /bin/id
要使games 组中的用户能够以operator 用户身份运行 id 命令
ansible ALL=(ALL) NOPASSWD: ALL
允许用户通过使用NOPASSWD: ALL 命令在不输入密码的前提下以其他身份允许命令
举例
/etc/sudoers
配置 sudo
获取超级用户访问权限
指导练习:获取超级用户访问权限
尚未设置有效密码,不能登陆
useradd username
将显示可用于覆盖默认设置的基本选项
useradd --help
如有效UID 编号的范围
默认密码过期规则
此文件中的值仅影响新创建的用户账户
更改此文件对现有用户毫无影响
/etc/login.defs 文件设置用户账户的一些默认选项
在Linux 9 中,useradd 命令为新用户分配第一个大于或等于1000的可用 UID,除非您通过 -u 选项进行明确指定
从命令创建用户
显示用于修改账户的基本选项
usermond --help
与 -G 选项以前使用将补充组添加到用户当前的组成员集合中,而不是将补充组集合替换为新的集合
将 COMMENT 文本添加到注释字段
为用户账户指定一个主目录
为用户账户指定主要组
为用户账户指定补充组的逗号分隔列表
锁定用户账户
将用户的主目录移到新的位置。您必须将它与 -d 选项搭配使用
为用户账户指定特定的登陆shell
解锁用户账户
从命令行修改现有的用户
从/etc/passwd 中删除username 用户的详细信息,但用户的主目录保持不变
创建用户分配已删除用户的UID,则新账户将拥有这些文件
userdel username
从/etc/passwd 中删除用户,同时删除用的主目录
userdel -r username
从命令行删除用户
可为username 用户设置初始密码,或更改其现有密码
passwd username
从命令行设置密码
超级用户(root)账户UID
UID 0
静态分配给系统进程的系统账户UID
UID 1-200
分配给不拥有此系统上文件的系统进程的UID。需要非特权UID 的软件将从这个可用池中动态分配UID
UID 201-999
分配给普通非特权用户的UID 范围
UID 1000+
UID 范围
管理本地用户账户
指导练习:管理本地用户账户
不带选项,下一个可用GID
指定GID,创建组 groupadd -g 10000 group01
-g
创建系统组
groupadd
从命令行创建组
指定组的新名称
指定新的GID
groupmod
从命令行修改现有的组
groupdel
从命令行删除组
更改用户的主要组
将用户添加到某一补充组
-a 选项可启用附加模式
不带-a 选项,命令会从当前未包含在-G 选项列表中的任何补充组删除该用户
-aG
usermod
从命令更改组成员资格
主要组是在/etc/passwd文件中查看。一个用户,一次只能属于一个主要组
补充组是为用户配置的国外组,在/etc/group 文件中查看。可属于多个组
比较主要组和补充组成员资格
只能从您所属的补充组中选择
注销重新登陆,恢复默认主要组
newgrp
临时更改您的主要组
管理本地组账户
指导练习:管理本地组账户
cat /etc/shadowuser03:$6$CSsXsd3rwghsdfarf:17933:0:99999:7:2:18113
加密后的密码移至/etc/shadow
用户账户的名称
user03
用户的加密密码
$6$CSsXsd3rwghsdfarf
上次更改密码时间距离纪元(UTC 1970-01-01)的天数
17933
自上次更改密码以来到用户可再次更改密码之前必须经过的最短天数
0
在密码过期之前不进行密码更改的最长天数,空字段表示密码永不过期
99999
在用户密码过期前多少天警告用户
自密码过期之日起,在账户自动锁定之前能够无活动的天数
密码到期之日距离纪元的天数。空字段表示密码永不过期
18113
最后一个字段通常为空,预留给未来使用
影子密码和密码策略
$6$CScXcYG1L/4ZfHr/$2W6evvJahUfzfHpc9X.45Jc6H30E
由美元$ 字符分隔
RHEL 9默认算法
6 表示SHA-512 哈希
1 表示 MD5
5 则表示 SHA-256
用于加密密码的 salt;最初是随机选择
CScXcYG1L/4ZfHr/
用密码的加密后哈希;将salt 和未加密密码组合并加密,生成密码哈希
2W6evvJahUfzfHpc9X.45Jc6H30E
加密密码的格式
调整密码期限策略(change age)
change -m 0 -M 90 -W 7 -I 14 sysadmin05(用户)
最短期限
-m
最长期限
-M
警告期
-W
不活动期
-I
使用date 获取当前日期
date +%F
使用date 获取即日起30天后的日期
date -d \"+30 days\" +%F
使用-E 选项更改cloudadmin10用户的到期日期
chage -E $(date -d \"+30 days\" +%F) cloudadmin10
使用-l 选项来显示cloudamin10用户的密码期限策略
chage -l cloudadmin10 | grep \"Account expires\"
设置即日起30天到期
change -d 0 cloudadmin10
下次用户登录时,系统会提示该用户更改密码
PASS_MAX_DAYS
PASS_MIN_DAYS
默认警告期
PASS_WARN_AGE
影响更改后创建的用户
现有用户继续使用旧密码期限
在/etc/login.defs 文件中更改默认密码期限配置
chage
配置密码期限
修改用户的账户到期日期
选项锁定用户账户,并且该用户无法登录系统
距离1970-01-01天数
YYYY-MM-DD 格式
usermod -L -e 2022-08-14 cloudadmin10
-L
重新启用账户
-U
限制访问
不打算以交互方式登录系统的用户账户
usermod -s /sbin/nologin newapp
/sbin/nologin
非登录shell
管理用户密码
指导练习:管理用户密码
开放研究实验:管理本地用户和组
6. 管理本地用户和组
最具体的权限具有优先权
用户权限覆盖组的权限
可以列出目录的内容(文件名)
读取,可以读取文件内容
r
可以创建或删除目录中的任一文件
写入,可以更改文件内容
w
目录可以成为当前工作目录
执行,可以作为命令执行文件
Linux 文件系统权限
显示有关权限和所有权
限制有关目录本身(而非其内容)
ls -d
常规文件
是目录
d
符号链接
l
字符设备文件
c
块设备文件
b
命令管道文件
p
本地套接字文件
s
长列表的第一个字符表示文件类型
第一组是文件所有者的权限
第二组是文件的组所有者
最后一组则是所有其他(全局)用户
rwx读取、写入、执行,- 代表没有权限
接下来九个字符代表文件权限。三个字符一组
链接数
所有者
组所有者
第二列
查看文件和目录的权限及所有权
解释Linux 文件系统权限
小测验:解释 Linux 文件系统权限
更改文件和目录的权限。“更改模式”
chmod Who/What/Which file|directory
用户的类。不提供用户类,则chmod 将使用all 组作为默认值
文件所有者
user
文件所属组的成员
group
g
即不是文件所有者也不是文件所属组成员的用户
other
o
所有前面三组
all
a
Who
修改Which 的操作符
向文件添加权限
add
+
从文件删除权限
remove
精确十二猴子所提供的文件权限
set exactly
=
What
模式,指定文件或目录的权限
文件的读取权限。目录的列出权限
read
文件或目录的写入权限
write
文件的执行权限。允许进入目录,以及访问该目录中的文件和之目录
execute
目录的执行权限,或者文件的执行权限(如果该文件具有至少一个执行粘滞位)
special execute
X
Which
递归方式对整个目录树中的文件设置权限
对目录设置执行(搜索)权限
覆盖文件设置的任何执行权限
-X
通过符号法更改权限
chmod ### file|directory
每个#数字代表访问级别,从左到右为:用户、组和其他
没有权限
读取
+4
写入
+2
执行
+1
通过八进制法更改权限
只有root 用户能够更改拥有文件的用户
将文件app.conf 的所有权授予student 用户
chown student app.conf
使用-R 选项递归更改整个目录树的所有权。将Pictures目录及其中所有文件和子目录的所有权授予给student 用户
chown -R student Pictures
更改文件的组所有权,组名称前加冒号:
使用chgrp 只能更改组所有权,不需要加冒号:
chown :admins Pictures
同时过更改所有者和组,使用owner:group 语法
chown visitor:guests Pictures
更改文件和目录的用户或组所有权
chmod
从命令行管理文件系统权限
指导练习:从命令行管理文件系统权限
目录:无影响
以拥有文件的用户身份,而不是以运行文件的用户身份执行文件
u+s (suid)
目录中创建的文件的组所有者与目录的组所有者相匹配
以拥有文件的组身份执行文件
g+s (sgid)
对目录具有写入访问权限的用户仅可以删除其所拥有的文件,而无法删除或强制保存到其他用户所拥有的文件
文件:无影响
o+t (sticky)
设置了setuid权限
此处通常是x 字符(所有者执行权限)
所有者不具有执行权限
S
-rwsr-xr-x. 1 root root 35504 Jul 16 2010 /usr/bin/passwd
设置了setgid权限
此处通常是x 字符(组执行权限)
组不具有执行权限
-rwx--s--x. 1 root slocate 47128 Aug 12 17:17 /usr/bin/locat
只有文件的所有者(及root 用户)才能删除该目录中的文件
drwxrwxrwt. 39 root root 4096 Feb 8 20:52 /tmp
设置了粘滞权限
t
此处通常是x 字符(其他人执行权限)
其他人不具有执行权限
T
针对目录的粘滞位将文件删除设置特殊限制。
在example 目录添加setgid 位
chmod g+s example
删除example 目录setuid 位
chmod u-s example
setuie=u+s; setuid=g+s; 粘滞=o+t
符号
对example 目录设置setgid 位
chmod 2770 example
对example 目录删除setgid 位
chmod 0770 example
在添加的第三个前序位;setuid=4; setgid=2; 粘滞=1
八进制
特殊权限
初始八进制权限为0666(-rw-rw-rw-)
创建常规文件
初始八进制权限为0777(drwxrwxrwx)
创建目录
进一步限制文件初始权限
可以清除有进程创建的新文件和目录的权限
umask 0002 可清除其他用的写入位
前导零表示特殊的用户和组权限未被清除
umask 0077 清除新创建文件的所有组和其他权限
如果在umask 中设置了一个位,则新文件中的对应的权限将被清除
将显示shell 的umask 当前值
不带参数
例如:umask 077 与 umask 0077 相同
使用八进制参数,可以省略前导零
在/etc/login.defs 和/etc/bashrc 文件中定义
用户可以在主目录的 .bash_profile 或 .bashrc 文件中覆盖系统默认值
用户的系统默认umask 值
umask
其他的文件权限将从读取该位读取和写入
其他的目录权限将读取和执行改为读取、写入和执行
umask 值设置为0
屏蔽其他的所有文件和目录的权限
umask 值设置为007
可确保用户对新文件具有读写权限,组具有读写权限
组对新目录具有读取和执行权限
而其他对象则没有任何权限
umask 为027
umask 应用程序对权限的影响
默认值为0022
Linux 9中,/etc/login.defs 文件为用户设置默认的umask
root 用户可以通过在/etc/profile.d/ 目录中添加 local-umask.sh shell启动脚本来更改交互式非登录shell 的默认umask
shell 的当前 umask 将一直适用,注销shell 并重新登陆,或者您可以使用umask 命令手动更改当前umask
更改默认权限
默认文件权限
管理默认权限和文件访问
指导练习:管理默认权限和文件访问
开放研究实验:控制对文件的访问
7. 控制对文件的访问
进程是已启动的可执行程序的运行中实例
父进程
PPID
进程ID
PID
第一个系统进程
所有进程都是第一个系统进程的后代
systemd
进程定义
TASK_RUNNING:进程正在CPU 上执行,或者正在等待运行。处于运行中(或可运行)状态时,进程可能可以正在执行用户例程或内核例程(系统调用),或者已排队就绪
R
运行中 Running
TASK_INTERRUPTIBLE:进程正在等待某一条件:硬件请求、系统资源访问或信号。当事件或信号满足该条件时,该进程将返回到运行中
TASK_UNINTERRUPTIBLE:此进程也在睡眠,但与S 状态不同,不会响应信号。仅在进程中断可能会导致意外设备状态的情况下使用。
TASK_KILLABLE:与不可中断的D 状态相同,但有所修改,允许等待中的任务响应要被中止(彻底退出)的信号。实用程序通常将可终止的进程显示为D 状态。
K
TASK_REPORT_IDLE:D 状态的一个子集。在计算负载平均值时,内核不会统计这些进程。用于内核线程。设置了TASK_UNITERRUPTIBLE 和TASK_NOLOAD 标志。类似于TASK_KILLABLE,也是D 状态的一个子集。它接受致命信号。
I
睡眠 Sleeping
TASK_STOPPED:进程被停止(暂停),通常时通过用户或者其他进程发出的信号。进程可以通过另一个信号返回到运行中状态,继续执行(恢复)。
TASK_TRACED:正在被调试的进程也会临时停止,并且共享同一个T 状态标志
已停止
EXIT_ZOMBIE:子进程在退出时向父进程发出信号。除进程身份(PID)之外的所有资源都已释放。
Z
EXIT_DEAD:当父进程清理(获取)剩余的子进程结构时,进程现在已彻底释放。此状态无法在进程列出实用程序中看到
僵停
描述进程状态
在对系统进程故障排除时,了解内核如何与进程通信以及进程如何互相通信非常重要
系统为每个新进程分配一个状态
top 命令的S 列或ps 的STAT 列显示每一个进程的状态
在单CPU 系统上,一次只能运行一个进程
您可以看到多个状态为R 的进程,并非所有进程都在连续运行,其中一些处于等待状态
进程状态的重要性
用于列出当前进程的详细信息
用户识别符(UID),它确定进程的特权
唯一进程识别符(PID)
已用CPU 量和实际时间
分配的内存量
进程stdout 位置,称为控制终端
当前的进程状态
显示包含无控制终端的进程在内的所有进程
aux
长列表提供更详细的信息,并且通过避免查询用户名可用加快显示
lax
UNIX 语法,显示所有进程
-ef
会选择具有与当前用户相同的有效用户ID (EUID) 并与运行命令所处同一终端关联的所有进程僵停进程使用exiting 或defunct 标签列出
不带选项
以树形格式显示进程,从而查看父进程和子进程之间的关系
--forest
对输出进行排序
默认输出按进程ID 编号排序
但内核重复使用了进程ID,输出中似乎使用了时间顺序
-O 或 --sort
列出进程
进程状态和生命周期
小测验:进程状态和生命周期
借助作业控制Shell 功能,单个shell 实例可用运行和管理多个命令
一次只能有一个作业读取输入和键盘的信号,属于该作业的进程时控制终端前台进程
该控制终端的后台进程是与该终端相关联的任何其他作业
一个作业仅在属于其控制终端的一个会话中
ps 命令在TTY 列中显示控制终端的设备名称
某些进程有系统启动,这些进程不是作业的成员,并且无法转至前台。ps 命令在TTY 列显示一个问号?
描述作业和会话
任何命令或管道都可用在后台启动,在命令上附加一个& 符号即可
&
[1] 5947
Bash shell 显示作业编号(特定于会话的唯一编号)和新建子进程的PID
包含竖线(|)的命令发送到后台,将显示管道中最后一个命令的PID
显示shell 会话的作业列表
jobs
将后台作业至于前台
使用(%jobNumber)格式将进程指定到前台
fg
若要将前台进程发送到后台,请先在终端中按键盘生成的暂停请求(Ctrl+z)。该作业将被至于后台并暂停
显示与作业相关的信息。查找进程和会话信息
是进程的唯一进程ID
是此进程的父进程(即启动(分叉)此进程的进程)的PID
是进程组首进程的PID,通常是作业管道中的第一个进程
PGID
是会话首进程的PID,对于作业而言,通常是增长其控制终端上运行的交互shell
SID
ps j
bg %1
bg命令及作业ID 来启动暂定的进程
bg
在后台运行作业
控制作业
指导练习:控制作业
Hangup:报告终端控制进程的终止。也请求进程重新初始化(重新加载配置)而不终止
HUP
Keyboard interupt:导致程序终止。可以被拦截或处理。通常按INTR(中断)键序列(Ctrl+c)发送
INT
Keyboard quit:与SIGINT相似;在终止时添加进程转储。通常按QUIT键序列(Ctrl+\\)发送
QUIT
KILL
Terminate:导致程序终止。和SIGKILL 不同,可以被拦截、忽略和处理。要求程序终止的“干净”方式;它允许程序完成基本操作和自我清理后在终止
TERM
15默认
Continue:发送至进程使其恢复(若已停止)。无法被拦截。即使被处理,也始终恢复进程。
CONT
18
Stop,unblockable:暂停进程。无法被拦截和处理
STOP
19
Keyboard stop:和SIGSTOP不同,可以被拦截、忽略或处理。通常按暂停键序列(Ctrl+z)发送
TSTP
20
使用信号控制进程
暂停 Ctrl+z
终止 Ctrl+c
核心转储 Ctrl+\\
前台进程发送信号
通过名称(-HUP 或 -SIGHUP)或 编号 (相对的 -l 选项)类指定信号
用户可以中止自己的进程
root特权才能终止由其他人拥有的进程
kill
后台进程发送信号
通过显式请求发送信号
向一个或多个符号选择条件的进程发送信号
选择条件可以是命令名称、特定用户拥有的进程,或所有系统范围进程
将进程与特定终端ID 匹配
-t
终止所有进程,包含会话首进程 bash
-SIGKILL
pkill
来确定要中止的PID 编号
列出进程的名称和ID
指定拥有进程的用户的ID
-u
pgrep
确定会话的控制终端
然后仅中止引用同一终端ID 的进程
查看系统或单个用的进程数
pstree -p usersname
pstree
控制特定进程
根据命令名称向多个进程发送信号
killall control
killall
向多个进程发送信号
kill 命令指定作业编号
jobs 查找要终止的进程的作业编号
在作业编号上添加前缀百分号 %
kill -SIGTERM %1
kill 终止特定的作业
终止后台作业
使用 w 命令列出用户登陆和当前运行的进程。记录TTY 和FROM 列
说明这是一个与图形终端窗口或远程登录会话相关联的伪终端
pts/N
说明用户位于一个系统控制台、替代控制台或其他之间连接的终端设备上
ttyN
TTY
当前作业占用的CPU资源
JCPU
当前的前台进程CPU 占用情况
PCPU
以管理员身份注销用户
中止进程
指导练习:中止进程
内核会每五秒钟收集一次当前的负载数
通过汇总,得到1分钟、5分钟、15分钟内的指标移动平均值
描述负载平均值
CPU 上准备运行的进程
等待磁盘或网络 I/O 完成的进程数
负载平均值计算
显示当前负载平均值的一种方法
显示当前时间、计算机启动时长那个、运行的用户会话数以及当前的负载平均值
uptime
确定系统上存在的CPU 数
lscpu
小于1 表示资源利用率适当,等待时间短
高于1 表示资源饱和,而且由一些处理延迟
负载平均值除以系统中的逻辑CPU 数
解读负载平均值
显示系统进程的动态视图
进程ID (PID)
进程所有者用户名(USER)
虚拟内存(VIRT)是进程正常使用的所有内存,包括常驻集合、共享库,以及任何映射或交换的内存页。(在ps 中标为VSZ)
常驻内存(RES)是进程所用的物理内存,包括任何驻留的共享对象。(在ps 中标为RSS)
不可中断睡眠
-D
运作中或可运行
睡眠中
-S
已停止或已跟踪
-T
-Z
进程状态(S)
CPU 时间(TIME)是进程启动以来总的处理时间。可以切换为包含所有过去子进程的累计时间
进程的命令名称(COMMAND)
top
交换式击键操作的帮助
? 或 h
切换到负载、线程和内存标题行
l、t、m
标题中切换显示单独CPU 信息或所有CPU 的汇总
更改(屏幕)刷新频率,以带小数的秒数表示(如 0.5、1、5)
切换反色突出显示Running 进程;默认为仅粗体
在显示中使用粗体,用于标题以及运行中的进程
Shift+b
切换线程;显示进程摘要或单独线程
Shift+h
过滤任何用户名称(有效、真实)
u、Shift+u
按照内存使用率,以降序方式对进程列表排序
Shift+m
按照处理使用率,以降序方式对进程列表排序
Shift+p
中止进程。若由提示,输入PID,再输入signal
k
调整进程的nice 值。输入PID,再输入nice_value
写入(保存)当前的显示配置,以便在下一次重新启动top 时使用
Shift+w
退出
通过启用或禁用字段的方式来管理列。也可以为top 设置排序字段
f
top 基本击键操作
静态
实时进程监控
监控进程活动
指导练习:监控进程活动
开放研究实验:监控和管理 Linux 进程
8. 监控和管理Linux 进程
第一个启动进程(PID 1)
并行化功能(同时启动多个服务),它可提高系统的启动速度
Systemd 守护进程
一个抽象概念,用于定义系统知道如果管理的对象
单元通过称为单元文件的配置文件表示
名称为单元提供唯一标识
通过单元类型,可以将单元与其他类似的单元类型分组到一起
单元具有名称和单元类型
服务单元具有 .service 扩展名,代表系统服务
套接字单元具有 .socket 扩展名,代表systemd 应监控的进程间通信(IPC)套接字
路径单元具有 .path 扩展名,用于将服务的激活推迟到特定文件系统更改发生之后
systemd 守护进程使用单元来管理不同类型的对象
显示可用的单元类型
systemctl -t help
使用 systemctl 管理单元
服务单元
探索系统的当前状态
仅列出激活状态为active 的服务器单元
systemctl list-units --type=service
列出所有服务单元,不论激活状态如果
不显示已安装但未启用的服务
systemctl list-units --all
查看所有已安装的单元文件的状态
STATE 字段的一些常见条目有enabled、disabled、static、masked
systemctl list-unit-files
--state=LOAD、ACTIVE、SUB字段中的值进行筛选
将systemd 单元的类型限制为服务单元
--typer=service
服务单元名称
UNIT
systemd 守护进程是否正确解析了单元的配置并将该单元加载到内存中
LOAD
单元的高级别激活状态。此信息表明单元是否已成功启动
ACTIVE
单元的低级别激活状态。此信息指示有关该单元的更多详细信息。
SUB
单元的简短描述
systemctl
列出服务单元
查看单元的状态
省略单元类型,则命令需要具有该命令的服务单元
systemctl status name.type
服务单元是否已加载到内存中
Loaded
服务单元是否正在运行;若为是,它已运行了多久
Active
哪里可以找到有关该服务的更多信息
Docs
服务的主进程ID,包括命令名称
Main PID
服务的更多信息
Status
相关进程的更多信息
Process
相关控制组的更多信息
CGroup
服务单元信息
单元配置文件已被处理
loaded
服务正在运行,并由持续的进程
active (running)
服务成功完成了一次行配置
active (exited)
服务正在运行中,但在等待事件
active (waiting)
服务未在运行
inactive
服务在系统引导时启动
enabled
服务未设为在系统引导时启动
disabled
服务无法启用,但可以由某一启用的单元自动启动
static
服务状态
验证服务单元是否处于活动状态(正在运行)
返回状态active 或 inactive
systemctl is-active name.type
验证服务单元是否已启用为在系统引导期间自动启动
返回状态 enabled 或 disabled
systemctl is-enabled name.type
验证单元是否在启动过程中失败
正常返回active。启动过程发生了错误返回failed
如果已被停止,返回 unknown 或 inactive
systemctl is-failed name.type
列出所有失败的单元
systemctl --failed --type=service
验证服务的状态
status 选项输出中的一些字段
查看服务状态
识别自动启动的系统进程
指导练习:识别自动启动的系统进程
systemctl status
以 root 运行不使用服务类型,将查找 .service 文件
systemctl start
停止正在运行的服务
systemctl stop
启动和停止服务
重新启动正在运行的服务时,该服务首先停止运行,然后重新启动
进程ID 改变
systemctl restart
无需重新启动即可加载其配置文件,称为服务重新加载
进程ID 不改变
systemctl reload
不确定服务器是否具有重新加载配置文件
如果重新加载可用,就重新加载。否则,将重新启动服务
systemctl reload-or-restart
重新启动和重新加载服务
显示启动服务单元所需的依赖项的层次结构映射
systemctl list-dependencies UNIT
列出反向依赖项
--reverse
列出单元依赖项
屏蔽服务
systemctl mask
查看服务的状态
取消屏蔽
systemctl unmask
屏蔽和取消屏蔽服务
启动
systemctl enable
停止
systemctl disable
使用服务在系统引导时启动或停止
查看单元状态的详细信息
systemctl status UNIT
在运行中的系统上停止一项服务
systemctl stop UNIT
在运行中的系统上启动一项服务
systemctl start UNIT
在运行中的系统上重新启动一项服务
systemctl restart UNIT
重新加载运行中服务的配置文件
systemctl reload UNIT
禁用服务,使其无法手动启动或在系统引导时启动
systemctl mask UNIT
使屏蔽的服务变为可用
systemctl unmask UNIT
将服务配置为在系统引导时启动。使用 --now 选项也会启动该服务
systemctl enable UNIT
禁止服务在系统引导时启动。使用 --now 选项页会停止该服务
systemctl disable UNIT
Systemctl 命令摘要
控制系统服务
指导练习:控制系统服务
开放研究实验:控制服务和守护进程
9. 控制服务和守护进程
创建与远程系统安全连接
获取交互式 shell 会话
远程系统上运行会话,而无需运行交互式 shell
描述 Secure Shell
使用与当前用户相同的用户名登陆hosta 远程服务器
ssh hosta
注销远程系统
以developer2用户名登录hosta 远程服务器
ssh developer2@hosta
Secure Shell 示例
显示当前登录系统的用户列表
识别远程用户
通过公钥加密
SSH 主机密钥
使用 SSH 访问远程命令行
指导练习:访问远程命令行
要准备账户,请生成与加密相关的密钥文件对
基于SSH 密钥的身份验证
创建一个密钥对
私有保存在~/.ssh/id_rsa
公钥保存在~/.ssh/id_rsa.pub
ssh-keygen
加密私有
指定用于保存密钥的文件
ssh-keygen -f .ssh/key-with-pass
首次登录恢复中使用密语时进行缓存
ssh-agent 密码管理器
SSH 密钥生成
可将SSH 密钥对的公钥复制到远程系统上
ssh-copy-id -i .ssh/key-with-pass.pub user@remontehost
ssh-copy-id
使用对应的私钥测试远程访问
ssh -i .ssh/key-with-pass user@remotehost
共享公钥
GNOME 图形桌面环境可以自动启动和配置 ssh-agent 密钥管理器
eval $(ssh-agent)
登录文本环境,必须针对每哥会话手动启动ssh-agent程序
手动将私钥密语加载到密码管理器
默认的~/.ssh/id_rsa 文件添加私钥,然后从~/.ssh/key-with-pass 文件添加
ssh-add
从使用ssh-agent 密钥管理器的会话注销时,将从内存中清除所有缓存的密码
使用密码管理器进行非交互式身份验证
-v、-vv、-vvv选项提供桑详细程序级别
SSH 连接基本故障排除
创建 ~/.ssh/config 文件来预配置SSH 连接
有了此文件,无需再每次连接主机时手动指定命令参数
也可以用于配置SSH 跳转主机
SSH 客户端配置
配置基于 SSH 密钥的身份验证
指导练习:配置基于 SSH 密钥 身份验证
通过编辑/etc/ssh/sshd_config 文件配置该服务
配置OpenSSH 服务器
重新加载生效 systemctl reload sshd
PermitRootLogin yes
禁用基于密码的身份验证,允许执行基于私钥的身份验证
PermitRootLogin without-password
禁用超级用户进行登录
PasswordAuthentication yes改为no
禁止将基于密码的身份验证用于SSH
自定义 OpenSSH 服务配置
指导练习:自定义 OpenSSH 服务配置
开放研究实验:配置和保护 SSH
10. 配置和保护 SSH
操作系统内和其他进程为系统运行时发生的事件记录日志
可以使用文本实用程序(如less 和 taill )来检查这些日志
systemd-journald 和 rsyslog服务处理红帽企业Linux 9 中的syslog 消息
服务时操作系统事件日志架构的核心
系统内核
启动过程早期阶段的输出
守护进程的标准输出和标准错误
系统日志事件
从许多来源收集事件小时
重启后不保留日志
systemd-journald
服务从日志中读取systemd-journald 服务收到的syslog 消息
处理syslog 事件,将他们记录到日志文件中,或感觉自有的配置将它们转发给其他服务
系统重启后不予保留
写入到 /var/log
rsyslog
大多数系统日志消息记录在此处。例外包括与身份验证、电子邮件处理和调度作业执行相关信息,以及纯粹与调试相关的消息
messages
与安全性和身份验证事件相关的syslog 消息
secure
与邮件服务相关的syslog 消息
maillog
与调度作业执行相关的syslog 消息
cron
与系统启动相关的非 syslog 控制台消息
boot.log
/var/log/
系统日志记录
描述系统日志架构
小测验:描述系统日志架构
内核消息
kern
用户级消息
邮件系统消息
mail
系统守护进程消息
daemon
身份验证和安全消息
auth
内部 syslog 消息
syslog
打印机消息
lpr
网络新闻消息
新闻
UUCP 协议消息
uucp
时钟守护进程消息
非系统授权消息
authpriv
10
FTP 协议消息
ftp
11
自定义本地消息
local0 到 local7
16-23
Syslog 设备概述
系统不可用
emerg
必须立即采取措施
alert
临界情况
crit
非严重错误状况
err
警告情况
warning
正常但重要的事件
notice
信息性事件
info
调试级别消息
debug
Syslog 优先级概述
将事件记录到系统
logrotate 命令会轮转日志文件,以防止他们在 /var/log 目录中占用太多空间
使用指示轮转日志的扩展名来对其重命名
轮转若干次之后(通常是四周),丢弃最旧的日志文件以释放磁盘空间
日志文件轮转
日志消息在文件的开头显示最旧的消息,在文件的末尾显示最新的消息
记录日志条目的时间戳
Mar 20 20:11:48
发送日志消息的主机
localhost
发送日志消息的程序或进程名称和PID 编号
sshd[1433]
分析 Syslog 目录
输出指定文件的最后10 行
tail -f /path/to/file
监控日志事件
logger 命令可将消息发送到rsyslog 服务
手动发送 Syslog 消息
查看Syslog 文件
指导练习:查看 Syslog 文件
从日志中检索日志消息
root 身份对日志具有完全访问权限
普通用户可能会限制查看某些消息
优先级为notice 或warning 的消息显示为粗体文本
优先级为error 或以上的消息则显示为红色文本
journalctl
默认显示最后10 个日志条目
可以指定要显示的日志条目
journalctl -n
输出系统日志最后10 行
日志附加新的日志条目是继续输出
使用Ctrl+C 组合键退出
journalctl -f
显示指定优先级(按名称或编号)或以上的日志条目
按优先级升序方式处理
journalctl -p
和单元名称来显示指定systemd 单元的消息
journalctl -u sshd.service
journalctl -u
可以接受yesterday、today、tomorrow
指定相对于当前某个事件以后的所有条目
“-1 hour”
jorunalctl --since “YYY-MM-DDhh:mm:ss”--until “YYY-MM-DDhh:mm:ss”
除了日志的可见内容外,打开详细输入,还可以查看其他日志条目
_COMM 是命令名称
_EXE 是进程的可执行文件的路径
_PID 是进程的PID
_UID 是运行该进程的用户的UID
_SYSTEMD_UNIT 是启动该进程的systemd 单元
journalctl -o verbose
组合多个系统日志字段,以便在运行journalctl 命令时形成精细的搜索查询
journalctl _SYSTEMD_UNIT=sshd.service _PID=2110
在系统日志中查找事件
查看系统日志条目
指导练习:查看系统日志条目
默认情况下,Linux 9 将系统日志存储在/run/log目录中,并且系统会在重新启动后清除系统日志
可以在/etc/systemd/journald.conf 文件中更改 systemd-journald 服务的配置设置,时日志在系统重启后能够保留下来
将日志存储在/var/log/journal 目录中,这可在系统重启后持久保留
如果/var/log/journal 目录不存在,则systemd-journald 服务会创建它
persistent
将日志存储在易失性 /run/log/journal 目录中。
volatile
如果/var/log/journal 目录存在,那么systemd-journald 服务会使用持久存储,否则使用易失性存储
auto
不使用任何存储。系统丢弃所有日志,但您可以仍然可以转发日志
none
每个月触发日志轮转机制
系统不允许日志大小超过所处文件系统的10%,不允许造成文件系统的可用空间低于15%
在/etc/systemd/journald.conf 配置文件中修改运行时日志和持久日志的这些值
journalctl | grep -E 'Runtime Journal|System Journal'
输出显示当前大小配额
系统日志存储
mkdir /var/log/journal
以超级用户身份运行你选择的文本编辑器
以编辑/etc/systemd/journal.conf 文件
Storage=persistent
设置Storage 参数设置为persistent
systemctl restart systemd-journald
创建子目录,名称较长且包含十六进制字符的 .jouranl 扩展名
重启服务
第几次系统启动的条目
默认时当前这次系统启动的条目
由于系统日志在系统重启后保留
journalctl -b {1....}
识别系统启动事件
journalctl --list-boot
配置持久系统日志
保留系统日志
指导练习:保留系统日志
简要显示当前的时间相关系统设置
列出时区数据库
list-timezons
root用户
更改系统设置来更新当前的时区
set-timezone
更改系统的当前时间
\"YYY-MM-DD hh:mm:ss\",可用省略日期或时间
set-time
启用NTP同步
true
禁用NTP同步
false
set-ntp
timedatectl
管理本地时钟和时区
配置文件中声明server 和 peer 两种时间源类别
server 比本地NTP 服务器高一个级别
peer 则属于同一级别
例如:server classroom.example.com iburst
server 行的第一个参数时NTP服务器IP地址或DNS名称。之后,可用列出适用于该服务器的一系列选项。建设使用 iburst
重新启动服务生效
systemctl reatart chronyd
/etc/chrony.conf
验证本地系统是否使用NTP服务器无缝同步系统时钟
chronyc sources -v
配置和监控 chronyd 服务
维护准确的时间
指导练习:维护准确的时间
开放研究实验:分析和存储日志
11. 分析和存储日志
应用
传输
互联网
链路
TCP/IP 网络模型
以太网接口
en
WLAN 接口
wl
WWAN 接口
ww
板载设备,其唯一索引为N,由服务器的固件提供。例如eno1
oN
PCI 热插拔槽N 中的设备。例如ens3
sN
插槽N 中总线 M上的设备。例如wlp4s0
pMsN
其余部分
描述网络接口名称
32位数字,使用点号分隔
分网络前缀和主机编号
IPv4 地址
两位都必须为 1,结果才会是 1
其他组合结果都是 0
网络前缀
任一位是 1 都可使结果为 1
只有两个 0 才会产生 0
主机号
IPv4 子网和子网掩码
如果多个条目对目标地址有效,则使用前缀较长的条目
如果目的地网络不匹配具体的条目,则数据包将使用 0.0.0.0/0 默认条目进行路由
IPv4 路由
IPv4 网络
2001:0db8:0000:0010:0000:0000:0000:001
128位数字,以分号分隔
2001:db8:0:10:0:0:0:1
为了便于书写,不需要书写分号分隔的组中的前导零
2001:db8:0:10::1
一组或多组连续零可以通过正好一个双冒号 ::字符块来合并
IPv6 地址
等效于127.0.0.1/8 地址的IPv6,在回环接口上设置
本地主机
::1/128
等效于 0.0.0.0 的IPv6。对于网络服务,这可能表示其正在侦听所有已配置的IP地址
未指定的地址
::
等效于 0.0.0.0/0地址的IPv6.路由表中的默认路由于此网络匹配;此网络的路由器是在没有更好路由情况下发送所有流量的位置
默认路由(IPv6 互联网)
::/0
”普通“的IPv6 地址目前由互联网编号分配机构(IANA)从该空间进行分配。地址包括2000::/16 到 3fff::/16 范围的所有网络
全局单播地址
2000::/3
IPv6 没有RFC 1918 专用地址空间的直接等效对象,尽管此网络范围非常接近。站点可以使用这些网络在组织中自助分配可路由的专用IP 地址空间。站点必须随机从该空间中选择一个 /48,但是它可以正常将分配空间划分为 /64网络
唯一本地地址(RFC 4193)
fd00::/8
每个IPv6 接口自动配置一个本地链路单播地址,该地址仅在 fe80::/64 网络中的本地链路有效。但是,整个 fe80::/10 范围保留给本地链路以后使用。后续部分将更为详细地探讨此主题
本地链路地址
fe80::/10
等效于 224.0.0.0/4 地址的IPv6。多播用于同时传输到多个主机,并在IPv6 中特别重要,因为其没有广播地址
多播
ff00::/8
IPv6 子网
IPv6 网络
创建静态条目
从DNS查找
/etc/host
主机名和IP 地址
描述网络概念
小测验:描述网络概念
将列出系统上可用的所有网络接口
ip link
收集网络接口信息
ip 查看设备和地址信息
活动接口为UP
link/ether 字符串指定设备的硬件(MAC)地址
inet 字符串显示 IPv4 地址、其网络前缀长度和作用域
inet6 字符串显示IPv6 地址、其网络前缀长度和作用域。此地址属于全局作用域,通常使用此地址
inet6 字符串显示接口具有链路作用域的IPv6 地址,并且只能用于本地以太网链接的通信
子主题
显示IP 地址
显示关于网络性能的统计信息。每个网络接口的计数器可用识别网络问题的存在。计数器记录的统计信息包括首(RX)和传出(TX)的数据包数、数据包错误数,以及丢弃的数据包数
ip -s link show ens3
显示性能统计信息
测试连接,直到按下Ctrl+c 组合已指定了现在发送数据包数量的选项
ping -c3
ping 命令的IPv6 版本
ping6
验证主机之间的连接
显示路由信息
ip route
显示IPv6 路由表
ip -6 route
描述路由表
traceroute 或 tracepath
追踪流量路由
路由器问题故障排除
/etc/services 文件中列出了标准端口的常用名称
显示套接字统计信息
取代了net-tools 软件包中所包含的较旧工具netstat
ss -ta
显示接口和端口的编号,而不显示名称
显示TCP 套接字
显示UDP 套接字
仅显示侦听中的套接字
显示所有(侦听中和已建立的)套接字
显示使用套接字的进程
对于 inet 地址系列,显示活动的连接(但不显示侦听套接字)。也就是说,忽略本地 UNIX 域套接字。对于 ss 命令,同时显示IPv4 和 IPv6 连接。对于 netstat 命令,仅显示IPv4 连接。(netstat -A inet6 或 netstat -46)
-A inet
ss 和 netstat
端口和服务故障排除
验证网络配置
指导练习:验证网络配置
监视和管理系统的网络设置
单个设备可以有多个连接配置并在它们之间切换
自 Linux 8 弃用ifcfg 格式配置文件和/etc/sysconfig/network-scripts/ 目录
NetworkManager 将网络配置集存储在/etc/NetworkManager/system-connections/目录中
描述 NetworkManager 服务
实用程序可用于从命令行创建和编辑连接文件
显示所有网络设备的状态
缩写 nmcli dev dis
nmcli device status
显示所有连接列表
仅列出活动的连接
--active
缩写 nmcli con show
nmcli connection show
nmcli
查看网络信息
添加网络连接
添加的网络连接的数据作为带有 .nmconnection 后缀的文件存储在/etc/NetworkManager/system-connections/ 目录中
添加eno2 网络接口的ethernet类型的eno2 连接
示例 nmcli con add con-name eno2 \\type ethernet ifname eno2
具有静态IPv4创建eno3 连接
连接名存在,命令会失败
nmcli con add con-name eno3 type ethernet ifname eno3 \\ ipv4.method manual ipv4.addresses 192.168.0.5/24 ipv4.gateway 192.158.0.254
nmcli connection add
将其绑定到的网络接口上激活网络连接
需要连接名称,不是设备名称
nmcli connection up
断开网络设备的连接,并将连接关闭。
nmcli device disconnect
管理网络连接
静态连接,存储在/etc/NetworkManager/system-connections/*.nmconnection 配置文件中
动态连接,从DHCP请求,不会持久存储
NetworkManager两种类型
更新连接设置
更新static-ens3 连接
nmcli con mod static-ens3 ipv4.addresses 192.0.2.2/24 ipv4.gatweay 192.0.2.254 connection.autoconnect yes
自动启动或禁用连接
connection.autoconnect
可以有多个值
开头添加加号+ 或 减号 -
示例将2.2.2.2 DNS 添加到static-ens3 连接
nmcli con mod static-ens3 +ipv4.dns 2.2.2.2
nmcli connection modify
可以通过编辑/etc/NetworkManager/system-connections/ 中的连接配置文件来修改网络配置集
加载所有连接配置集
加载eno2连接
mcli con reload eno2
nmcli con reload
更新网络连接设置
从系统删除连接
删除statice-ens3
nmcli con del static-ens3
nmcli connection delete
删除网络连接
root 用户可以实用nmcli 命令来更改网络配置
查看您当前权限
nmcli general permissions
可修改NetworkManager 设置的权限
显示所有网络接口的NetworkManager 状态
nmcli dev status
列出所有连接
nmcli con show
列出 name 连接的当前设置
nmcli con show name
添加和命名一个新的连接配置集
nmcli con add con-name name
修改 name 连接
nmcli con mod name
手动编辑文件后,重新加载配置文件
激活 name 连接
nmcli con up name
断开接口,这也会停用当前的连接
nmcli dev dis dev
删除指定的连接及其配置文件
nmcli con del name
有用的NetworkManager 命令
从命令行配置网络
指导练习:从命令行配置网络
自Linux 8 起,网络配置存储在/etc/NetworkManager/system-connections/ 目录中
此新配置位置实用密钥文件格式,不是ifcfg 格式
连接配置文件
NetworkManager 使用INI 样式的密钥格式来存储网络连接配置集
密钥格式
以静态方式配置IPv4 地址
[ipv4]method=manual
ipv4..method manual
从DHCPv4 服务器中查找配置设置。在获得来自DHCPv4 的信息之前,它不会调出任何静态地址
[ipv4]method=auto
ipv4.method auto
设置静态IPv4 地址和网络前缀。对于多个连接地址,address2 键定义第二个地址,address3 键定义第三个地址
[ipv4]address1=192.0.2.1/24
ivp4.addresses192.0.2.1/24
设置默认网关
[ipv4]gateway=192.0.2.254
ipv4.gateway192.0.2.254
修改/etc/resolv.conf 以使用此名称服务器
[ipv4]dns=8.8.8.8
ipv4.dns 8.8.8.8
修改/etc/resole.conf,以在search 指令中使用这个域
[ipv4]dns-search=example.com
ipv4.dns-searchexample.com
忽略来自DHCP 服务器的DNS 服务器信息
[ipv4]ignore-auto-dns=true
ipv4.ignore-auto-dns true
以静态方式配置IPv6 地址
[ipv6]method=manual
ipv6..method manual
使用路由器播发中的SLAAC 来配置网络设置
[ipv6]method=auto
ipv6.method auto
使用DHCPv6 (而不使用SLAAC)来配置网络设置
[ipv6]method=dhcp
ipv6.method dhcp
设置静态IPv6 地址和网络前缀。对于多个连接地址,address2 键定义第二个地址,address3 键定义第三个地址
[ipv6]address1=2001:bd8::a/64
ivp6.addresses2001:bd8::a/64
[ipv6]gateway=2001:bd8::1
ipv6.gateway2001:bd8::1
修改/etc/resolv.conf 以使用此名称服务器。与IPv4相同
[ipv6]dns=fde2:6494:1e09:2::d
ipv6.dns fde2:6494:1e09:2::d
[ipv6]dns-search=example.com
ipv6.dns-searchexample.com
[ipv6]ignore-auto-dns=true
ipv6.ignore-auto-dns true
在系统启动时自动激活此连接
[connection]autoconnect=true
connection.autoconnect yes
此连接的名称
[connection]id=Main eth0
connection.id ens3
连接与具有此名称的网络接口绑定
[connection]interface-name=ens3
connection.interface-name ens3
连接与具有此MAC 地址的网络接口绑定
[802-3-ethernet]mac-address=
802-3-Ethernet.mac-address
NetworkManager 设置和密钥文件格式文件的比较
/etc/NetworkManager/system-connections/ 目录存储用户创建和编辑的持久配置集
/run/NetworkManager/system-connections/ 目录存储临时配置集,在您重新启动系统时自动删除
/usr/lib/NetworkManager/system-connections/ 目录存储预部署的不可变配置集。
[ipv4]address1=172.25.0.10/24gateway=172.25.0.254dns=172.25.254.254
method=auto
动态
[connection]interface-name=ens3id=Main eth0autoconnect=trueuuid=f3e8(...)ad3etype=ethernet
任一
关键文件格式的IPv4 配置信息
修改配置文件后,运行nmcli con reload 命令加载配置更改
nmcli con up \"static-ens3\"
如果autoconnect=false,手动激活连接
修改网络配置
编辑网络配置文件
指导练习:编辑网盘配置文件
显示或临时修改系统的完全限定主机名
hostname
指定静态主机名
使用hostnamectl 修改此文件
/etc/hostname
更新系统主机名
根解析器可将主机名称转换为IP 地址,或反之。它将根据/etc/nsswitch.conf 文件的配置来确定查找位置
默认,首先使用/etc/hosts 文件来尝试解释查询
使用/etc/hosts 文件测试主机名解析
未找到,根解析器会使用DNS 名称服务器查询主机名
可使用短主机名尝试搜索的域名列表。search 或 domain 应在同一文件中设置;如两者都设置,则仅最后一个条目生效。
search
要查询的名称服务器的IP 地址。
nameserver
/etc/resolv.conf 文件控制如何执行这一查询
getent host shostname
配置名称解析
测试DNS 服务器连接
host HOSTNAME
dig HOSTNAME
测试/etc/hosts 文件
getent hosts HOSTNAME
测试DNS 名称解析
配置主机名和名称解析
指导练习:配置主机名和名称解析
开放研究实验:管理网络
12. 管理网络
tar 实用程序时用于创建、管理和提取存档的常用命令
创建存档文件
-c 或 --create
列出存档的内容
-t 或 --list
提取存档
-x 或 --extract
操作之一
显示在tar 操作期间存档或提取的文件
-v 或 --verbose
在此选项后面加上要创建或打开的存档文件名
-f 或 --file
提取时保留原始文件权限
-p 或 --presserve-permissions
启用扩展属性支持,并存储扩展的文件属性
--xattrs
启用SELinux 上下文支持,并存储SELinux 文件上下文
--selinux
使用存档的后缀来确定要使用的算法
-a 或 --auto-compress
使用gzip 压缩算法,这会生成 .tar.gz 后缀
-z 或 --gzip
使用bzip2 压缩算法,这会生成 .tar.bz2 后缀
-j 或 --bzip2
使用xz 压缩算法,这会生成 .tar.xz 后缀
-J 或 --xz
选择算法
tar
创建mybackup.tar 存储,其包含当前目录myapp1-3.log 文件
tar -cf mybackup.tar myapp1.log myapp2.log myapp3.log
创建存档
tart -tf /root/etc.tar
列出归档内容
提取的到空目录,以免覆盖现有的文件
mkdir /root/etcbackup
cd /root/etcbackup
tar -tf /root/etc.tar
tar -xf /root/etc.tar
列出/root/etc.tar 存档的内容,然后将其文件提取到/root/etcbackup 目录
-p 可保留原始权限
超级用户默认启用 --preserve-permissions
umask修改提取的每个文件的权限
提取存档内容
压缩是传统的、最快的方法,可以跨平台广泛使用
gzip
压缩可创建较小的存档,但使用不如gzip 广泛
bzip2
压缩是更新的技术,提供的压缩率在可用方法中最好
xz
压缩方式
使用gzip,创建/etc 目录存档/root/etcbackup.tar.gz 存档
tar -czf /root/etcbackup.tar.gz /etc
使用bzip2
tar -cjf /root/logbackup.tar.bz2 /var/log
使用xz
tar -cJf /root/sshconfig.tar.xz /etc/ssh
创建压缩存档
自动确定压缩方式
tar -xzf /root/etcbackup.tar.xz
列出压缩的内容
tar -tf /root/logbackup.tar
提取压缩存档的内容
用于在步创建归档的前提下压缩单个文件
查看压缩的单个文件或归档文件的未压缩大小
解压缩或提取前,验证是否有足够的可用空间
gzip、xz 提供-l 选项
gzip、bzip2、xz也作为独立命令实施
从命令创建存档
管理压缩的tar 存档
指导练习:管理压缩的 tar 存档
user@ 部分是可选,如果缺失此部分,sftp命令将使用您当前的本地用户名
sftp remoteuser@remotehost
exit 退出sftp 会话
交互式sftp 会话接受各种命令
sftp 会话中使用help 命令,列出可用的sftp 命令
在sftp 会话中,在本地主机上运行命令。对于大多数可用的命令,前添加l 字符
运行sftp 命令时,终端会提供SFTP>提示符
上传到远程主机,put 命令后跟一个本地文件。要以递归方式复制整个目录树,可使用sftp 命令 -r 选项
从远程主机下载,get /etc/yum.conf
sftp remoteuser@remotehost:/home/remoteuser/remotefile
获取远程文件,而不打开交互式会话。无法上传到远程主机
[user@]host:/path
在系统之间安全地传输文件
指导练习:在系统直接安全地传输文件
仅同步已更改的文件部分来将复制的数据量最小化
如果两台服务器间的两个文件或目录相似,rsync 命令将仅复制文件系统间的差异部分
可进行空运行,以确保重要的文件不会被覆盖或删除
rsync -n
可提供更详细的输出
对于故障排除和查看实时进度非常有用
rsync -v 或 --verbose
将启用“存档模式”
此选项可实现递归复制并开启很多有用的选项,以保留文件的大部分特征。
以递归方式同步整个目录
-r 、 --recursive
同步符号链接
-l 、 --links
保留权限
-p、 --perms
保留时间戳
-t、 --times
保留组所有权
-g、 --group
保留文件的所有者
-o、 --owner
保留设备文件
-D、 --devices
存储模式不会保留硬链接
rsync -a 或 --archive
保留硬链接
rsync -H
指定远程位置
远程位置可以是来源或目标系统,但必须有一台是本地计算机
要保留文件所有权,必须是目标系统上的root 用户
如果目录为远程位置,则以root 用户身份进行验证
如果目标为本地位置,则必须以root 用户身份运行rsync
rsync 命令是系统之间安全地复制文件的另一种方式
在系统之间安全地同步文件
指导练习:在系统之间安全地同步文件
开放研究实验:归档和传输文件
13. 归档和传输文件
使用GNOME 应用注册系统
Activities -> Red Hat Subscription Manager
在Type to search 自动键入subscription
再单击Red Hat Subscription Manager
在系统提示时,输入适当的密码进行身份验证
在Subscriptions 窗口中,单击Register 以打开Register System 对话框
通过红帽订阅管理器订阅系统
使用RHEL Web 控制台订阅系统
subscription-manager
以root 用户身份,使用红帽客户门户的凭据注册系统
subscription-manager register --username <yourusername>
subscription-manager list --available
查看您的红帽账户可用的订阅
subscription-manager attach --auto
自动附加订阅
subscription-manager attach --pool=poolID
从可用订阅列表的特定池中附加订阅
subscription-manager list --consumed
查看已用的订阅
subscription-manager unregister
取消注册系统
使用命令行订阅系统
预配置的订阅管理文件,可用于红帽卫星服务器和通过红帽客户门户进行的订阅管理。
subscription-manager 命令与激活密钥搭配使用,可简化预定义订阅的注册和分配
激活密钥
数字证书可在本地系统上存储当前的授权信息。
已注册的系统将授权证书存储在/etc/pki 目录下
证书表示已安装的红帽产品
/etc/pki/product
证书标识要注册的红帽账户
/etc/pki/consumer
证书指明该系统附加有哪些订阅
/etc/pki/entitlement
检查证书
rct
检查系统上附加的订阅
授权证书
注册系统以活动红帽支持
小测验:注册系统以获取红帽支持
RPM 软件包文件名由四个元素组成(再加上 .rpm 后缀)
Coreutils-8.32-31.el9.x86_64.rpm
NMAE 是描述其内容的一个或多个词语(coreutils)
VERSION 是原始软件的版本号(8.32)
RELEASE 是基于该版本的软件包的发行版号,由软件打包商设置,后者不一定是原始软件开发商(31.el9)
ARCH 是软件包编译为在其上运行的处理器架构
name-version-release.architecture
软件包和 RPM
通过RPM 软件包更新软件
rpm 实用程序,可检索软件包文件和已安装软件包的内容的相关信息
列出所有已安装的软包
rpm -qa
确定提供FILENAME 的软件包
rpm -qf /etc/yum.repos.d
rpm -qf FILENAME
检索关于已安装的软件包的一般信息
列出当前已安装的软件包版本
rpm -q dnf
rpm -q
获取软件包的详细信息
rpm -qi
列出软件包安装的文件
rpm -ql dnf
rpm -ql
仅列出软件包安装的配置文件
rpm -qc openssh-clients
rpm -qc
仅列出软件包安装的文档文件
rpm -qd openssh-clients
rpm -qd
列出在安装或删除软件包之前或之后运行的shell 脚本
rpm -q --scripts openssh-server
rpm -q --scripts
列出软件包更改日志信息
rpm -q --changelog audit
rpm -q --changelog
获取关于特定软件包的信息
列出本地软包安装的文件
ls -l podman-4.0.0-6.el9.x86_64.rpm
rpm -qlp podman-4.0.0-6.el9.x86_64.rpm
rpm -qlp
查看本地软包文件
检查RPM 软件包
使用rpm 命令来安装已下载到本地目录的RPM 软件包
rpm -ivh podman-4.0.0-6.el9.x86_64.rpm
安装RPM 软件包
可以使用rpm2cpio 实用程序从RPM 软件包文件中提取文件,而不安装此软件包
rpm2cpio 实用程序将RPM 软件包转换为cpio 归档。将RPM 软件包转换为cpio 归档后,可以使用cpio 命令提取文件列表
使用cpio 命令和 -i 选项从标准输入中提取文件。使用 -d 选项从当前工作目录按需创建子目录。使用 -v 选项提供详细输出
rpm2cpio httpd-2.4.51-7.el9_0.x86_64.rpm | cpio -idv
rpm2cpio httpd-2.4.51-7.el9_0.x86_64.rpm | cpio -id \"*/etc/httpd/conf/httpd.conf\"
通过指定文件的路径来提取各个文件
rpm2cpio httpd-2.4.51-7.el9_0.x86_64.rpm | cpio -tv
使用rpm2cpio 和 cpio -t 命令,列出RPM 软件包中的文件。使用cpio 命令的 -v 选项提供详细输出
提取RPM 软件包
解析和调查 RPM 软件包
指导练习:解释和调查 RPM 软件包
DNF 取代了 YUM(Linux 9)
rpm 命令可用于安装软件包,但不可以与软件包存储库一起使用,也不能自动解决多个源的依赖关系
使用来自红帽和第三方的多个软件存储库
使用DNF 管理软件包
显示用法信息
dnf help
显示已安装和可用的软件包
dnf list 'http*'
dnf list
仅列出按照名称和摘要字段中找到的关键字找到的软件包
若要搜索名称、摘要和描述字段中包含“web server”的软件包,可用使用search all
dnf search all 'web server'
dnf search KEYWORD
返回与软件包相关的详细信息,包括按照所需的磁盘空间
dnf info httpd
dnf info PACKAGENAME
显示与指定路径名匹配的软件包(路径名通常包含通配符)
dnf provides /var/www/html
dnf provides PATHNAME
使用DNF 查找软件
获取并按照软件包,包括所有依赖项
dnf install httpd
dnf install PACKAGENAME
获取并安装指定软件包的较新版本,包括所有依赖项
dnf update kernel 命令可按照新内核
dnf update PACKAGNAME
可列出所有已安装和可用的内核
uname
-r 选项仅查看内核版本和发行版本
-a 选项则显示内核发行版和其他信息
查看当前运行的内核
dnf list kernel
可删除安装的软件包,包括所有受支持的软件包
dnf remove httpd
dnf remove PACKAGENAME
使用DNF 按照和删除软件
也具有组的概念,即针对特定目的而一起安装的相关软件集合
常规组是软件包的集合
环境组是常规组的集合
安装该组时必须予以安装
mandatory
安装该组时通常会安装
default
安装该组时不予安装,除非特别要求
optional
Linux 9中,dnf 命令可用安装两种软件包组
可显示已安装和可用的组的名称
dnf group list
列出隐藏组
dnf group list hidden
显示与组相关的信息
dnf group info
安装一个组,同时安装其必选和默认的软件包,以及它们依赖的软件包
dnf group install \"RPM Development Tools\"
dnf group install
使用DNF 安装和删除软件组
所有安装和删除事务的日志都记录在/var/log/dnf.rpm.log 中
tail -5 /var/log/dnf.rpm.log
显示安装和删除事务的摘要
dnf history
可以撤销事务
dnf history undo
查看事务历史记录
dnf list [NAME-PATTERN]
按名称列出已安装和可用的软件包
列出已安装和可用的组
按关键字搜索软件包
显示软件包的详细信息
安装软件包
dnf group install GROUPNAME
安装软件包组
dnf update
更新所有软件包
删除软件包
显示事务历史记录
DNF 命令摘要
借助模块化,单个存储库可以承载应用软件包及其依赖项的多个版本
BaseOS
应用流(AppStream)
Linux 9 通过两个主要的软件存储库分发内容
BaseOS 存储库以RPM 软件包形式为红帽企业Linux 提供核心操作系统内容。BaseOS 组件的生命周期与之前红帽企业Linux 发行版中的内容相同
应用流存储库提供具有不同生命周期的内容,作为模块和传统软件包
Linux 9 不随附模块,必须收到指定默认模块流,可以使用/etc/dnf/modules.defaults.d 目录中的配置文件来定义默认模块流
具有一个或多个模块流,其包含不同版本的内容。
模块流
每个模块可以有一个或多个配置集
模块配置集
dnf module 处理模块化内容
列出可用的模块,以及模块名称、流、配置集和摘要
dnf module list
列出特定模块的模块流并检索其状态
dnf module list modul-name
显示模块详细信息
dnf module info module-name
显示哪个模块提供特定的软件包
dnf module provides package
通过DNF 管理模块
BaseOS 和应用流介绍
通过DNF 管理软件包模块流
使用DNF 安装和更新软件包
指导练习:使用 DNF 安装和更新软件包
可列出所有可用的存储库及其状态
dnf repolist all
启用或禁用存储库
dnf config-manager --enable rhel-9-server-debug-rpms
dnf config-manager
在/etc/yum.repos.d/ 目录中创建 .repo 文件
向 /etc/dnf/dnf.conf 文件添加 [repository] 部分
红帽建议使用 .repo 文件,并将 dnf.conf 文件保留给其他存储库配置
dnf 命令默认搜索这两个位置,但以 .repo 文件优先
添加第三方存储库
启用红帽软件存储库
向计算机添加存储库
使用现有存储库的URL 来创建 .repo 文件
dnf config-manager \\--add-repo=\"https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/\"
cd /etc/yum.repos.d
cat \\
在/etc/yum.repos.d/ 目录中高可用查看对应的 .repo 文件
rpm 使用GPG 密钥签署软件包,并导入公钥以验证软件包的完整性和真实性。
dnf 使用存储库配置文件提供GPG 公钥位置,并导入密钥以验证软件包
密钥存储在远程存储库站点上的不同位置。管理员应将密钥下载到本地文件,而不是让dnf 命令从外部来源检索该密钥
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-9
.repo 文件使用 gpgkey 参数来引用本地密钥
添加DNF 存储库
一些存储库将配置文件和GPG 公钥作为RPM 软件包的一部分来提供,以简化它们的安装
可用使用 rpm --import 命令导入GPG 公钥。
dnf install 命令可用下载并安装这些RPM 软件包
rpm --import \\http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-9
dnf install \\https://dl.fedoraproject.org/pub/epel/epel-relesae-latest-9.noarch.rpm
导入RPM-GPG-KEY-EPEL-9 (EPEL) GPG 公钥并安装 EHEL9 Extra Packages for Enterprise Linux (EPEL) 存储库 RPM
cat /etc/yum.repos.d/epel.repo
要定义存储库,但不默认搜索它,请插入 enabled=0 参数
dnf config-manager 命令可用持久启用和禁用存储库
dnf 命令的 --enablerepo=PATTERN 和 --disablerepo=PATTERN 选项时临时的,仅覆盖命令运行期间
.repo 文件通常在一个文件中列出多个存储库引用。每个存储库引用的开头为包含在方括号里的单一词语名称
本地存储库的RPM 配置软件包
启用DNF 软件存储库
指导练习:启用 DNF 软件存储库
开放研究实验:安装和更新软件包
14. 安装和更新软件包
RHEL 支持使用扩展文件系统(ext4) 文件系统来管理本地文件
自 RHEL 9 起,支持将 exFAT 文件系统用于可移动介质
在企业服务器集群中,共享磁盘使用全局文件系统 2 (GFS2) 文件系统管理并发多节点访问
存储管理概念
通过将文件系统挂载到空目录来访问文件系统的内容。该目录被称为挂载点
挂载后,使用 ls 命令列出该目录的内容。许多文件系统系统启动时自动挂载
挂载点的概念与 Microsoft Windows 驱动器盘符稍有不同,后者的每个文件系统都时在一个独立的实体。挂载点允许在单个树形结构中使用多个文件系统设备。这类似于 Microsoft Windows 中的NTFS 挂载文件夹
文件系统和挂载点
块设置时提供存储设备低级别访问权限的文件。必须对块设备进行可选分区,并创建文件系统,然后才能挂载该设备
/dev 目录存储 RHEL 自动为所有设备创建的块设备文件。
在 RHEL 9 中,检测到的第一个SATA、SAS、SCSI 或 USB 硬盘驱动器被称为 /dev/sda 设备,第二个被称为 /dev/sdb 设备,以此类推
/dev/sda、/dev/sdb、/dev/sdc....
SATA/SAS/USB 附加存储(SCSI 驱动器)
/dev/vda、/dev/vdb、/dev/vdc...
virtio-blk 半虚拟化存储(VM)
virtio-scsi 半虚拟化存储(VM)
/dev/nvme0、/dev/nvme1...
NVMe 附加存储(SSD)
/dev/mmcblk0、/dev/mmcblk1...
SD/MMC/eMMC 存储 (SD 卡)
块设备命名
文件系统、存储和块设备
通常不会将整个存储设备创建成一个文件系统。若要创建分区,请将存储设备划分为较小的区块
借助分区,可用划分硬盘:不同的部分可用通过不同的文件系统进行格式或用于其他用途。
在第一SATA 附加存储中,第一个分区时/dev/sda1 磁盘。同一存储的第二分区时 /dev/sda2 磁盘。第三SATA 附加存储设备上的第三分区时 /dev/sdc3 磁盘,以此类推
分区本身就时块设备
对于NVMe 存储设置,名称的nvmeX部分指代设备,nY 部分指代命名空间,而pZ 部分则指代分区
第一磁盘上第一命名空间的第一分区是/dev/nvme0n1p1 分区。第二磁盘上第一命名空间的第三分区是 /dev/nvme1n1p3 分区,以此类推
NVMe 附加 SSD 设备命名分区的方式于SATA 附加设备不同
SD 或 MMC 卡有时具有与SATA 设备类似的命名系统(/dev/sdN),但并非总是如此。在某些情况下,SD 或 MMC 卡可能具有诸如 /dev/mmcblk0p1 之类名称,其中名称的 mmcblkX 部分指代存储设备,名称pX 部分则指代该设备上的分区编号
ls -l /dev/sda
host 计算机上/dev/ada1 设备文件的扩展列表显示了b 文件类型,其代表块设备
磁盘分区
整理磁盘和分区的另一种方式是利用逻辑卷管理(LVM)
借助 LVM,可以将多个块设备聚合到一个卷组中
卷组中的磁盘空间分隔成若干逻辑卷,它们的功能等同于物理磁盘上的分区
LVM 系统在创建是为卷组和逻辑卷分配名称。LVM 在/dev 目录中创建一个名称与组名匹配的目录,然后再该新目录中创建一个与逻辑卷同名的符号链接。之后,可以挂载该逻辑卷文件。
逻辑卷
使用 df 命令可以显示本地和远程文件系统设备的概览,其中包含总磁盘空间、已用磁盘空间、可用磁盘空间,以及占整个磁盘空间的百分比
分区显示在 / 和 /boot 目录中挂载了两个物理文件系统,这两个目录通常存在于虚拟机上
tmpfs 和 devtmpfs 设备时系统内存中的文件系统。重启后所有文件都会消失
可改善输出大小的可读性
-h 报告单位是 KiB、MiB、GiB
-H 报告单位是KB、MB、GB
df -h 或 -H
-h 和 -H 将输出可读格式
以递归方式显示当前目录树的所有文件的大小
如需有关某一特定目录树空间的详细信息,可用使用du 命令
检测文件系统
识别文件系统和设备
小测验:识别文件系统和设备
要访问可移动存储设备的文件系统,必须挂载该存储设备
通过 mount 命令,root 用户可以手动故障文件系统
mount 命令的第一个参数指定文件挂载的文件系统
第二个参数指定在文件系统层次结构中用作挂载点的目录
使用/dev 目录中的设备文件名
使用UUID ,即设备的通用唯一标识符
不会自动挂载
mount 命令,挂载文件系统方式
手动挂载文件系统
热插拔存储设备每次都可以会插接到系统上的不同的端口
使用lsblk 命令可列出指定块设备或所有可用设备的详细信息
识别块设备
mount /dev/vda4 /mnt/data
在挂载文件系统之前,挂载带你目录必须已经存在。/mnt 目录存在并用做临时挂载点
如果用作挂载点的目录不为空,则文件系统挂载到那里后,现有文件将被隐藏且不可访问。卸载后重新挂载
在系统上添加或删除设备时,设备检测顺序和存储设备命名可能会发生变化。建议一致使用不变的设备标识符来挂载文件系统
使用分区名称挂载文件系统
列出设备的完整路径、其UUID 和挂载点,以及分区的文件系统类型
如果尚未挂载文件系统,挂载点将为空
lsblk -fp
通过文件系统的UUID 挂载文件系统
mount UUID=\"efd314d0-b56e-45db-bbb3-3f32ae98f652\" /mnt/data
使用分区UUID 挂载文件系统
使用图形桌面环境时,系统会在检测到可移动存储介质时自动挂载该介质
USERNAME 是登录图形环境的用户的名称
LABEL 是标识符,通常是存储介质上的标签
可移动存储设备挂载到 /run/media/USERNAME/LABEL 位置
要安全地分离可移动设备,请先手动卸载设备上的所有文件系统
自动挂载可移动存储设备
系统关机和重新启动过程会自动卸载所有文件系统
所有文件系统数据将清空到存储设备,以确保文件系统数据的完整性
使用挂载点作为参数,以卸载文件系统
umount /mnt/data
umount
如果挂载的文件系统在使用中,则无法卸载。
可以列出所有打开的文件,以及访问该文件系统的进程
此列表可以帮助识别哪些进程正在阻止文件系统被成功卸载
lsof
卸载文件系统
挂载和卸载文件系统
指导练习:挂载和卸载文件系统
搜索预生产索引中的文件名或文件路径,并即时返回结果
locate
通过解析整个文件系统层次结构来实时搜索文件
find
搜索文件
locate 命令根据文件的名称或路径来搜索文件
此命令速度较快,因为它是从mlocate 数据库中查找这些信息
数据库不会实时更新,需要频繁更新才能获得准确结果
locate 数据库会每日自动更新
root 用户可以通过发出 updatedb 命令来强制即刻更新
locate 命令现在非特权用户的结果
执行不区分大小写的搜索
locate -i
可限制返回的搜索结果数
locate -n 5 passwd
locate -n
通过名称查找文件
find 命令通过在文件系统层次结构中执行实时搜索来查找文件
此命令速度比locate 命令慢,但更准确
还可以根据文件名以外的条件搜索文件,例如文件的权限、文件、大小或修改时间
find 命令使用执行搜到的用户账户查看文件系统中的文件
运行find 命令的用户必须具有要查看其内容的目录的读取和执行权限
find 命令的第一个参数是要搜索的目录。如果省略目录参数,它会从当前目录中开始搜索,并在任何子目录中查找匹配项
返回与 FILENAME 完全匹配的文件的路径
find / -name sshd_config
find -name FILENAME
find / -name '*.txt'
find /etc -name '*pass*'
可使用通配符搜索文件名,并返回部分匹配的所有结果。使用通配符时,请务必将要查找的文件名用引号括起,以防止终端对通配符进行错误解读。
对文件名执行区分大小写的搜索
find / -iname '*messages*'
find -iname
实时搜索文件
按用户和组名称进行搜索,或按用户 ID 和组 ID 进行搜索
搜索用户用户权限
find -user develpoer
搜索组拥有的文件
find -group developer
搜索1000 用户 ID 拥有的文件
find -uid 1000
搜索1000 组ID 拥有的文件
find -gid 1000
搜索文件所有者和组所有者不同的文件
示例列出了root 用户拥有并具有mail 组的文件
find / -user root -group mail
find -user 和 -group
可查找具有特定权限集的文件
八进制值使用4、2、1定义读取、写入、执行权限
权限前面带有 / 或 - 符号,以控制搜索结果
八进制权限前面带有 / 符号将匹配权限集中至少为用户、组或其他人设置了至少一个权限的文件
具有r--r--r-- 权限的文件与 /222 权限不匹配,但与rw-r--r-- 权限匹配
权限前面带有 - 符号便是权限的所有三个部分都必须匹配。对于上以示例,具有rw-rw-rw 权限的文件将符号条件
八进制方法表示权限
find /home -perm 764
使用符号方法
-ls 选项提供了文件的信息,包括权限
find /home -perm 764 -ls
find /home -perm -324
要搜索的文件需要用户至少具有写入和执行权限,组至少具有写入权限,其他至少具有读取权限
find /home -perm /442
要搜索的文件需要用户具有读取权限,或者至少具有读取权限,或者其他至少具有写入权限
find -perm -004
find -perm -o=r
搜索其他人至少具有读取权限的任何文件
find -perm -002
find -perm -o=w
搜索其他具有写入权限的写入权限的所有文件
与 / 和 - 符号搭配使用时,0 值可用作通配符,因为它表示任何权限
find -perm
根据所有权或权限搜索文件
后面加上数字值和单位,可以查找指定大小匹配的文件
对于千字节,请使用k 单位,k 始终为小写
对于兆字节,请使用M 单位,M 始终为大写
对于千兆字节,请使用G 单位,G 始终为大写
find -size
大小正好为10M 的文件
find -size 10M
大小超过10G 的文件
find -size +10G
大小不到1k 的文件
find -size -10k
使用加号 + 和减号 - 字符分别包含大于和小于给定大小的文件
根据大小查找文件
加上以分钟表示的时间,将搜索在 n 分钟前更改过的内容的所有文件
文件的时间戳向下取整,支持 +n 到 -n 范围内的小数值
在120分钟前更改过内容的所有文件
find / -mmin 120
搜索在 200 分钟前更改过内容的所有文件
find / -mmin +200
过去150 分钟内更改或的文件
find / -mmin -150
find -mmin
根据修改时间搜索文件
将搜索范围限制为给定的文件类型
常规文件,使用 f
目录,使用 d
软链接,使用 l
块设备,使用 b
搜索目录中所有目录
find /etc -type d
搜索目录中的所有软链接
find / -type l
搜索目录中的所有块设备
find /dev -type b
加上数字将查找具有特定硬链接数的所有文件
前面带有 + 修饰符将查找硬链接数超过所给数目的文件
前面是 - 修饰符,则搜索将限制为硬链接数小于所给数目的所有文件
硬链接数超过一个的所有常规文件
find / -type f -links +1
find -links
find -type
根据文件类型所属文件
查找系统中的文件
指导练习:查找系统中的文件
开放研究实验:访问 Linux 文件系统
15. 访问 Linux 文件系统
是适用于红帽企业Linux 的基于 Web 型管理界面,专为管理和监控你的服务器而打造
可以使用Web 控制台监控系统日志并查看系统性能图表
描述Web 控制台
自Linux 7 起,除了最小化安装外,所有安装变体中默认安装Web 控制台
安装Web 控制台
dnf install cockpit
启用并启动 cockpit.socket服务,它会运行一个Web 服务器
systemctl enable --now cockpit.socket
将cockpit 服务添加到firewalld ,以在防火墙中开启端口9090
firewall-cmd --reload
firewall-cmd --add-service=cockpit --permanent
启用 Web 控制台
在Web 浏览器中打开 https://servername:9090
可以使用系统上任何本地账户的用户和密码登录 Web 控制台
登录Web 控制台
在 Web 控制台中更改密码
可以实时监控基本系统统计信息,检查系统日志,并快速切换到Web 控制台中的终端会话
使用Web 控制台进行故障排除
Overview 按钮来查看系统的相关信息
如硬件类型、操作系统和主机名登
查看CPU 活动、内存用量、磁盘 I/O 和网络利用率等当前系统性能的详细信息
View details and history
实时监控系统统计信息
可以访问系统日志分析工具
Logs
检查和过滤Syslog 事件
可以在Web 控制台界面内访问全功能终端会话
Terminal 按钮
从终端会话运行命令
诊断报告中汇聚了来自红帽企业Linux 系统的配置详细信息、系统信息和诊断信息
以特殊用户身份登录Web 控制台。Diagnostic reportsa 按钮,以打开用于创建这些包括的页面。点击create report 按钮以生成新的诊断报告
创建诊断报告
以特权用户身份使用Web 控制台,可以停止、启动、启用和重新启动系统服务
还可以配置网络接口,配置防火墙,以及管理用户账户
使用Web 控制台管理系统服务
Overview
系统电源选项
Targets
Sockets
Services
控制运行中的系统服务
Networking
配置网络接口和防火墙
Accounts
管理用户账户
分析和管理远程服务器
指导练习:分析和管理远程服务器
门户 https://access.redhat.com
访问官方的产品文档、解决方案和常见文件解答
提交和管理支持案例
管理软件订阅和授权
获取软件下载、更新和评估
访问红帽产品安全公告目录
访问红帽资源的集成搜索引擎
访问白皮书、信息表和多媒体演示
参与社区讨论
红帽客户门户上的支持资源
登录红帽客户门户后,单击Tour the Customer Portal按钮
管理注册的系统、订阅和授权
Subscriptions
访问你的产品下载并请求对无授权产品的评估
Downloads
管理您的账户、您的组织管理员的任何账户、您的配置集和电子邮件通知选项
Support Cases
顶部导航栏
Products & Services
Tools
Security
Community
红帽客户门户菜单导航
红帽客户门户导览
收集报告的相关信息
定义问题。具体地陈述问题及其症状
受影响的产品和版本是什么
准备好提供相关的诊断信息
此信息可能包括sos report 命令的输出
对于内核问题,此信息可能包含系统的kdump 崩溃转储,或者崩溃系统的监视器上所显示内核回溯的数字照片
紧急 1
高 2
中 3
低 4
确定严重级别
收集背景信息。
Diagnostic Reports,然后点击 Create report
单击 Download report,再单击Save File 以保存诊断报告
使用Web 控制台生成 sos 报告
使用sos 软件包来安装 sos 报告实用程序
dnf install sos
生成报告,需要root 特权
sos report
上一命令中提供了任何支持案例ID,报告会之间附加到之前创建的支持案例
可以使用此选项将报告发送给技术支持
sos report --utility
验证sos report 命令是否在上一位置创建了存档文件
ls -l /var/tmp
可模糊处理报告中的个人信息
sos clean
使用命令行生成 sos 报告
通过使用 sos report 命令 --upload 选项来发送 sos 报告
将 sos 报告随同支持案例一起发送到红帽客户门户
将 sos 报告发送给红帽技术支持
sos 报告实用程序
联系红帽客户支持
红帽开发人员计划托管于 https://developers.redhat.com
加入红帽开发人员计划
指导练习:创建诊断报告
一款预测分析工具
SaaS 形式提供红帽智能分析
使用红帽智能分析,在客户端系统安装一个代理,收集元数据
红帽智能分析介绍
红帽自能分析架构描述
智能分析工具已作为订阅的一部分随附于 Linux 9 中
早期版本需要安装 insights-client 软件包
自 Linux 7.5 起,insights-client 软件包取代了redhat-access-insights
刷新客户端的元数据
insights-client
安装红帽智能分析客户端
使用红帽订阅管理服务,以交互方式注册系统
subscription-manager register --auto-attach
RHEL 8 及更高版本的系统会默认安装
dnf install insights-client
将系统注册到智能分析服务并上传初始系统元数据
insights-client --register
在红帽智能分析(https://console.redhat.com/insights)上,确保您已登录,并在Web UI 的 Inventory 部分下可以看到系统
将RHEL 系统注册到红帽智能分析
红帽智能分析提供一系列服务,可以通过 https://console.redhat.com/insights 网站上访问这些服务
Advisor -> Recommendations
使用顾问服务检查配置问题
Vulnerability -> CVEs
使用漏洞服务进行安全性评估
使用合规性服务分析合规性
Patch -> Systems
使用补丁服务更新软件包
Drift -> Comparison
使用偏移服务对系统进行比较
Policies
使用策略服务触发警报
清单、修复 Playbook 和订阅监控
红帽智能分析控制台导航
通过红帽智能分析检测和解决问题
小测验:通过红帽智能分析检查和解决问题
16. 分析服务器和获取支持
复习 红帽系统管理一
描述和定义开源、Linux、Linux发行版和红帽企业 Linux
定义和解释 Linux 用途、开源、Linux 发行版和红帽企业Linux
第 1 章 红帽企业 Linux 入门
登录Linux 系统并从shell 运行简单的命令
登录Linux 系统并使用shell 运行简单的命令
使用GNOME 桌面环境登录Linux 系统,并在终端程序中从shell 提示符运行命令
从shell 提示符运行命令时,使用Bash 快捷键来节省时间
第 2 章 访问命令行
从 Bash shell 中,复制、移动、创建、删除和组织文件
描述Linux 如何组织文件,以及文件系统层次结构中各种目录的用途
指定文件的绝对位置和相对于当前工作目录的位置,确定并更改工作目录,以及列出目录的内容
创建、复制、移动和删除文件及目录
使用硬链接和符号(或“软”)链接,使多个文件引用同一文件
通过使用Bash shell 的模式匹配功能,高效地运行影响很多文件的命令
第 3 章 从命令行管理文件
通过利用本地帮助系统来解决问题
在本地Linux 系统手册页中查找信息
第 4 章 在红帽企业Linux 中获取帮助
通过命令行输出或在编辑器中创建、查看和编辑文本文件
通过shell 重定向将标准输出或标准错误保存到文件中,并利用管道处理多个命令行程序的输出
使用vim 编辑器从命令行创建和编辑文本文件
设置shell 变量以运行命令,并编辑Bash 启动脚本以设置shell 和环境变量,从而修改shell 以及从shell 运行的程序的行为
第 5 章 创建、查看和编辑文本文件
创建、管理和删除本地用户和组,以及管理本地密码策略
描述Linux 系统上用户和组的用途
切换到超级用户账户来管理 Linux 系统,并使用sudo 命令授予其他用超级用户访问权限
创建、修改和删除本地用户账户
创建、修改和删除本地账户
为用户设置密码管理策略,并手动锁定和解锁用户账户
第 6 章 管理本地用户和组
设置文件的Linux 文件系统权限,并接受不同权限设置的安全效果
列出文件和目录的文件系统权限,并解释这些权限对用户和组访问权限的影响
利用命令行工具更改文件的权限和所有权
控制用户创建的文件的默认权限,解决特殊权限的影响,并使用特殊权限和默认权限来设置在特定目录中创建的我呢见的组所有者
第 7 章 控制对文件的访问
评估和控制在红帽企业 Linux 系统上运行的进程
确定系统上运行的程序的状态、资源使用情况和所有权,以进行控制
使用Bash 作业控制来管理从同一终端会话启动的多个进程
使用命令来中止进程和与进程通信,定义守护进程的特征,以及停止用户会话和进程
定义负载平均值并确定资源密集型服务器进程
第 8 章 监控和管理 Linux 进程
使用systemd 服务来控制和监控网络服务与系统守护进程
列出有systemd 服务和套接字单元启动的系统守护进程和网络服务
使用systemctl 控制系统守护进程和网络服务
第 9 章 控制服务和守护进程
使用 OpenSSH 配置远程系统上的安全命令行服务
使用ssh 命令登录远程系统并允许命令
配置用户账户以使用基于密钥的身份验证,从而无需密码就能安全第登录远程系统
禁止直接以root 身份登录,并为OpenSSH 服务禁用基于密码的身份验证
第 10 章 配置和保护 SSH
查找和准确解读系统事件日志,以满足故障排除之需
描述红帽企业Linux 用于记录事件的基本日志架构
解读相关syslog 文件中的事件,以排除故障或查看系统状态
查找和解读系统日志中的条目,以排除故障或查看系统状态
配置系统日志,以在服务器系统重启时保留事件记录
利用网络时间协议(NTP)维护准确的时间同步,并且配置时区以确保系统日志和日志记录的事件标有正确的时间戳
第 11 章 分析和存储日志
配置红帽企业Linux 服务器上的网络接口和设置
描述服务器关于网络寻址和路由的基本概念
使用命令行实用程序,测试并检查当前的网络配置
使用nmcli 命令管理网络设置和设备
通过编辑配置文件修改网络配置
配置服务器的静态主机名及其名称解析,并测试其结果
第 12 章 管理网络
将文件归档,并从一个系统复制文件到另一系统
使用tar 将文件和目录归档到压缩文件中,以及提取现有tar 存档的内容
通过SSH,与远程系统安全地来回传输文件
高效、安全地将本地文件或目录内容与远程服务器副本同步
第 13 章 归档和传输文件
从红帽和DNF 软件包存储库下载、安装、更新和管理软件包
将系统注册到你的红帽账户,并使用红帽订阅管理为其分配软件更新和支持服务的权力
说明如何以RPM 软件包形式提供软件,并调查 DNF 和 RPM 安装的系统软件包
使用dnf 命令查找、安装和更新软件
启用和禁用红帽或第三方DNF 存储库
第 14 章 安装和更新软件包
访问、检查和使用附加至 Linux 服务器的存储上的现有文件系统
识别文件系统层次结构中的目录,以及存储该目录的设备
通过在文件系统层次结构中添加和删除文件系统,访问文件系统的内容
通过 find 和 locate 命令搜索已挂载文件系统的文件
第 15 章 访问Linux 文件系统
在基于Web 的管理界面中调查和解决问题,并从红帽获取支持以帮助解决问题
激活Web 控制台管理界面,以远程管理和监控红帽企业Linux 服务器性能
描述和使用红帽客户门户上的资源,并在红帽文档和知识库中查找信息
使用Red Hat Insights,分析服务器问题,修复或解决问题,以及确认解决方案是否奏效
第 16 章 分析服务器和获取支持
总复习
开放研究实验:管理用户和组、权限以及进程
开放研究实验:配置和管理服务器
开放研究实验:挂载文件系统和查找文件
17. 总复习
RHCE 9 - RH124
![RHCE 9 - RH124](https://www.processon.com/chart_image/template/thumb/669a38e60ecf97769ecb4fa1.png?tid=6670f6116710e6074ca97be2)
收藏
0 条评论
回复 删除
下一页