考试环境说明:
虚拟机 1:node1.example.com
虚拟机 2:node2.example.com
虚拟机 3: classroom.example.com (考试时 classroom 为考官机器,考生电脑只能看到 2 台虚拟机)
练习环境:
虚拟机 1:node1.example.com (node2 的题目也在 node1 完成即可)
虚拟机 2: classroom.example.com
###部署练习环境
安装一台虚拟机为虚拟机 node1 添加 2 块 SATA 硬盘,然后执行以下初始化命令
ifconfig ens160 172.25.0.11/24
firewall-cmd --set-default-zone=trusted
wget -O /usr/bin/rht_setup200 http://172.25.0.254/rht_setup200
chmod +x /usr/bin/rht_setup200
rht_setup200
I.以下是虚拟机 1 需要执行的任务1. 配置网络设置
试题概述: 给虚拟机 1 设置以下网络参数
主机名:node1.example.com、IP 地址:172.25.0.11、子网掩码:255.255.255.0、网关:172.25.0.254、名称服务器:172.25.254.254
[root@node1 ~]# nmcli connection modify 'Wired connection 1' ipv4.method manual ipv4.addresses 172.25.0.11/24 ipv4.gateway 172.25.0.254 ipv4.dns 172.25.254.254 connection.autoconnect yes
[root@node1 ~]# nmcli connection up 'Wired connection 1'
[root@node1 ~]# hostnamectl set-hostname node1.example.com
2. 配置 yum 仓库
试题概述:YUM 存储库已可以从 http://classroom.example.com/dvd/BaseOS 和 http://classroom.example.com/dvd/AppStream 使用 配置您的系统,以将这些位置用作默认存储库。
方法 1:手动配置 考试时虚拟机没有安装 vim 编辑器,手动配置要使用 vi 编辑器(使用方法与 vim 一样)
方法 2:命令配置
[root@node1 ~]# rm -rf /etc/yum.repos.d/*
[root@node1 ~]# dnf config-manager --add http://classroom.example.com/dvd/BaseOS [root@node1 ~]# dnf config-manager --add http://classroom.example.com/dvd/AppStream
###会自动生成这两个文件,通过追加重定向,添加 gpgcheck=0 的配置
[root@node1~]#echogpgcheck=0>>/etc/yum.repos.d/classroom.example.com_dvd_BaseOS.repo
[root@node1~]#echogpgcheck=0>>/etc/yum.repos.d/classroom.example.com_dvd_AppStream.repo
[root@node1 ~]# yum clean all
[root@node1 ~]# yum repolist
配置好 yum 源后,安装 vim 编辑器,方便后续使用
[root@node1 ~]# yum -y install vim
3. 设置 SELinux
试题概述: 非标准端口 1.系统上的 件内容) 82 上运行的 Web 服务器在提供内容时遇到问题。根据需要调试并解决问题,使其满足以下条件:
1.系统上的Web 服务器能够提供 /var/www/html 中所有现有的 HTML 文件(注:不要删除或以其他方式改动现有的文
2.Web 服务器在端口 82 上提供此内容
3.Web 服务器在系统启动时自动启动
[root@node1 ~]# semanage port -a -t http_port_t -p tcp 82
[root@node1 ~]# chcon -R --reference=/var/www/ /var/www/html/
[root@node1 ~]# ls -lZ /var/www/html/
[root@node1 ~]# systemctl restart httpd
[root@node1 ~]# systemctl enable httpd
4. 配置用户账户
试题概述: 创建下列用户、组和组成员资格:
1.名为 sysmgrs 的组
2.用户 natasha ,作为次要组从属于 sysmgrs
3.用户 harry ,作为次要组从属于 sysmgrs
4.用户 sarah ,无权访问系统上的交互式 shell 且不是 sysmgrs 的成员
5.natasha 、 harry 和 sarah 的密码应当都是 123
[root@node1 ~]# groupadd sysmgrs
[root@node1 ~]# useradd -G sysmgrs natasha
[root@node1 ~]# useradd -G sysmgrs harry
[root@node1 ~]# useradd -s /bin/false sarah
[root@node1 ~]# for i in natasha harry sarah; do echo 123 | passwd --stdin $i; done
5. 配置 cron 计划任务
试题概述: 配置 cron 作业,该作业在本地时间每天 14:23 运行并执行以下命令: logger "EX200 in progress",以用户 natasha 身份运行
[root@node1 ~]# crontab -e -u natasha (编辑内容:23 14 * * * logger "EX200 in progress")
6. 创建目录
试题概述: 1.创建目录 /home/managers 2./home/managers 的组用权是 sysmgrs 3.目录应当可被 sysmgrs 的成员读取。写入和访问,但任何其他用户不具这些权限。(当然,root 管理员享有读取写入 和访问目录的权限) 4./home/managers 中创建的文件自动将组所有权设置到 sysmgrs 组
[root@node1 ~]# mkdir /home/managers
[root@node1 ~]# chown :sysmgrs /home/managers
[root@node1 ~]# chmod g=rwx,o=- /home/managers
[root@node1 ~]# chmod g+s /home/managers/
7. 配置 NTP 时间同步 试题概述: 配置您的系统,使其成为 classroom.example.com 的 NTP 客户端。
[root@node1 ~]# rm -rf /etc/chrony.conf
[root@node1 ~]# yum -y reinstall chrony
[root@node1 ~]# vim /etc/chrony.conf (修改第 3 行 pool classroom.example.com iburst)
[root@node1 ~]# systemctl restart chronyd
[root@node1 ~]# systemctl enable chronyd
[root@node1 ~]# chronyc sources -v
8. 配置 autofs
试题概述: 配置 autofs ,以按照如下所述自动挂载远程用户的主目录:
1. classroom.example.com(172.25.0.254) NFS 导出 /rhel8 到您的系统。此文件系统包含为用户 user1 预配置的主目录
2.user1 的主目录是 classroom.example.com:/rhel8/user1
3.user1 的主目录应自动挂载到本地 /home/rhel8 下的 /home/rhel8/user1
4.主目录必须可供其用户写入 5.user1 的密码是 123
[root@node1 ~]# yum -y install autofs
[root@node1 ~]# vim /etc/auto.master (添加 一 行 /home/rhel8 /etc/auto.rule)
[root@node1 ~]# vim /etc/auto.rule (添加 user1 -rw classroom.example.com:/rhel8/user1)
[root@node1 ~]# systemctl restart autofs [root@node1 ~]# systemctl enable autofs
9. 设置文件权限
试题概述: 将文件 /etc/fstab 复制到 /var/tmp/fstab 。配置 /var/tmp/fstab 的权限以满足如下条件:
1.文件 /var/tmp/fstab 自 root 用户所有
2.文件 /var/tmp/fstab 属于组 root
3.文件 /var/tmp/fstab 应不能被任何人执行
4.用户 natasha 能够读取和写入 /var/tmp/fstab
5.用户 harry 无法写入或读取 /var/tmp/fstab 6.所有其他用户(当前或未来)能够读取 /var/tmp/fstab
[root@node1 ~]# cp /etc/fstab /var/tmp
[root@node1 ~]# setfacl -m u:natasha:rw /var/tmp/fstab
[root@node1 ~]# setfacl -m u:harry:- /var/tmp/fstab
10. 创建用户账户
试题概述: 创建用户 user2,其用户 ID 为 3388. 用户密码为 123
[root@node1 ~]# useradd -u 3388 user2
[root@node1 ~]# echo 123 | passwd --stdin us
建议使用: [root@node1 ~]#passwd user2
11. 查找文件
试题概述: 查找 student 所有的文件并将其复制到/root/dfiles 目录下
[root@node1 ~]# mkdir /root/dfiles
[root@node1 ~]# find / -user student –type f -exec cp -a {} /root/dfiles ;
12. 查找字符串
试题概述: 查找 xxx 目录下包含 yyy 字符串的文件。将所有这些行的副本按原始顺序放在目录/root/files 中
[root@node1 ~]# mkdir /root/files
[root@node1 ~]# find xxx -name *yyy* -type f -exec cp -p {} /root/files ;
13. 创建存档
试题概述: 创建一个名为 /root/books.tar.gz 的 tar 存档,其应包含 /usr/local 的 tar 存档,其应包含 /usr/local 的内容。该 tar 存档必须使用 bzip2 进行压缩
[root@node1 ~]# tar -jPcf /root/books.tar.gz /usr/local
14. 配置容器使其开机自启动(*选做)
试题概述: 利用注册表服务器上的 rsyslog 镜像,创建一个名为 journal-server 的容器 面向 tom 用户,配置一个 systemd 服务 该服务命名为 container-journal-server,并在系统重启时自动启动,无需人为干预
15. 为容器配置持久存储
试题概述: 通过以下方式扩展上一个任务的服务 配置主机系统的 journald 日志以在系统重启后保留数据,并重新启动日志记录服务 将主机/var/log/journal 目录下任何以*.journal 的文件复制到/home/tom/container_logfile 中 将服务配置为在启动时自动将/home/tom/container_logfile 挂载到容器中的/var/log/journal 下
[root@node1 ~]# su – tom
[tom@node1 ~]# podman login registry.example.com
Username:admin
Password:题目提供密码
Login Succeeded
[tom@node1 ~]# podman pull rsyslog
###注意:镜像名字需要访问镜像链接,复制网页里面镜像的名字,因为其可能与题目所给名字不同
###在练习环境下没有 registry.example.com 这个镜像网站,导入本地镜像 nginx.tar 来模拟考试环境下载镜像
###练习环境下:
[tom@node1 ~]# podman load -i /nginx.tar #导入本地镜像 nginx.tar,考试不需要这一步骤
[tom@node1 ~]# podman images
[tom@node1 ~]# loginctl enable-linger tom
[tom@node1 ~]# mkdir -p /home/tom/container_logfile
[tom@node1 ~]#
podman run -dit --name=journal-server - v/home/tom/container_logfile:/var/log/journal:Z rsyslog #练习环境下将 rsylog 改为 nginx 这个镜像名称
[tom@node1 ~]# podman ps
[tom@node1 ~]# podman exec -it journal-server /bin/bash
root@5c0b3c0c25a1:/# ###看到这个终端提示符说明成功交互式连接到容器内部(类似虚拟机)
root@5c0b3c0c25a1:/# logger xxx ###从题目中复制以 logger 开头的命令,生成日志文件、
root@5c0b3c0c25a1:/# ls /var/log/journal/ ###查看有没有生成日志文件
root@5c0b3c0c25a1:/# exit ###退出回到命令行
[tom@node1 ~]$ ls /home/tom/container_logfile/ ###查看物理机上挂载的目录有没有同步出现日志文件
[tom@node1 ~]# mkdir -p ~/.config/systemd/user
[tom@node1 ~]# cd ~/.config/systemd/user
[tom@node1 ~]# podman generate systemd --name journal-server --restart-policy always --files
[tom@node1 ~]# systemctl --user daemon-reload
[tom@node1 ~]# systemctl --user enable container-journal-server
[tom@node1 ~]# systemctl --user stop container-journal-server
[tom@node1 ~]# cp /var/log/journal/*.journal /home/tom/container_logfile
16. 该题的题型不固定
题型 1:创建用于定位文件的脚本
试题概述: 在 node1 上创建名为 strong 的脚本,用于定位/usr 下的文件
a.脚本 strong 应定位到/usr 下面所有小于 10M 并有设置 GID 权限的文件
b.将脚本 strong 放置在/usr/bin 下面
c.执行时,脚本 strong 应将查找到的文件列表保存到/root/strongfiles 中
①创建脚本文件
题目要求的文件名没有.sh 后缀,一定不要自行添加后缀
[tom@node1 ~]# vim /usr/bin/strong find /usr -size -10M -type f -perm -2000 > /root/strongfiles
②给脚本添加执行权限
[tom@node1 ~]# chmod +x /usr/bin/strong
③给脚本添加执行权限
###放在/usr/bin/目录下的脚本会如同系统命令一般,直接执行即可,不需要写绝对路径
[root@node1 ~]# strong [root@noed1 ~]# cat /root/strongfiles
题型 2:添加 sudo 免密操作
试题概述: 添加 sudo 免密操作,允许 sysmgrs 组成员在执行 sudo 开头的命令时不需要密码
通过命令修改 sudo 的主配置文件
[root@node1 ~]# visudo
###该命令原理是调用了 vi 编辑器进行修改配置文件(操作方法与 vim 编辑器一致)
快捷键 shift+g 跳到文件的最后面
找到配置# %wheel ALL=(ALL) NOPASSWD: ALL
将光标放到这一行,快捷键 yy 复制这行,然后光标保持不动,快捷键 p 粘贴这行修改成:
%sysmgrs ALL=(ALL) NOPASSWD: ALL
完成修改后保存并退出即可
题型 3:设置新用户密码策略
试题概述: 配置创建新用户的密码策略:配置创建新用户的密码策略,使得在创建新用户时,默认密码策略为 20 天后密码就会过期
[root@node1 ~]# vim /etc/login.defs
搜索关键词 PASS_MAX_DAYS 将该配置项修改为 PASS_MAX_DAYS 20
验证方法:
[root@node1 ~]# useradd testuser
[root@node1 ~]# chage -l testuser
题型 4:配置用户的 umask
试题概述: 根据题目要求确定解法:
情况 1:如果题目要求更改系统所有用户的 umask:
[root@node1 ~]# vim /etc/bashrc
###搜索关键词 umask,根据题意进行更改
###默认配置是 UID 大于 199:umask 为 002,否则为 022
情况 2:如果题目要求更改用户自己的 umask:
[root@node1 ~]# vim ~/.bash_profile
打开文件后快捷键 shift+g 跳到文件的最后面 在文件最后面添加一行 umask 的配置
验证方法: [root@node1 ~]# umask
II.以下是虚拟机 2 需要执行的任务1. 破解密码
试题概述: node2.example.com 的 root 密码设置为 123 。
开机内核选择页面按 e 键→在 linux 所在行的行尾加 rd.break→按快捷键 ctrl + x
mount -o remount,rw / /sysroot (重新挂载系统根目录)
chroot /sysroot (切换系统根目录)
echo 123 | passwd --stdin root (修改 root 密码)
touch /.autorelabel (重新为文件打 SELinux 安全标签)
exit (退出系统根目录)
reboot (重启)
2. 配置 yum 仓库
试题概述: YUM 存储库已可以从 http://classroom.example.com/dvd/BaseOS 和 http://classroom.example.com/dvd/AppStream 使用 配置您的系统,以将这些位置用作默认存储库。
该题与第Ⅰ部分第 2 题的解题方法相同
3. 调整逻辑卷大小
试题概述: 将逻辑卷 vo 及其文件系统的大小调整到 180 MiB。确保文件系统内容保持不变。注:分区大小很少与请求的大小完全 相同,因此可以接受范围为 167 MiB 到 193 MiB 的大小
[root@node2 ~]# df -Th (查看卷组、逻辑卷名称,文件系统类型,挂载点)
[root@node2 ~]# vgs myvol
[root@node2 ~]# fdisk /dev/sdb(添加一个分区)
[root@node2 ~]# vgextend myvol /dev/sdbX(使用上面添加的分区扩展卷组)
[root@node2 ~]# lvextend -L 180M /dev/myvol/vo
[root@node2 ~]# blkid /dev/myvol/vo(查看逻辑卷的文件系统,根据文件系统选择扩充逻辑卷的命令)
[root@node2 ~]# resize2fs /dev/myvol/vo (或如果文件系统是 xfs 则使用 xfs_growfs /vo_mount 命令进行拓展)
4. 添加交换分区
试题概述: 向您的系统添加一个额外的交换分区 567MiB 。交换分区应在系统启动时自动挂载。不要删除或以任何方式改动系统上 的任何现有交换分区
[root@node2 ~]# lsblk
[root@node2 ~]# fdisk /dev/vdb
# 命令(输入 m 获取帮助): n
#分区号 (2-128, 默认 2):
#第一个扇区 (1000001-7877778, 默认 1002678):
#上个扇区,+sectors 或 +size{K,M,G,T,P} (1002678-9876578, 默认 9876557): +567M
#命令(输入 m 获取帮助): w
[root@node2 ~]#mkswap /dev/vdb2
[root@node2 ~]#vim /etc/fstab (添加 UUID=5c267df6-c515-4fe0-9895-d6cf8b48099e swap swap defaults 0 0)
[root@node2 ~]#swapon -a
5. 创建逻辑卷
试题概述: 根据如下要求,创建新的逻辑卷:
1.逻辑卷取名为 np ,属于 npgroup 卷组,大小为 45 个扩展块
2.npgroup 卷组中逻辑卷的扩展块大小应当为 20 MiB
3.使用 vfat 文件系统格式化新逻辑卷。该逻辑卷应在系统启动时自动挂载到 /mnt/np 下
[root@node2 ~]# lsblk
[root@node2 ~]# fdisk /dev/vdb
[root@node2 ~]# pvcreate /dev/vdb3
[root@node2 ~]# vgcreate -s 20M npgroup /dev/vdb3
[root@node2 ~]# lvcreate -l 45 -n np npgroup
[root@node2 ~]# mkfs.vfat /dev/npgroup/np
[root@node2 ~]# mkdir /mnt/np
[root@node2 ~]# vim /etc/fstab (添加 /dev/npgroup/np /mnt/np vfat defaults 0 0)
[root@node2 ~]# mount -a
6. 创建 VDO 卷
试题概述: 根据如下要求,创建新的 VDO 卷:
1.使用未分区的磁盘
2.该卷的名称为 vdoname
3.该卷的逻辑大小为 80G
4.该卷使用 xfs 文件系统格式化
5.该卷挂载到 /vbark 下
[root@node2 ~]# lsblk
[root@node2 ~]# yum install vdo
[root@node2 ~]# vdo create --name=vdoname --device=/dev/vdc --vdoLogicalSize=80G
[root@node2 ~]# mkfs.xfs -K /dev/mapper/vdoname
[root@node2 ~]# udevadm settle
[root@node2 ~]# mkdir /vbark
[root@node2 ~]# blkid /dev/mapper/vdoname
[root@node2 ~]# vim /etc/fstab (添加 UUID="4cd00f99-03b6-429d-bf45-165efe06b29a" /vbark xfs defaults,x-systemd.requires=vdo.service 0 0)
[root@node2 ~]# mount -a
7. 配置系统调优
试题概述: 系统选择建议的 tuned 配置集并将它设为默认设置
[root@node2 ~]# tuned-adm recommend (看 tuned-adm recommend 的结果)
[root@node2 ~]# tuned-adm profile virtual-guest



