[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:
- Reboot the system.
- Interrupt the boot-loader countdown by pressing any key, except Enter.
- Move the cursor to the rescue kernel entry to boot (the one with the word rescue in its name).
- Press e to edit the selected entry.
- Move the cursor to the kernel command line (the line that starts with linux).
- Append
rd.break
. With that option, the system breaks just before the system hands control from the initramfs to the actual system.- Press Ctrl+x to boot with the changes.
- 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