RHCSA9练习题

Posted by Geuni's Blog on September 19, 2024

[Node1]

1、设置网络

配置⽹络设置 将 node1 配置为具有以下⽹络配置:

  • 主机名: node1.domain250.example.com
  • IP 地址: 172.25.250.100
  • ⼦⽹掩码: 255.255.255.0
  • ⽹关: 172.25.250.254
  • DNS服务器: 172.25.250.254
1
2
3
4
5
6
7
8
9
10
11
12
13
# hostname변경 
hostnamectl set-hostname node1.domain250.example.com 

# connection정보 조회
nmcli con show
# 기존설정 조회를 통하여 옵션명 확인가능
nmcli con show 'Wired connection 1' |grep -E 'ipv4|autoconn'
# ipv4설정
nmcli con modify 'Wired connection 1' autoconnect yes ipv4.method manual ipv4.addresses 172.25.250.100/24 ipv4.gateway 172.25.250.254 ipv4.dns 172.25.250.254
# connection active (이미 up된 상태에서는 재구동 역할을 하게됨)
nmcli con up 'Wired connection 1'
# 변경여부 확인 
ip a

2、配置您的系统以使⽤默认存储库

YUM 存储库已可以从 http://content/rhel9.0/x86_64/dvd/BaseOS 和 http://content/rhel9.0/x86_64/dvd/Appstream 使用配置您的系统,以将这些位置用作默认存储库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
vim /etc/yum.repos.d/rhel.repo

[BaseOS]
name = BaseOS
baseurl = http://content/rhel9.0/x86_64/dvd/BaseOS
enabled = 1
gpgcheck = 0

[Appstream]
name = Appstream
baseurl = http://content/rhel9.0/x86_64/dvd/Appstream
enabled = 1
gpgcheck = 0

# 检查
dnf repolist -v

或可以用dnf config-manager ,当使用dnf config-manager需手动给生成的repo文件添加gpgcheck = 0

1
2
dnf config-manager --add-repo 'http://content/rhel9.0/x86_64/dvd/BaseOS'
dnf config-manager --add-repo 'http://content/rhel9.0/x86_64/dvd/Appstream'

3. 调试SELinux

非标准端口 82 上运行的 Web 服务器在提供内容时遇到问题。根据需要调试并解决问题,使其满足以下条件:

  • 系统上的 Web 服务器能够提供 /var/www/htm1 中所有现有的 HTML 文件(注:不要删除或以其他方式改动现有的文件内容)
  • Web 服务器在端口 82 上提供此内容
  • Web 服务器在系统启动时 自动启动
1
2
3
4
5
6
7
8
9
10
11
12
13
14
systemctl status httpd
ll -Z /var/www/html/

semanage fcontext -m -t httpd_sys_content_t /var/www/html/file1
restorecon -Rv /var/www/html

semanage port -a -t http_port_t -p tcp 82

firewall-cmd --permanent --add-port=82/tcp
firewall-cmd --permanent --add-service=http
firewall-cmd --reload


systemctl enable --now httpd

4. 创建⽤⼾帐⼾

创建下列用户、组和组成员资格:

  • 名为 sysmgrs 的组
  • 用户 natasha ,作为次要组从属于 sysmgrs
  • 用户 harry ,作为次要组还从属于 sysmgrs
  • 用户 sarah ,无权访问系统上的 交互式 shell 且不是 sysmgrs 的成员
  • natasha, harry 和 sarah 的密码应当都是 flectrag
1
2
3
4
5
6
7
groupadd sysmgrs
useradd -G sysmgrs natasha
useradd -G sysmgrs harry
useradd -s /usr/sbin/nologin sarah
echo flectrag | passwd natasha --stdin
echo flectrag | passwd harry --stdin
echo flectrag | passwd sarah의 --stdin

5. 配置cron作业

配置 cron 作业,以用户 harry 身份每天14:23 分执行 /usr/bin/echo hello

1
2
3
4
5
6
systemctl status crond
systemctl enable --now crond
crontab -u harry -e
23 14 * * * /usr/bin/echo hello
# 检查
crontab -u harry -l

6. 创建协作⽬录

创建具有以下特征的协作目录 /home/managers

  • /home/managers 的组用权是 sysmgrs
  • 目录应当可被 sysmgrs 的成员读取、写入和访问,但任何其他用户不具这些权限。(当然,root 用户有权访问系统上的所有文件和目录)
  • /home/managers 中创建的文件自动将组所有权设置到 sysmgrs 组

Setting Special Permissions

  • Symbolic : setuid = u+s; setgid = g+s; sticky = o+t
  • Octal : In the added fourth preceding digit; setuid = 4; setgid = 2; sticky = 1
