系列文章目录
- 红帽 RHCSA 8版本so easy
- 红帽 RHCE 8版本最后一个月冲一波证书
文章目录
- 一、配置网络设置
- 二、配置您的系统以使用默认存储库
- 三、调试 SELinux
- 四、创建用户帐户
- 五、配置cron作业
- 六、创建协作目录
- 七、配置 NTP
- 八、配置 autofs
- 九、配置/var/tmp/fstab权限
- 十、配置用户帐户
- 十一、查找文件
- 十二、查找字符串
- 十三、创建存档
- 十四、设置root密码
- 十五、配置您的系统以使用默认存储库
- 十六、调整逻辑卷大小
- 十七、添加交换分区
- 十八、创建逻辑卷
- 十九、创建VDO卷
- 二十、配置系统调优
- 二十一、新增容器题目1
- 二十二、新增容器题目2
- 二十三、新增容器题目3
- 二十四、脚本考试题1
- 二十五、脚本考试题2
- 二十六、新增sudo权限设置
- 二十七、umask练习
- 二十八、更改密码策略
- 二十九、设置登陆信息
- 三十、新增脚本题
- 总结
前言
RHCSA 8 版本考试有两台虚拟机,两台虚拟机分别做不同的操作,考试时千万注意不要把所有操作做到 一台机器上。
重要配置信息
在考试期间,除了您就坐位置的台式机之外,还将使用多个虚拟系统。您不具有台式机系统的访问权,但具有对虚拟系统的完全 root 访问权。
系统 | IP地址 |
mars.lab.example.com | 192.168.122.101 |
venus.lab.example.com | 192.168.122.102 |
您使用的系统属于DNS域 lab.example.com 。该域中的所有系统都位于192.168.122.0/255.255.255.0 子网中,该子网中的所有系统都位于 lab.example.com 中。
针对这些系统列出的 IP 地址是应该分配给系统的地址。您可能需要为一个或两个系统配置网络,以便能够通过上述地址访问您的地址。
帐户信息
mars 的 root 密码已经设置为 redhat 。 除非另有指定,否则这将是用于访问其他系统和服务的密码。此外,除非另有指定,否则应将该密码用于您创建的任何问题帐户或者需要设置密码的任意服务。
重要评测信息
您的系统会在重新引导后进行评测,因此务必确保您实施的的所有配置和服务在重新引导后仍然保留。 服务必须在没有人工干预的情况下启动。 同样,本次考试使用的所有虚拟实例都必须能够重新引导至适当的多用户目标,而无需任何人工辅助。 在无法引导或无法进行无人干预引导的系统上完成的所有操作都将为零分。
在 mars.lab.example.com 上执行以下任务
一、配置网络设置
- 题目
将mars配置为具有以下网络配置:
- 主机名:mars.lab.example.com
- IP 地址:192.168.122.101
- 子网掩码:255.255.255.0
- 网关:打开VMware-编辑-虚拟网络编辑器-NAT模式-NAT设置找到网关地址(考试时会直接给出网关地址)
- 名称服务器:223.5.5.5
- 答案
# 修改主机名,切换bash环境检查结果
[root@localhost ~]# hostnamectl set-hostname mars.lab.example.com
[root@localhost ~]# su - root
[root@mars ~]# hostname
# 查看当前网卡配置
[root@mars ~]# nmcli connection show
[root@mars ~]# nmcli device status
# 方式一,修改现有网卡配置文件,重新加载并启用网卡
[root@mars ~]# nmcli connection modify ens160 ipv4.method manual ip4 192.168.122.101/24 gw4 192.168.122.250 ipv4.dns 223.5.5.5 connection.autoconnect yes
[root@mars ~]# nmcli connection reload
[root@mars ~]# nmcli connection up ens160
# 方式二,删除现有网卡配置文件,重新创建一个,创建后默认自动加载并启用网卡
[root@mars ~]# nmcli connection add con-name ens160 ifname ens160 ipv4.method manual ip4 192.168.122.101/24 gw4 192.168.122.250 ipv4.dns 223.5.5.5 type ethernet connection.autoconnect yes
# 检查测试
[root@mars ~]# ip a
[root@mars ~]# ping 192.168.122.250
[root@mars ~]# nmcli connection show
[root@mars ~]# nmcli device status
[root@mars ~]# cat /etc/resolv.conf
[root@mars ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens160
二、配置您的系统以使用默认存储库
- 题目
yum 存储库以可以从
http://mirrors.aliyun.com/centos-vault/8.5.2111/BaseOS/$basearch/os/
和
http://mirrors.aliyun.com/centos-vault/8.5.2111/AppStream/$basearch/os/
使用。配置您的系统,以将这些位置用作默认存储库
- 答案
# 移动到yum仓库目录,查看是否已有其它仓库文件,若有先mv改名备份,然后根据题意创建yum仓库
[root@mars ~]# cd /etc/yum.repos.d/
[root@mars yum.repos.d]# ls
[root@mars yum.repos.d]# vim rhcsa.repo
[root@mars yum.repos.d]# cat rhcsa.repo
[BaseOS]
name=BaseOS
baseurl=http://mirrors.aliyun.com/centos-vault/8.5.2111/BaseOS/$basearch/os/
gpgcheck=0
enabled=1
[AppStream]
name=AppStream
baseurl=http://mirrors.aliyun.com/centos-vault/8.5.2111/AppStream/$basearch/os/
gpgcheck=0
enabled=1
# 要求清除缓存并重新生成缓存无报错,检查yum仓库列表能否正常拉取
[root@mars yum.repos.d]# yum clean all
[root@mars yum.repos.d]# yum makecache
[root@mars yum.repos.d]# yum repolist all
三、调试 SELinux
- 题目
非标准端口82上运行的 Web 服务器在提供内容时遇到问题。 根据需要调试并解决问题, 使其满足以下条件:
- 系统上的 Web 服务器能够提供 /var/www/html 中所有现有的 HTML 文件( 注: 不要删除或以其他方式改动现有的文件内容)
- Web服务器在端口82上提供此内容
- Web服务器在系统启动时自动启动
- 答案
# 检查此时firewalld状态应该为开启,selinux状态为开启,httpd状态报错
[root@mars ~]# systemctl status firewalld
[root@mars ~]# getenforce
[root@mars ~]# systemctl status httpd
# 防火墙永久放行http服务和tcp82端口
[root@mars ~]# firewall-cmd --get-default-zone
[root@mars ~]# firewall-cmd --zone=public --add-service=http
[root@mars ~]# firewall-cmd --zone=public --add-service=http --permanent
[root@mars ~]# firewall-cmd --zone=public --add-port=82/tcp
[root@mars ~]# firewall-cmd --zone=public --add-port=82/tcp --permanent
[root@mars ~]# firewall-cmd --reload
# selinux放行82端口,并检查是否已成功放行
[root@mars ~]# semanage port -a -t http_port_t -p tcp 82
[root@mars ~]# semanage port -l | grep http
# 递归设置/var/www/html目录上下文环境为httpd_sys_content_t(考试环境-a报错则使用-m)
[root@mars ~]# semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?"
[root@mars ~]# restorecon -R -v /var/www/html
# 启用httpd服务,并设置httpd服务开机自启动
[root@mars ~]# systemctl enable --now httpd
# 检查httpd服务状态,端口是否正常监听,测试本机和其它机器能否正常curl到/var/www/html/hello.html文件内容
[root@mars ~]# systemctl status httpd
[root@mars ~]# netstat -anlp | grep httpd
[root@mars ~]# curl localhost:82/hello.html
[root@localhost ~]# curl 192.168.122.101:82/hello.html
四、创建用户帐户
- 题目
创建下列用户、 组和组成员资格:
- 名为 admins 的组
- 用户 lucy,作为次要组从属于 admins
- 用户 harry ,作为次要组还从属于 admins
- 用户 jams,无权访问系统上的交互式shell且不是 admins 的成员
- lucy、harry 和 jams 的密码应当都是 redhat
- 答案
# 创建admins组,创建三个用户,并设置用户密码为redhat
[root@mars ~]# groupadd admins
[root@mars ~]# useradd lucy -G admins
[root@mars ~]# useradd harry -G admins
[root@mars ~]# useradd jams -s /sbin/nologin
[root@mars ~]# echo redhat | passwd --stdin lucy
[root@mars ~]# echo redhat | passwd --stdin harry
[root@mars ~]# echo redhat | passwd --stdin jams
# 检查附属组是否设置正确,登陆测试密码是否设置正确
[root@mars ~]# id lucy
[root@mars ~]# id harry
[root@mars ~]# id jams
[root@mars ~]# ssh lucy@192.168.122.101
[root@mars ~]# ssh harry@192.168.122.101
[root@mars ~]# ssh jams@192.168.122.101
五、配置cron作业
- 题目
用户 lucy 必须配置一个 cron 作业,该作业每隔 2 分钟(当地时间)运行且执行:/bin/echo hiya
- 答案
# 给lucy用户创建计划任务,并查看
[root@mars ~]# crontab -e -u lucy
[root@mars ~]# crontab -l -u lucy
*/2 * * * * /bin/echo hiya
# 检查crond服务是否开机自启动,查看是否有相关计划任务日志打印
[root@mars ~]# systemctl status crond
[root@mars ~]# cat /var/log/cron
[root@mars ~]# cat /var/log/messages
六、创建协作目录
- 题目
创建具有以下特征的协作目录/home/test
- /home/test 的组所有权是 admins
- 目录应当可被admins的成员读取、 写入和访问, 但任何其他用户不具这些权限。(当然,root 用户有权访问系统上的所有文件和目录)
- /home/test 中创建的文件自动将组所有权设置到 admins 组
- 答案
# 创建目录,更改目录属组,更改目录权限
[root@mars ~]# mkdir /home/test
[root@mars ~]# chgrp admins /home/test
[root@mars ~]# chmod 2770 /home/test
# 查看目录权限是否设置正确,进入目录创建文件,查看属组是否是题目要求的admins,删除测试文件
[root@mars ~]# ll -d /home/test
[root@mars ~]# cd /home/test/
[root@mars test]# mkdir a
[root@mars test]# touch 2
[root@mars test]# ll
[root@mars test]# rm -rf *
七、配置 NTP
- 题目
配置您的系统, 使其成为 classroom.example.com 的 NTP 客户端。
考试时提示:classroom.example.com 是 sidecar.lab.example.com 的 DNS 别名
我们这里使用NTP服务器 ntp.aliyun.com 做练习。
- 答案
# 编辑chronyd服务配置文件,添加一行配置如下
[root@mars test]# vim /etc/chrony.conf
[root@mars test]# cat /etc/chrony.conf
……
server ntp.aliyun.com iburst
……
# 重启服务
[root@mars test]# systemctl restart chronyd
# 检查服务是否开机自启动,时间是否同步成功
[root@mars test]# systemctl status chronyd
[root@mars test]# chronyc sources -v
八、配置 autofs
- 题目
配置 autofs 以按照如下所述自动挂载远程用户的主目录:
- classroom.example.com(192.168.122.100)NFS 导出 /rhome 到您的系统。此文件系统包含为用户 lily 预配置的主目录。
- lily 的主目录是 classroom.example.com:/rhome/lily 。
- lily 的主目录应自动挂载到本地 /rhome 下的 /rhome/lily 。
- 主目录必须可供其用户写入。
- lily 的密码是 redhat
- 答案
# 查看nfs导出到本机的卷
[root@mars ~]# showmount -e 192.168.122.100
# 创建符合题目要求的用户和目录(考试环境已创建则不用执行这一步)
[root@mars ~]# mkdir /rhome/lily
[root@mars ~]# useradd lily -d /rhome/lily
[root@mars ~]# echo redhat | passwd --stdin lily
# 下载autofs软件包并设置服务开机自启动
[root@mars ~]# yum -y install autofs
[root@mars ~]# systemctl enable --now autofs
#修改autofs相关配置文件,/etc/auto.master和/etc/auto.rhome各增加一行配置
[root@mars ~]# vim /etc/auto.master
[root@mars ~]# cat /etc/auto.master
……
/misc /etc/auto.misc
/rhome /etc/auto.rhome
……
[root@mars ~]# cp /etc/auto.misc /etc/auto.rhome
[root@mars ~]# vim /etc/auto.rhome
[root@mars ~]# cat /etc/auto.rhome
……
cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
lily -fstype=nfs,rw,sync :classroom.example.com:/rhome/lily
……
# 重启autofs服务
[root@mars ~]# systemctl restart autofs
# 进入/rhome/lily目录或者切换至lily用户触发autofs自动挂载功能,测试能否正常读写目录(正常情况下看不到lily目录,需触发挂载后才能看到)
[root@mars ~]# cd /rhome/lily
[root@mars lily]# df -h
[root@mars lily]# mkdir aaa
[root@mars lily]# su - lily
[lily@mars ~]# df -h
[lily@mars ~]# touch 111
九、配置/var/tmp/fstab权限
- 题目
将文件 /etc/fstab 复制到 /var/tmp/fstab,配置/var/tmp/fstab的权限以满足如下条件:
- 文件 /var/tmp/fstab 由 root 用户所有
- 文件 /var/tmp/fstab 属于组 root
- 文件 /var/tmp/fstab 应不能被任何人执行
- 用户 lucy 能够读取和写入 /var/tmp/fstab
- 用户 harry 无法写入或读取 /var/tmp/fstab
- 所有其他用户( 当前或未来)能够读取/var/tmp/fstab
- 答案
# 送分题
# 拷贝目录,自定义facl权限
[root@mars /]# cp /etc/fstab /var/tmp/fstab
[root@mars /]# setfacl -m u:lucy:rw- /var/tmp/fstab
[root@mars /]# setfacl -m u:harry:--- /var/tmp/fstab
# 查看目录权限是否满足题目要求
[root@mars /]# ll /var/tmp/fstab
[root@mars /]# getfacl /var/tmp/fstab
十、配置用户帐户
- 题目
配置用户 jacks , 用户ID为 3533。 此用户的密码应当为 redhat 。
- 答案
# 送分题,创建用户,修改密码
[root@mars ~]# useradd -u 3533 jacks
[root@mars ~]# echo redhat | passwd --stdin jacks
# 登陆测试
[root@mars ~]# ssh jacks@localhost
十一、查找文件
- 题目
查找用户 querys 所有的文件并将其副本放入 /root/findfiles 目录。
- 答案
# 送分题,考察find命令,要注意/root/findfiles目录是否存在,然后执行
[root@mars ~]# find / -user querys -type f -exec cp -a {} /root/findfiles \;
# 检查
[root@mars ~]# ll /root/findfiles
十二、查找字符串
- 题目
查找字符串
- 查找文件 /usr/share/doc/words/readme.txt 中包含字符串 crosswords 的所有行。
- 将所有这些行的副本按原始顺序放在文件 /root/list 中。
- /root/list 不得包含空行,且所有行必须是 /usr/share/doc/words/readme.txt 中原始行的确切副本
- 答案
# 送分题,考察grep命令,注意使用>不要使用>>,避免文件里面里面已经有其它内容
[root@mars ~]# grep crosswords /usr/share/doc/words/readme.txt > /root/list
# 检查
[root@mars ~]# cat /root/list
十三、创建存档
- 题目
- 创建一个名为 /root/backup.tar.gz 的 tar 存档, 其应包含 /usr/local 的内容。
- 该tar存档必须使用gzip进行压缩
- 答案
# 送分题,考察tar命令,注意gzip、bzip2、xz格式的压缩包分别使用什么选项
[root@mars ~]# tar -czvf /root/backup.tar.gz /usr/local
# 检查
[root@mars ~]# ll /root/
[root@mars ~]# file backup.tar.gz
在 venus.lab.example.com 上执行以下任务
十四、设置root密码
- 题目
将 venus 的 root 密码设置为 redhat 。 您需要获得系统访问权限才能进行此操作
- 答案
单用户模式修改密码
1、按e编辑grub菜单。
2、找到linux16开头这一行,把ro改为rw init=/sysroot/bin/bash,然后按ctrl+x启动。
3、输入chroot /sysroot,切换到原系统。
4、passwd 修改密码,或者直接修改 /etc/passwd配置文件,删除密码x,并:wq保存。
5、输入touch /.autorelabel(若selinux为disabled则不需要输入此条命令)。
6、输入exit,reboot,重新启动系统,此时重置密码完成,可用新密码登陆系统。
十五、配置您的系统以使用默认存储库
- 题目
yum 存储库以可以从
http://mirrors.aliyun.com/centos-vault/8.5.2111/BaseOS/$basearch/os/
和
http://mirrors.aliyun.com/centos-vault/8.5.2111/AppStream/$basearch/os/
使用。配置您的系统,以将这些位置用作默认存储库
- 答案
# 移动到yum仓库目录,查看是否已有其它仓库文件,若有先mv改名备份,然后根据题意创建yum仓库
[root@venus ~]# cd /etc/yum.repos.d/
[root@venus yum.repos.d]# ls
[root@venus yum.repos.d]# vim rhcsa.repo
[root@venus yum.repos.d]# cat rhcsa.repo
[BaseOS]
name=BaseOS
baseurl=http://mirrors.aliyun.com/centos-vault/8.5.2111/BaseOS/$basearch/os/
gpgcheck=0
enabled=1
[AppStream]
name=AppStream
baseurl=http://mirrors.aliyun.com/centos-vault/8.5.2111/AppStream/$basearch/os/
gpgcheck=0
enabled=1
# 要求清除缓存并重新生成缓存无报错,检查yum仓库列表能否正常拉取
[root@venus yum.repos.d]# yum clean all
[root@venus yum.repos.d]# yum makecache
[root@venus yum.repos.d]# yum repolist all
十六、调整逻辑卷大小
- 题目
将逻辑卷 lilylv 及其文件系统的大小调整到 230MiB。确保文件系统内容保持不变。
注:分区大小很少与请求的大小完全相同, 因此可以接受范围为 217MiB 到 243MiB 的大小。
- 答案
# 方式一,扩容逻辑卷的同时扩容文件系统
[root@venus ~]# lvextend -rL 230MiB /dev/lilyvg/lilylv
# 方式二,先扩容逻辑卷,再扩容文件系统,这种方式扩容文件系统时要注意,xfs用xfs_growfs扩容,ext4使用resize2fs扩容
[root@venus ~]# lvextend -L 230M /dev/lilyvg/lilylv
[root@venus ~]# xfs_growfs /dev/lilyvg/lilylv
[root@venus ~]# resize2fs /dev/lilyvg/lilylv
# 检查逻辑卷大小是否如题目要求
[root@venus ~]# df -h
[root@venus ~]# lsblk -f
[root@venus ~]# vgs
[root@venus ~]# lvs
十七、添加交换分区
- 题目
- 向您的系统添加一个额外的交换分区 756MiB
- 交换分区应在系统启动时自动挂载
- 不要删除或以任何方式改动系统上的任何现有交换分区
- 答案
# 创建一个新分区用于交换分区
[root@venus ~]# fdisk /dev/nvme0n3
Command (m for help): n
Select (default p):
Partition number (1-4, default 1):
First sector (2048-10485759, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-10485759, default 10485759): +756M
Command (m for help): w
# 查看分区是否创建成功
[root@venus ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n3 259:4 0 5G 0 disk
└─nvme0n3p1 259:7 0 756M 0 part
# 将分区格式化为swap文件系统
[root@venus ~]# mkswap /dev/nvme0n3p1
# 自动挂载需写入fstab文件,并激活所有交换分区
[root@venus ~]# echo "/dev/nvme0n3p1 swap swap defaults 0 0" >> /etc/fstab
[root@venus ~]# mount -a
[root@venus ~]# swapon -a
# 检查交换分区是否扩容成功
[root@venus ~]# swapon -s
[root@venus ~]# free -h
十八、创建逻辑卷
- 题目
根据如下要求,创建新的逻辑卷:
- 逻辑卷取名为qa,属于 qagroup 卷组,大小为60个扩展块
- qagroup 卷组中逻辑卷的扩展块大小应当为16MiB
- 使用ext3文件系统格式化新逻辑卷,该逻辑卷应在系统启动时自动挂载到 /mnt/qa 下
- 答案
# 创建一个新分区用于创建qagroup卷组
[root@venus ~]# fdisk /dev/nvme0n3
Command (m for help): n
Select (default p):
Partition number (2-4, default 2):
First sector (1550336-10485759, default 1550336):
Last sector, +sectors or +size{K,M,G,T,P} (1550336-10485759, default 10485759): +1G
Command (m for help): w
# 确认分区已创建完成
[root@venus ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n3 259:4 0 5G 0 disk
├─nvme0n3p2 259:6 0 1G 0 part
└─nvme0n3p1 259:7 0 756M 0 part [SWAP]
# 创建扩展块大小为16MiB的卷组qagroup
[root@venus ~]# vgcreate -s 16MiB qagroup /dev/nvme0n3p2
# 创建逻辑卷,大小为60个扩展块
[root@venus ~]# lvcreate -n qa -l 60 qagroup
# 格式化
[root@venus ~]# mkfs.ext3 /dev/qagroup/qa
# 创建挂载点,并将挂载信息写入fstab文件
[root@venus ~]# mkdir /mnt/qa
[root@venus ~]# echo "/dev/qagroup/qa /mnt/qa ext3 defaults 0 0" >> /etc/fstab
[root@venus ~]# mount -a
# 检查
[root@venus ~]# df -h
[root@venus ~]# vgdisplay qagroup
[root@venus ~]# lvs;vgs
十九、创建VDO卷
- 题目
根据如下要求,创建新的 VDO 卷:
- 使用未分区的磁盘
- 该卷的名称为 vdough
- 该卷的逻辑大小为 50G
- 该卷使用 xfs 文件系统格式化
- 该卷( 在系统启动时)挂载到 /vbread 下
- 答案
# 安装vdo服务,并设置开机自启动
[root@venus ~]# yum -y install vdo
[root@venus ~]# systemctl enable --now vdo
# 确认哪一块硬盘还未分区
[root@venus ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n4 259:5 0 5G 0 disk
# 小技巧,使用man查询vdo语法,然后复制粘贴照猫画虎照葫芦画瓢
# 创建vdo卷
[root@venus ~]# man vdo | grep create
# vdo create --name=vdo0 --device=/dev/sdb1 --vdoLogicalSize=10T
[root@venus ~]# vdo create --name=vdough --device=/dev/nvme0n4 --vdoLogicalSize=50G
# 格式化
[root@venus ~]# mkfs.xfs /dev/mapper/vdough
# 创建挂载点并将挂载信息写入fstab文件,使用小技巧查询语法复制粘贴
[root@venus ~]# mkdir /vbread
[root@venus ~]# man vdo | grep mapper
/dev/mapper/vdo0 /vdo xfs defaults,x-systemd.requires=vdo.service 0 0
VDO instance 1 volume is ready at /dev/mapper/vdo0
[root@venus ~]# echo "/dev/mapper/vdough /vbread xfs defaults,x-systemd.requires=vdo.service 0 0" >> /etc/fstab
[root@venus ~]# mount -a
# 检查vdo卷是否创建成功并挂载
[root@venus ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n4 259:5 0 5G 0 disk
└─vdough 253:4 0 50G 0 vdo /vbread
[root@venus ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vdough 50G 390M 50G 1% /vbread
二十、配置系统调优
- 题目
为您的系统选择建议的 tuned 配置集并将它设为默认设置
- 答案
# 建议的tuned配置
[root@venus ~]# tuned-adm recommend
# 现在活动的tuned配置
[root@venus ~]# tuned-adm active
# 修改默认的tuned配置为建议的tuned配置
[root@venus ~]# tuned-adm profile virtual-guest
在 mars.lab.example.com 上执行以下任务(以下为新增随机题目)
二十一、新增容器题目1
容器题目考试时必须先明确版本是否高于 1.6(存在版本坑会导致容器 0 分),若不高于 1.6,一定要先进行版本升级。
- 题目
使用容器
- 利用注册表服务器上的 httpd 镜像,创建名为 httpserver 的容器
- 将其配置为以 systemd 服务的形式运行,且仅面向现有用户 contsvc
- 该服务应命名为 container-httpserver ,此服务在系统重启后将自动启动
- 答案
容器题狗都不记哈
二十二、新增容器题目2
- 题目
容器数据卷挂载,通过以下方式扩展上一个任务
- 配置 systemd-journald 服务,要求永久保留日志数据
- 将 /var/log/journal 目录及任何子目录中的任何 *.journal 文件复制到 /home/contsvc/container_journal 中
- 容器服务启动时能自动将 /home/contsvc/container_journal 挂载到容器中的 /var/log/journal 上
- 可能存在已经配置的容器仓库模版它位于 /tmp/containers-services/registries.conf ,仓库地址 location = "f0pqsi2y.mirror.aliyuncs.com"
- 答案
容器题狗都不记哈哈
二十三、新增容器题目3
- 题目
小题型改动:
在容器上运行命令:logger -p local5.info "This is an RHCSA exam"时,容器上的 /var/log/journal/ 和容器主机上的 /home/contsvc/container_journal/ 中均应显示消息。
提示:操作有两种形式,一是进去容器里进行操作,二是直接使用容器执行命令的形式。
- 答案
容器题狗都不记哈哈哈
二十四、脚本考试题1
- 题目
- 在 /root 下新建名为 newsearch 的脚本,用于定位于 /usr 下的文件
- 脚本 newsearch 应定位到 /usr 下面所有大于 30K 且小于 50K 并有设置用户SUID特殊权限位的文件。
- 执行时,脚本 newsearch 应将查找到的文件列表保存到 /root/myoutput.txt 中
- 答案
# 创建脚本,添加执行权限,执行
[root@mars ~]# vim newsearch
[root@mars ~]# cat newsearch
#!/bin/bash
find /usr -type f -size +30k -a -size -50k -perm -4000 > /root/myoutput.txt
[root@mars ~]# chmod +x newsearch
[root@mars ~]# ./newsearch
# 检查输出结果是否正确
[root@mars ~]# cat myoutput.txt
二十五、脚本考试题2
- 题目
- 在 /usr/bin 目录下创建一个 repwis 脚本,查找 /usr/ 目录下小于 10M 并且组 ID不为 root 的文件;
- 将查找到的文件放在 /root/myoutput 文件夹内。
- 答案
# 创建脚本
[root@mars ~]# vim /usr/bin/repwis
[root@mars ~]# cat /usr/bin/repwis
#!/bin/bash
if [ ! -d /root/myoutput ];then
mkdir -p /root/myoutput
fi
find /usr/ -type f -size -10M -a -not -group root -exec cp -a {} /root/myoutput \;
# 脚本赋予执行权限,并执行
[root@mars ~]# chmod +x /usr/bin/repwis
[root@mars ~]# repwis
# 检查是否如题目要求将满足条件的文件拷贝到此目录中
[root@mars ~]# ll myoutput
二十六、新增sudo权限设置
- 题目
- 为用户 student 添加 sudo 权限,不需要密码
- 用户 devops 附属于 sudo 权限组
- 答案
# 编辑sudo配置文件,在如下位置添加一行关于student的配置
[root@mars ~]# visudo
[root@mars ~]# cat /etc/sudoers
……
root ALL=(ALL) ALL
student ALL=(ALL) NOPASSWD: ALL
……
# 修改devops附属组为sudo权限组
[root@mars ~]# usermod -G wheel devops
# 登陆student/devops用户,验证是否能执行高权限命令
[root@mars ~]# ssh student@localhost
[student@mars ~]$ sudo cat /etc/shadow
[student@mars ~]$ sudo passwd root
[root@mars ~]# ssh devops@localhost
[devops@mars ~]$ sudo cat /etc/shadow
[devops@mars ~]$ sudo passwd root
二十七、umask练习
- 题目
配置用户 devops 权限要求如下:
- 用户 devops 创建的所有文件的默认权限是 -rw-r-----
- 同一用户下创建所有文件目录权限为 drwxr-x---
- 答案
# 切换至devops用户
[root@mars ~]# ssh devops@localhost
# 修改前先创建一个文件和目录,以便修改后对比
[devops@mars ~]$ touch 1
[devops@mars ~]$ mkdir 2
# 修改配置文件,在.bashrc文件最后一行添加如下配置
[devops@mars ~]$ vim .bashrc
[devops@mars ~]$ cat .bashrc
……
umask 0027
# 修改后再创建一个文件和目录,和之前的对比验证是否符合题目要求
[devops@mars ~]$ touch 111
[devops@mars ~]$ mkdir 222
[devops@mars ~]$ ll
total 0
-rw-rw-r--. 1 devops devops 0 Jan 7 19:55 1
-rw-r-----. 1 devops devops 0 Jan 7 19:56 111
drwxrwxr-x. 2 devops devops 6 Jan 7 19:55 2
drwxr-x---. 2 devops devops 6 Jan 7 19:56 222
二十八、更改密码策略
- 题目
配置创建新用户的密码策略
- 创建新用户时,默认密码策略为20天后密码过期
- 答案
# 修改配置文件,将如下PASS_MAX_DAYS后面的值改为20,默认为99999,其它的不要动
[root@mars ~]# vim /etc/login.defs
[root@mars ~]# cat /etc/login.defs
……
PASS_MAX_DAYS 20
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
……
# 创建用户测试,shadow文件倒数第五个字段即为密码过期天数
[root@mars ~]# useradd test
[root@mars ~]# cat /etc/shadow
test:!!:19729:0:20:7:::
二十九、设置登陆信息
- 题目
配置用户 student 登录时,提示"welcome.."
- 答案
# 方式一:在.bashrc文件最后一行添加如下配置
[root@mars ~]# vim .bashrc
[root@mars ~]# cat .bashrc
……
echo "welcome IE砖家"
# 方式二:在.bash_profile文件最后一行添加如下配置
[root@mars ~]# vim .bash_profile
[root@mars ~]# cat .bash_profile
……
echo "welcome 工资30k的大佬"
# 退出重新登陆验证,或者直接source重新加载一下配置文件
Last login: Sun Jan 7 17:21:50 2024 from 192.168.122.1
welcome IE砖家
welcome 工资30k的大佬
[root@mars ~]# source .bashrc
welcome IE砖家
[root@mars ~]# source .bash_profile
welcome IE砖家
welcome 工资30k的大佬
三十、新增脚本题
- 题目
创建一个名ex200的应用,student 用户执行应用时,就会输出一句话(练习时随便写一句吧,考试时题目有指定的)
- 答案
# 切换到student用户,在$PATH变量中的任意路径中创建如下脚本
[root@mars ~]# su - student
[student@mars ~]$ echo $PATH
/home/student/.local/bin:/home/student/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
[student@mars ~]$ mkdir -p ~/bin/
[student@mars ~]$ vim ~/bin/ex200
[student@mars ~]$ cat ~/bin/ex200
#!/bin/bash
echo "不想学习了好累啊,想躺平呜呜呜"
# 赋予执行权限,并执行,输出想要的结果
[student@mars ~]$ chmod +x ~/bin/ex200
[student@mars ~]$ ex200
不想学习了好累啊,想躺平呜呜呜
简单总结一下
涉及服务的都要确保服务开机自启动,只要安装了某项服务第一件事就是设置开机自启动 systemctl enable --now <服务>,开机服务没启动直接0分
不管中级、高级,防火墙firewalld默认都是开启的,selinux默认为enforcing模式,且不能关闭,需要注意有些题目要不要配置防火墙放行或者selinux放行
创建用户就要设置密码,创完用户都先ssh登陆一遍,确认密码设置的没有问题
难一点的就配置http82端口,配置autofs,创建vdo卷三道题,其它的基本都是送分题,容器3道我全都没看直接没做最后考了273分,当时是因为工作比较忙没时间研究了,有时间的还是都准备下吧,争取拿个满分
最后做完多重启两遍机器检查下
最重要的就是多敲几遍题目,对题目一定要有印象