1
2
3
4
5
6
7
mkdir /home/managers
chown :sysmgrs /home/managers/

chmod 2770 /home/managers/
# 或 
chmod 770 /home/managers/
chmod g+s /home/managers/

7. 配置 NTP

配置您的系统,使其成为 materials.example.com 的 NTP 客户端。(注: materials.example.com 是 classroom.example.com 的 DNS 别名)

1
2
3
4
5
6
7
8
9
10
systemctl status chronyd
systemctl enable --now chronyd
vim /etc/chrony.conf
# 添加
server materials.example.com iburst
# 重启服务
systemctl restart chronyd
# 检查
chronyc sources

8. 配置 autofs

配置 autofs ,以按照如下所述自动挂载远程用户的主目录:

  • materials.example.com ( 172.25.254.254 ) NFS 导出 /rhome 到您的系统。此文件系统包含为
  • 用户 remoteuser1 预配置的主目录
  • remoteuser1 的主目录是 materials.example.com:/rhome/remoteuser1
  • remoteuser1 的主目录应自动挂载到本地 /rhome 下的 /rhome/remoteuser1
  • 主目录必须可供其用户 写入
  • remoteuser1 的密码是 flectrag
1
2
3
4
5
6
7
8
9
10
dnf -y install autofs
systemctl enable --now autofs

vim /etc/auto.master
/rhome /etc/auto.rhome

vim /etc/auto.rhome
/remoteuser1 -rw materials.example.com:/rhome/remoteuser1

systemctl restart autofs

9. 配置⽤⼾帐⼾

配置用户 manalo ,其用户 ID 为 3533 。此用户的密码应当为 flectrag 。

1
2
useradd -u 3533 manalo
echo flectrag | passwd manalo --stdin

10. 查找⽂件 (find)

查找当 jacques 所有的所有文件并将其副本放入 /root/findfiles 目录

1
2
mkdir /root/findfiles
find / -user jacques -exec cp -a {} /root/findfiles \;

11. 查找字符串 (grep)

查找文件 /usr/share/xml/iso-codes/iso_639_3.xml 中包含字符串 ng 的所有行。将所有这些行的副本按原始顺序放在文件 /root/list 中。 /root/list 不得包含空行,且所有行必须是/usr/share/xml/iso-codes/iso_639_3.xml 中原始行的确切副本。

1
grep ng /usr/share/xml/iso-codes/iso_639_3.xml > /root/list

12. 创建存档

创建一个名为 /root/backup.tar.bz2 的tar 存档,其应包含 /usr/local 的 tar 存档,其应包含/usr/loca1 的内容。该 tar 存档必须使用`gzip2 进行压缩。

1
2
3
4
5
tar -cvjf /root/backup.tart.bz2 /usr/local

# 检查
tar -tf /root/backup.tar.bz2

13.创建⼀个容器镜像

wallah 用户,下载 http://classroom/Containerfile 不要修改这个文件内容,构建镜像名为 pdf

1
2
3
4
5
dnf -y install container-tools
ssh wallah@node1
wget http://classroom/Containerfile
podman login -u admin -p redhat321 registry.lab.example.com
podman build -t pdf .

14. 将容器配置为服务

wallah 用户,配置一个systemd 服务

  • 容器名称为 ascii2pdf
  • 使用刚创建的镜像 pdf
  • 该服务命名为 container-ascii2pdf,并在系统重启时自动启动,无需干预将服务配置为在启动时自动将/opt/file 挂载到容器中的 /dir1下;/opt/progress 挂载到容器中的 /dir2 下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 创建目录及修改所有者
sudo mkdir /opt/{file,progress}
sudo chown wallah:wallah /opt/{file,progress}
podman run -d --name ascii2pdf -v /opt/file:/dir1:Z -v /opt/progress:/dir2:Z pdf

# 创建systemd unit文件,并移动到指定目录
podman generate systemd -n ascii2pdf -f --new
mkdir -p .config/systemd/user
mv ~/container-ascii2pdf.service ~/.config/systemd/user/

# 服务启动及激活
systemctl --user daemon-reload
systemctl enable --now --user container-ascii2pdf

loginctl enable-linger
loginctl show-user wallah

# 检查 
exit
reboot
ssh wallah@node1
podman ps

15. 添加sudo免密操作

允许 sysmgrs 组成员sudo时不需要密码

1
2
3
4
5
6
7
8
9
echo '%sysmgrs ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/sysmgrs-group
# 或 
visudo
# 添加
%sysmgrs ALL=(ALL) NOPASSWD: ALL

# 检查
su - natasha
sudo cat /etc/shadow

[Node2]

16. 设置root密码 (rd.break,init=/bin/bash)

将 node2 的 root 密码设置为 flectrag您需要获得系统访问权限才能进行此操作。

有两种解决方案,一种是官方教材介绍的rd.break方式, 另一种是init=/bin/bash方式
网上有消息说有些考试环境不能用rd.break,RH134教材内容只有rd.break方式的介绍,应该不会有这问题
保险起见两种方式最好都熟悉一下

原教材内容:

To access that root shell, follow these steps:

  1. Reboot the system.
  2. Interrupt the boot-loader countdown by pressing any key, except Enter.
  3. Move the cursor to the rescue kernel entry to boot (the one with the word rescue in its name).
  4. Press e to edit the selected entry.
  5. Move the cursor to the kernel command line (the line that starts with linux).
  6. Append rd.break. With that option, the system breaks just before the system hands control from the initramfs to the actual system.
  7. Press Ctrl+x to boot with the changes.
  8. Press Enter to perform maintenance when prompted.

rd.break 方式 :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# grub菜单 -> 按e
# grub menu -> 选择rescue kernel -> 按e, 如果列表中看不到带rescue单词的行,选择默认的就行
# linux结尾的行尾追加rd.break 
rd.break
# ctrl + x

mount -o remount,rw /sysroot
chroot /sysroot
echo flectrag |passwd root --stdin
# relabel
touch /.autorelabel
# exit chroot
exit
# exit initramfs
exit

init=/bin/bash 方式 :

1
2
3
4
5
6
7
8
9
10
11
# grub菜单 -> 按e
# linux结尾的行尾追加init=/bin.bash
init=/bin.bash
# ctrl + x

mount -o remount,rw /
echo flectrag |passwd root --stdin
# relabel
touch /.autorelabel
# 重启
exec /sbin/init 

17. 配置您的系统以使⽤默认存储库

YUM 存储库已可以从 http://content/rhel9.0/x86_64/dvd/BaseOS 和 http://content/rhel9.0/x86_64/dvd/Appstream 使用配置您的系统,以将这些位置用作默认存储库

参考Node1 第2题, 可以用scp命令直接拿过来

18. 调整逻辑卷⼤⼩

将逻辑卷 vo 及其文件系统的大小调整到 230 MiB。确保文件系统内容保持不变。注:分区大小很少与请求的大小完全相同,因此可以接受范围为 213 MiB 到 243 MiB 的大小。

1
2
3
4
# List all logical volumes in all volume groups
lvscan
lvextend -L 230M /dev/myvol/vo
resize2fs /dev/myvol/vo

19. 添加交换分区

向您的系统添加一个额外的交换分区 512MiB 。交换分区应在系统 启动时自动挂载。不要删除或以任何方式改动系统上的任何现有交换分区。

1
2
3
4
5
6
7
8
9
10
11
# fdisk,parted哪个方便用哪个
# RH134教材可以看出, Redhat推的还是parted工具,最好熟悉一下parted命令
parted /dev/vdb unit mib print
parted /dev/vdb mkpart my-swap linux-swap 722MiB 1234MiB
parted /dev/vdb print
mkswap /dev/vdb3
vim /etc/fstab
/dev/vdb3 swap swap defaults 0 0
systemctl daemon-reload
swapon -a 
swapon --show

20. 创建逻辑卷

根据如下要求,创建新的逻辑卷

  • 逻辑卷取名为 qa ,属于 qagroup 卷组,大小为 60 个扩展块
  • qagroup 卷组中逻辑卷的扩展块大小应当为 16 MiB
  • 使用 ext3 文件系统格式化新逻辑卷。该逻辑卷应在系统启动时自动挂载到 /mnt/qa 下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 60PEs x 16MiB = 960MiB , PV应大于960M (多分配一些)

# 确认start position
parted /dev/vdb unit mib print
# 创建分区
parted /dev/vdb mkpart primary 1235mib 2500mib
# 创建PV
pvcreate /dev/vdb4
# 创建VG及设置扩展块大小
vgcreate qagroup -s 16M /dev/vdb4
# 创建逻辑卷及大小设置
lvcreate -n qa -l 60 qagroup
# 格式化
mkfs.vfat /dev/qagroup/qa
mkdir /mnt/qa

vim /etc/fstab
/dev/qagroup/qa /mnt/qa vfat defaults 0 0 

systemctl daemon-reload
mount /mnt/qa

# 检查
mount |grep /mnt/qa

21. 配置系统调优

tuned 配置集并将它设为默认设置。为您的系统选择建议的

1
2
3
4
5
6
7
8
9
10
11
dnf install -y tuned
systemctl enable --now tuned
# 查看当前活动配置
tuned-adm active
# 查看系统推荐配置
tuned-adm recommend
# 设置为推荐配置
tuned-adm profile virtual-guest
# 检查
tuned-adm active