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.1 nodel 1 配置网络 [root@clear ~]# nmcli connection modify Wired\ connection\ 1 ipv4.method manual ipv4.addresses 172.25.250.100/24 ipv4.gateway 172.25.250.254 ipv4.dns 172.25.250.254 connection.autoconnect yes # ipv4.method manual #指定是静态配置 # Wired\ connection\ 1 #默认网络连接名称,针对它进行配置 # connection.autoconnect #自动连接 1.2 nmtui(图形界面配置ip,网关,dns) 2.重启网络 [root@clear ~]# nmcli connection down Wired\ connection\ 1 [root@clear ~]# nmcli connection up Wired\ connection\ 1 3.查看ip [root@node1 ~]# ip a 4.查看网关: [root@node1 ~]# ip route default via 172.25.250.254 dev eth0 proto static metric 100 172.25.250.0/24 dev eth0 proto kernel scope link src 172.25.250.100 metric 100 [root@clear ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 172.25.250.254 0.0.0.0 UG 100 0 0 eth0 172.25.250.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0 172.25.250.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0 5.查看DNS服务器 [root@node1 ~]# cat /etc/resolv.conf # Generated by NetworkManager search domain250.example.com nameserver 172.25.250.254 #查看DNS服务器 [root@clear ~]# dig | grep SERVER ;; SERVER: 172.25.250.254#53(172.25.250.254) 6.Terminal永久设置主机名 [root@clear ~]# hostnamectl set-hostname node1.domain250.example.com 7.刷新主机名 [root@clear ~]# bash [root@clear ~]# su -l 8.查看主机名 [root@node1 ~]# hostname [root@node1 ~]# cat /etc/hostname node1.domain250.example.com
2.配置您的系统以使用默认存储库
配置您 的系统以使用默认存储库 YUM 存储库已可以从 http://foundation0.ilt.example.com/dvd/BaseOS 和 http://foundation0.ilt.example.com/dvd/AppStream 使用配置您的系统,以将这些位置用作默认存储库
1.安装yum-config-manager安装包 [root@clear ~]# rpm -ivh http://foundation0.ilt.example.com/dvd/BaseOS/Packages/yum-utils-4.0.12-3.el8.noarch.rpm 2. 仓库文件下载安装 # yum-config-manager #仓库文件下载安装命令 # yum-config-manager -h #列出可用命令( --add-repo ) [root@clear ~]# yum-config-manager --add-repo http://foundation0.ilt.example.com/dvd/BaseOS Adding repo from: http://foundation0.ilt.example.com/dvd/BaseOS [root@clear ~]# yum-config-manager --add-repo http://foundation0.ilt.example.com/dvd/AppStream Adding repo from: http://foundation0.ilt.example.com/dvd/AppStream 3.查看是否安装成功 [root@clear ~]# cd /etc/yum.repos.d/ [root@clear yum.repos.d]# ls foundation0.ilt.example.com_dvd_AppStream.repo foundation0.ilt.example.com_dvd_BaseOS.repo [root@clear yum.repos.d]# 4.导入秘钥 [root@node1 ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 4.1.搜索效验文件 [root@clear yum.repos.d]# find / -name *KEY* /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release /usr/share/doc/gnupg2/KEYSERVER 添加效验文件 [root@clear yum.repos.d]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 5.测试 [root@clear yum.repos.d]# yum install -y ftp Complete!
3.调试 SELinux(服务)
非标准端口 82 上运行的 Web 服务器在提供内容时遇到问题。根据需要调试并解决问题,使其满足以下条件: 系统上的 Web 服务器能够提供 /var/www/html 中所有现有的 HTML 文件(注:不要删除或以其他方式改动现有的文件内容) Web 服务器在端口 82 上提供此内容 Web 服务器在系统启动时自动启动
#semanage命令是用来查询与修改SELinux默认目录的安全上下文 #apache属于http服务 1.查看httpd服务状态 [root@node1 ~]# systemctl status httpd Active: failed (Result: exit-code) 2.查看HTML文件的安全上下文 # ls -Z 打印文件的安全上下文 [root@node1 html]# ls -Z /var/www/html/* system_u:object_r:default_t:s0 /var/www/html/file1 system_u:object_r:httpd_sys_content_t:s0 /var/www/html/file2 system_u:object_r:httpd_sys_content_t:s0 /var/www/html/file3 3.修改原来的/var/www/html/file1文件的安全上下文 man semange fcontext -a 换成 -m(modify) [root@node1 html]# semanage fcontext -m -t httpd_sys_content_t "/var/www/html/file1" 4.刷新安全上下文 man semange fcontext [root@node1 html]# restorecon -R -v /var/www/html/file1 Relabeled /var/www/html/file1 from system_u:object_r:default_t:s0 to system_u:object_r:httpd_sys_content_t:s0 5.用semanage,放行82端口 man semanage port [root@node1 ~]# semanage port -a -t http_port_t -p tcp 82 6.检查是否放行82端口 man semanage port [root@node1 ~]# semanage port -l | grep http http_port_t tcp 82, 80, 81, 443, 488, 8008, 8009, 8443, 9000 7.重启httpd服务,设置开机自启,检查服务是否开启 [root@node1 ~]# systemctl restart httpd [root@node1 ~]# systemctl enable httpd [root@node1 ~]# systemctl status httpd 8.访问验证 [root@node1 html]# curl http://172.25.250.100:82/file{1..3} EX200 Testing EX200 Testing EX200 Testing 或者 [root@node1 ~]# curl localhost:82/file{1..3} EX200 Testing EX200 Testing EX200 Testing
4.创建用户帐户
创建用户帐户 创建下列用户、组和组成员资格: 名为 sysmgrs 的组 用户 natasha ,作为次要组从属于 sysmgrs 用户 harry ,作为次要组还从属于 sysmgrs 用户 sarah ,无权访问系统上的交互式 shell 且不是 sysmgrs 的成员 natasha 、 harry 和 sarah 的密码应当都是 flectrag
[root@clear ~]# groupadd sysmgrs [root@clear ~]# useradd natasha -G sysmgrs [root@clear ~]# useradd harry -G sysmgrs [root@clear ~]# useradd sarah --shell /sbin/nologin [root@clear ~]# echo "flectrag" | passwd --stdin natasha Changing password for user natasha. passwd: all authentication tokens updated successfully. [root@clear ~]# echo "flectrag" | passwd --stdin harry Changing password for user harry. passwd: all authentication tokens updated successfully. [root@clear ~]# echo "flectrag" | passwd --stdin sarah Changing password for user sarah. passwd: all authentication tokens updated successfully. 测试登录 [root@node1 ~]# ssh natasha@localhost [harry@node1 ~]$ ssh sarah@localhost [harry@node1 ~]$ ssh sarah@localhost #不可登录 /sbin/nologin
5.配置 cron 作业(服务)
配置 cron 作业 配置 cron 作业,该作业每隔 2 分钟运行并执行以下命令: logger "EX200 in progress",以用户 natasha 身份运行
1.查看并验证服务是否启动 [root@node1 ~]# systemctl status crond.service Active: active (running) 2.编辑计划任务 [root@node1 ~]# crontab -u natasha -e [root@node1 ~]# crontab -u natasha -l */2 * * * * logger "EX200 in progress" 3.设置开机自启 [root@node1 ~]# systemctl enable crond.service 4.验证 #2分钟后验证 [root@node1 ~]# grep EX200 /var/log/messages May 23 11:36:01 node1 natasha[28082]: EX200 in progress May 23 11:38:02 node1 natasha[28086]: EX200 in progress May 23 11:40:01 node1 natasha[28097]: EX200 in progress
6.创建协作目录
创建具有以下特征的协作目录 /home/managers : /home/managers 的组用权是 sysmgrs 目录应当可被 sysmgrs 的成员读取、写入和访问,但任何其他用户不具这些权限。(当然,root 用户有权访问系统上的所有文件和目录) /home/managers 中创建的文件自动将组所有权设置到 sysmgrs 组
检查目录是否存在 [root@node1 ~]# ll -d /home/managers 1.创建指定的目录文件 [root@node1 ~]# mkdir /home/managers 2.修改/home/managers 的组用权为 sysmgrs [root@node1 ~]# ll -d /home/managers/ drwxr-xr-x. 2 root root 6 May 14 18:16 /home/managers/ [root@node1 ~]# chown root:sysmgrs /home/managers/ [root@node1 ~]# ll -d /home/managers/ drwxr-xr-x. 2 root sysmgrs 6 May 14 18:16 /home/managers/ 3.修改目录文件,所属组的权限 [root@node1 ~]# chmod 070 /home/managers/ [root@node1 ~]# chmod g=rwx,o=- /home/managers [root@node1 ~]# ll -d /home/managers/ d---rwx---. 2 root sysmgrs 6 May 14 18:16 /home/managers/ 4.给/home/managers目录设置特殊权限,使其子目录继承父目录的所属组 [root@node1 ~]# chmod g+s /home/managers/ [root@node1 ~]# ll -d /home/managers/ d---rws---. 2 root sysmgrs 6 May 14 18:16 /home/managers/ 5.验证g+s权限效果 [root@node1 managers]# touch file [root@node1 managers]# ll total 0 -rw-r--r--. 1 root sysmgrs 0 May 14 18:27 file
7.配置 NTP(时间同步服务)(服务)
配置 NTP 配置您的系统,使其成为 materials.example.com 的 NTP 客户端。(注:materials.example.com 是 classroom.example.com 的 DNS 别名)
# systemctl list-units 列出所有启动unit # Unit 是 Systemd 管理系统资源的基本单位 # 客服端 向 服务器 同步 # nodel是客户端 materials.example.com 的 NTP 是 服务器 1.查看NTP服务主配置文件名称 [root@node1 ~]# systemctl list-units | grep NTP chronyd.service loaded active running NTP client/server 2.确认服务是否启动 [root@node1 ~]# systemctl status chronyd.service Active: active (running) 3.修改服务配置文件,指定要添加的上游服务器地址 [root@node1 ~]# vim /etc/chrony.conf #server _gateway iburst server materials.example.com iburst 4.重启服务,让配置文件的修改生效,并设置开机自启 [root@node1 ~]# systemctl restart chronyd.service [root@node1 ~]# systemctl enable chronyd.service 5.验证 方法一: [root@node1 ~]# chronyc sources -v #查看同步时间状态 ^* classroom.example.com 方法一: [root@node1 ~]# timedatectl #查看NTP是否活跃,系统时钟是否同步 System clock synchronized: yes NTP service: active
8.配置 autofs(服务)
配置 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.查找主配置文件 [root@node1 ~]# rpm -qc autofs /etc/auto.master # 绝对路径配置文件 /etc/auto.misc # 相对路径配置文件 2.配置主配置文件 [root@node1 ~]# vim /etc/auto.master /misc /etc/auto.misc /rhome /etc/auto.rhome #相对路径配置文件 3.将相对路径配置文件复制到,主配置文件所编写的路径中 [root@node1 ~]# cp /etc/auto.misc /etc/auto.rhome 4.编辑相对路径配置文件 [root@node1 ~]# vim /etc/auto.rhome remoteuser1 -rw materials.example.com:/rhome/remoteuser1 5. 重启服务 [root@node1 ~]# systemctl restart autofs.service 查看状态 [root@node1 ~]# systemctl status autofs.service Active: active (running) 设置开机自启 [root@node1 ~]# systemctl enable autofs.service Created symlink /etc/systemd/system/multi-user.target.wants/autofs.service → /usr/lib/systemd/system/autofs.service. 6.登录测试 [root@node1 ~]# ssh remoteuser1@localhost [remoteuser1@clear ~]$ pwd /rhome/remoteuser1 检查写入权限 [remoteuser1@node1 ~]$ touch 1.txt [remoteuser1@node1 ~]$ ll total 0 -rw-rw-r--. 1 devops devops 0 May 27 12:04 1.txt
9.配置 /var/tmp/fstab 权限
配置 /var/tmp/fstab 权限 将文件 /etc/fstab 复制到 /var/tmp/fstab 。配置 /var/tmp/fstab 的权限以满足如下条件: 文件 /var/tmp/fstab 自 root 用户所有 文件 /var/tmp/fstab 属于组 root 文件 /var/tmp/fstab 应不能被任何人执行 用户 natasha 能够读取和写入 /var/tmp/fstab 用户 harry 无法写入或读取 /var/tmp/fstab 所有其他用户(当前或未来)能够读取 /var/tmp/fstab
1.文件复制 [root@node1 ~]# cp /etc/fstab /var/tmp/fstab 2.检查拥有人,拥有组,是否符合题意,且无执行权限 [root@node1 ~]# ll -d /var/tmp/fstab -rw-r--r--. 1 root root 534 May 23 12:27 /var/tmp/fstab 3.设置setfacl权限 man setfacl [root@node1 ~]# setfacl -m u:natasha:rw-,u:harry:- /var/tmp/fstab 4.验证 [root@node1 ~]# getfacl /var/tmp/fstab user:natasha:rw- user:harry:---
10.配置用户帐户
配置用户帐号 配置用户 manalo ,其用户 ID 为 3533。此用户的密码应当为 flectrag。
[root@clear ~]# useradd -u 3533 manalo [root@clear ~]# echo "flectrag" | passwd --stdin manalo Changing password for user manalo. passwd: all authentication tokens updated successfully.
11.查找文件
查找文件 查找归 jacques 所有的所有文件并将其副本放入 /root/findfiles 目录
1.创建目录 [root@clear ~]# mkdir /root/findfiles 2.查找 [root@clear ~]# find / -user jacques -exec cp -a {} /root/findfiles/ \; 3.验证 [root@clear ~]# ls /root/findfiles/ gamelan jacques libWedgeit.so.1.2.3
12. 查找字符串
查找字符串 查找文件 /usr/share/xml/iso-codes/iso_639_3.xml 中包含字符串 ng 的所有行。将所有这些行的副本按原始顺序放在文件 /root/list 中。 /root/list 不得包含空行,且所有行必须是 /usr/share/xml/iso-codes/iso_639_3.xml 中原始行的确切副本。
1.查找字符串 [root@node1 ~]# grep ng /usr/share/xml/iso-codes/iso_639_3.xml | grep -v ^$ > /root/list 2.验证 [root@node1 ~]# cat -n /root/list
13.创建存档
创建存档 创建一个名为 /root/backup.tar.gz 的 tar 存档,其应包含 /usr/local 的 tar 存档,其应包含 /usr/local 的内容。该 tar 存档必须使用 gzip 进行压缩。
1.打包 [root@clear ~]# tar -czvf /root/backup.tar.gz /usr/local 2.验证 [root@clear ~]# ls anaconda-ks.cfg findfiles backup.tar.gz original-ks.cfg 3.验证是否是gzip [root@clear ~]# file backup.tar.gz backup.tar.gz: gzip compressed data, last modified: Sun May 22 17:10:03 2022, from Unix, original size 51200
14.配置容器使其自动启动(A卷)(后做)
配置容器使其自动启动(A卷) 利用注册服务器上的 rsyslog 镜像,创建一个名为 logserver 的容器 面向 wallah 用户,配置一个 systemd 服务 该服务命名为 container-logserver ,并在系统重启时自动启动,无需干预
15.为容器配置持久存储(A卷)(先做)(服务)
为容器配置持久存储(A卷) 通过以下方式扩展上一个任务的服务 配置主机系统的 journald 日志以在系统重启后保留数据,并重新启动日志记录服务 将主机 /var/log/journal目录下任何以 *.journal 的文件复制到 /home/wallah/container_logfile 中 将服务配置为在启动时自动将 /home/wallah/container_logfile 挂载到容器中的 /var/log/journal 下
1. 查看journald服务 [root@node1 ~]# systemctl list-unit-files | grep jou systemd-journald.service static 2.查看服务状态 [root@node1 ~]# systemctl status systemd-journald.service Active: active (running) 3.查找主配置文件 man systemd-journald.service /conf /etc/systemd/journald.conf 或者 man journald.conf /etc/systemd/journald.conf 4.编辑主配置文件,做永久储存 [root@node1 ~]# vim /etc/systemd/journald.conf 14 [Journal] 15 Storage=auto 5.查看临时目录 [root@node1 ~]# ls -ld /run/log/journal/ drwxr-sr-x. 4 root systemd-journal 80 May 24 16:51 /run/log/journal/ 6. 检查 /var/log/journal目录是否存在 [root@node1 ~]# ls /var/log/journal ls: cannot access '/var/log/journal': No such file or directory 不存在则,创建目录 [root@node1 ~]# mkdir /var/log/journal 查看日志文件权限,将 /var/log/journal文件权限及所属关系与其同步 [root@node1 ~]# ls -ld /run/log/journal/ drwxr-sr-x. 4 root systemd-journal 80 May 24 16:51 /run/log/journal/ [root@node1 ~]# ls -ld /var/log/journal/ drwxr-xr-x. 2 root root 6 May 24 18:41 /var/log/journal/ 更改 /var/log/journal文件权限及所属关系与原日志文件同步 [root@node1 ~]# chmod 2755 /var/log/journal 或者 [root@node1 ~]# chmod g+s /var/log/journal [root@node1 ~]# chown root:systemd-journal /var/log/journal 7.检查/var/log/journal目录,权限、所属关系,是否与日志文件相同 [root@node1 ~]# ls -ld /var/log/journal/ drwxr-sr-x. 3 root systemd-journal 46 May 24 18:58 /var/log/journal/ 8.检查systemd-journald.service 服务状态、设置开机自启 [root@node1 ~]# systemctl status systemd-journald [root@node1 ~]# systemctl restart systemd-journald [root@node1 ~]# systemctl enable systemd-journald 检查是否是错误信息 [root@node1 ~]# echo $? 0 # 0 表示不是错误信息 9.将主机 /var/log/journal目录下任何以 *.journal 的文件复制到 /home/wallah/container_logfile 中 检查 /home/wallah/container_logfile目录是否存在 [root@node1 ~]# ls /home/wallah/container_logfile [root@node1 ~]# cp /var/log/journal/*/*.journal /home/wallah/container_logfile 不带权限 或者 [root@node1 ~]# cp -a /var/log/journal/*/*.journal /home/wallah/container_logfile 带权限 10.将home(家目录)的权限改为自己的权限 # chown -R 递归处理所有的文件及子目录 [root@node1 ~]# chown -R wallah ~wallah/ 11.切换至普通用户,普通用户做容器 # dorker容器 root用户运行 # podman容器 普通用户运行 [root@node1 ~]# ssh wallah@localhost 12.登录到容器 [wallah@node1 ~]$ podman login -u admin -p redhat321 registry.domain250.example.com 13.搜索镜像 [wallah@node1 ~]$ podman search registry.domain250.example.com/ example.com registry.domain250.example.com/rhel8/rsyslog 0 14.运行容器,且自动挂载容器 [wallah@node1 ~]$ podman run -d --name logserver -v /home/wallah/container_logfile:/var/log/journal:Z registry.domain250.example.com/rhel8/rsyslog 4b36ae21d7b1f77942d1e0c44409b2334cf940a813f10e801ce7fc4c9e1312ea 15.停止镜像,实现开机自启 [wallah@node1 ~]$ podman stop logserver 4b36ae21d7b1f77942d1e0c44409b2334cf940a813f10e801ce7fc4c9e1312ea 16.启用滞留功能(退出用户的时候仍旧有效、好做开机自启) [wallah@node1 ~]$ loginctl enable-linger 17.查看是否开启滞留功能 [wallah@node1 ~]$ loginctl show-user wallah Linger=yes 18. # 找systemd单元 # -k 检索 [root@node1 ~]# man -k systemd systemd.unit (5) - Unit configuration # 找用户家目录,在用户家目录配置单元文件,设置开机自启 [root@node1 ~]# man systemd.unit ~/.config/systemd/user/ #用户家目录 19.查看用户家目录路径是否存在 [wallah@node1 ~]$ ls ~/.config/systemd/user/ ls: cannot access '/home/wallah/.config/systemd/user/*': No such file or directory 20.递归创建用户家目录路径,进入家目录路径 [wallah@node1 ~]$ mkdir -p ~/.config/systemd/user [wallah@node1 *]$ cd ~/.config/systemd/user/ [wallah@node1 user]$ ls 21.在用户家目录配置(生成)单元文件 [wallah@node1 user]$ podman generate systemd --name logserver -f # 生成 单元 生成文件 /home/wallah/.config/systemd/user/container-logserver.service [wallah@node1 user]$ ls container-logserver.service 22.添加面向用户的开机自启(只能做开机自启,不能查状态) [wallah@node1 user]$ systemctl --user enable --now container-logserver.service [wallah@node1 user]$ ls default.target.wants container-logserver.service multi-user.target.wants 23.验证 [wallah@node1 user]$ podman exec logserver ls /var/log/journal system.journal user-1005.journal [wallah@node1 user]$ ps -aux | grep podman # ps -aux 不区分终端,显示所有用户的所有进程 00 podman /bin/podman
16.配置容器使其自动启动(B卷)(服务)
配置容器使其自动启动(B卷) 利用注册服务器上的 rsyslog 镜像,创建一个名为 logger 的容器 面向 wallah 用户,配置一个 systemd 服务 该服务命名为 container-logger ,并在系统重启时自动启动,无需干预 将服务配置为在启动时自动将 /home/wallah/var_log 挂载到容器中的 /var/log 下 在容器中执行命令podman exec logger logger -p authpriv.info SUIBIAN
[root@node1 ~]# podman stop 容器ID / 名字 停止运行容器 [root@node1 ~]# podman ps 列出容器 [root@node1 ~]# podman rm 容器ID / 名字 删除容器
查看用户是否存在 [root@node1 ~]# id wallah uid=1004(wallah) gid=1004(wallah) groups=1004(wallah),10(wheel) 1.登录至wallah 用户 [root@node1 ~]# ssh wallah@localhost 2.登录到容器注册表 [wallah@node1 ~]$ podman login -u admin -p redhat321 registry.domain250.example.com WARNING! Using --password via the cli is insecure. Please consider using --password-stdin Login Succeeded! 3.搜索相关镜像,rsyslog 镜像 [wallah@node1 ~]$ podman search registry.domain250.example.com/ INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED example.com registry.domain250.example.com/rhel8/rsyslog 0 4.查看挂载源,挂载点,是否存在 [wallah@node1 var_log]$ cd /home/wallah/var_log [wallah@node1 ~]$ cd /var/log 4.通过指定镜像,运行容器,指定容器名称,挂载 # -d 后台运行 -v 挂载 :Z selinux安全上下文 [wallah@node1 ~]$ podman run -d --name logger -v /home/wallah/var_log:/var/log:Z registry.domain250.example.com/rhel8/rsyslog ec3191dc92bad12a0332846540867b3000d599fde200764d08c534979ba58f02 5.停止镜像,实现开机自启 [wallah@node1 ~]$ podman stop logger ec3191dc92bad12a0332846540867b3000d599fde200764d08c534979ba58f02 6.开启普通用户滞留功能 [wallah@node1 ~]$ loginctl enable-linger 7.查看验证是否,开启普通用户滞留功能 [wallah@node1 ~]$ loginctl show-user wallah Linger=yes 8.创建最高级的启动目录,便于配置容器开机自启 # mkdir -p 需要时创建目标目录的上层目录,但即使这些目录已存在也不当作错误处理 [wallah@node1 ~]$ mkdir -p ~/.config/systemd/user/ 9.进入最高级的启动目录,做开机自启 [wallah@node1 ~]$ cd ~/.config/systemd/user/ [wallah@node1 user]$ 10.生成单元文件 # -f 生成文件 [wallah@node1 user]$ podman generate systemd --name logger -f /home/wallah/.config/systemd/user/container-logger.service [wallah@node1 user]$ ls container-logger.service 11.对单元文件做开机自启 [wallah@node1 user]$ systemctl --user enable --now container-logger.service Created symlink /home/wallah/.config/systemd/user/multi-user.target.wants/container-logger.service → /home/wallah/.config/systemd/user/container-logger.service. Created symlink /home/wallah/.config/systemd/user/default.target.wants/container-logger.service → /home/wallah/.config/systemd/user/container-logger.service. 12.查看单元文件开机自启状态 [wallah@node1 user]$ systemctl --user status enable --now container-logger.service Active: active (running) [wallah@node1 user]$ systemctl --user is-enabled --now container-logger.service enable 13.容器中执行命令podman exec logger logger -p authpriv.info SUIBIAN [wallah@node1 user]$ podman exec logger logger -p authpriv.info SUIBIAN 14.验证 [root@node1 ~]# ps -aux | grep podman
17.容器nginx(附加题)
容器nginx 利用注册服务器上的 nginx 镜像,创建一个名为 nginx 的容器 面向 wallah 用户,配置一个 systemd 服务 该服务命名为 container-nginx ,并在系统重启时自动启动,无需干预 在/home/wallah/www下创建文件index.html,内容为hello nginx 将服务配置为在启动时自动将 /home/wallah/www 挂载到容器中的 /usr/share/nginx/html 下 将容器主机上的端口 8080 映射到容器上的端口 80
1.登录wallah用户 [root@node1 ~]# ssh wallah@localhost 2.登录容器 [wallah@node1 ~]$ podman login -u admin -p redhat321 registry.domain250.example.com 3.查找容器镜像 [wallah@node1 ~]$ podman search registry.domain250.example.com/ example.com registry.domain250.example.com/library/nginx 0 4.检查/home/wallah/www路径是否存在,不存在则创建 [wallah@node1 ~]$ ls /home/wallah/www ls: cannot access '/home/wallah/www': No such file or directory [wallah@node1 ~]$ mkdir /home/wallah/www 5.在/home/wallah/www下创建文件index.html,内容为hello nginx [wallah@node1 ~]$ echo "hello nginx" > /home/wallah/www/index.html 6.运行容器,指定容器名称,挂载 [wallah@node1 ~]$ podman run -d --name nginx -v /home/wallah/www:/usr/share/nginx/html:Z -p 8080:80 registry.domain250.example.com/library/nginx 7a2ee7f0359fa4803d27b8f7953a4cdc75442c9da39bf2d175a17246478df9d5 7.停止镜像,实现开机自启 [wallah@node1 ~]$ podman stop nginx 7a2ee7f0359fa4803d27b8f7953a4cdc75442c9da39bf2d175a17246478df9d5 8.开启普通用户滞留功能 [wallah@node1 ~]$ loginctl enable-linger [wallah@node1 ~]$ loginctl show-user wallah Linger=yes 9.进入最高级的启动目录,做开机自启 [wallah@node1 ~]$ cd ~/.config/systemd/user/ 10.生成单元文件 # -f 生成文件 [wallah@node1 user]$ podman generate systemd --name nginx -f /home/wallah/.config/systemd/user/container-nginx.service 11.对单元文件做开机自启、查看状态 [wallah@node1 user]$ systemctl --user enable --now container-nginx.service [wallah@node1 user]$ systemctl --user status --now container-nginx.service Active: active (running) 或者 [wallah@node1 user]$ systemctl --user is-enabled --now container-logserver.service enabled [wallah@node1 user]$ 12.验证 #本地访问 [wallah@node1 user]$ curl localhost:8080 hello nginx [wallah@node1 ~]$ curl localhost:8080 hello nginx 或者 [root@node1 ~]# curl http://172.25.250.100:8080 hello nginx
18.添加sudo免密操作(附加题)
添加sudo免密操作 允许sysmgrs组成员sudo时不需要密码
1.做免密操作 [root@clear ~]# visudo /ALL #搜索 109 ## Same thing without a password 110 # %wheel ALL=(ALL) NOPASSWD: ALL 111 %sysmgrs ALL=(ALL) NOPASSWD: ALL 2.验证 查看组成员 [root@clear ~]# tail -n 5 /etc/group wallah:x:1004: sysmgrs:x:1005:natasha,harry natasha:x:1006: harry:x:1007: sarah:x:1008: 验证 [root@node1 ~]# ssh natasha@localhost [natasha@node1 ~]$ sudo tail -n 3 /etc/passwd natasha:x:1005:1006::/home/natasha:/bin/bash harry:x:1006:1007::/home/harry:/bin/bash sarah:x:1007:1008::/home/sarah:/sbin/nologin
19.配置创建新用户的密码策略(附加题)
配置创建新用户的密码策略 创建新用户时,默认密码策略为20天后,密码会过期
1.配置密码策略配置文件 [root@node1 ~]# vim /etc/login.defs /MAX PASS_MAX_DAYS 20 2.验证 #创建用户 [root@node1 ~]# useradd qq #查看最大天数 [root@node1 ~]# vim /etc/shadow 或者 [root@node1 ~]# chage -l qq Last password change : May 23, 2022 Password expires : Jun 12, 2022 Password inactive : never Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 20 Number of days of warning before password expires : 7
20.创建脚本(附加题)(A卷)
创建脚本 创建一个名为myresearch的脚本 该脚本放置在/usr/bin下 该脚本用来查找/usr下所有小于10m且具有修改SGID权限的文件,将这些文件放置于/root/myfiles下
1.创建一个名称:myresearch 的脚本文件 [root@node1 ~]# vim /usr/bin/myresearch ========================================================================================= #!/bin/bash #注释行 if [ ! -d /root/myfiles ] then mkdir /root/myfiles fi find /usr -size -10M -perm /g=s -exec cp -a {} /root/myfiles \; ========================================================================================= 2.给脚本文件,添加执行权限 [root@node1 ~]# chmod +x /usr/bin/myresearch [root@node1 ~]# ll /usr/bin/myresearch -rwxr-xr-x. 1 root root 133 May 26 11:56 /usr/bin/myresearch 3.执行脚本 [root@node1 ~]# /usr/bin/myresearch 或者 [root@node1 ~]# bash /usr/bin/myresearch 4.验证 [root@node1 ~]# ll -h /root/myfiles/ total 708K -rwx--s--x. 1 root slocate 47K Aug 12 2018 locate -r-xr-sr-x. 1 root ssh_keys 619K Jan 8 2020 ssh-keysign -rwx--s--x. 1 root utmp 13K Aug 12 2018 utempter -rwxr-sr-x. 1 root tty 21K Dec 17 2019 write
21.创建脚本(附加题)(B卷)
创建脚本 创建一个名为newsearch的脚本 该脚本放置在/usr/bin下 该脚本用来查找/usr下所有大于30k,但是小于50k且具有SUID权限的文件,将这些文件放置于/root/newfiles下
1.创建/usr/bin/newsearch脚本文件 [root@clear ~]# vim /usr/bin/newsearch ========================================================================================= #!/bin/bash if [ ! -d /root/newfiles ] then mkdir /root/newfiles fi find /usr -size +30k -size -50k -perm /u=s -exec cp -a {} /root/newfiles \; ========================================================================================= 2.给脚本文件,添加执行权限 [root@node1 ~]# chmod +x /usr/bin/newsearch [root@node1 ~]# ll /usr/bin/newsearch -rwxr-xr-x. 1 root root 147 May 26 12:17 /usr/bin/newsearch 3.验证 [root@node1 ~]# /usr/bin/newsearch [root@node1 ~]# 或者 [root@node1 ~]# ll -h /root/newfiles/ total 244K -rws--x--x. 1 root root 33K Dec 17 2019 chfn -rwsr-x---. 1 root cockpit-wsinstance 46K Mar 12 2020 cockpit-session -rwsr-xr-x. 1 root root 33K Dec 13 2019 passwd -rwsr-xr-x. 1 root root 33K Dec 17 2019 umount -rwsr-xr-x. 1 root root 37K Dec 19 2019 unix_chkpwd -rws--x--x. 1 root root 47K Nov 20 2018 userhelper
22.设置默认权限(增加)
设置默认权限 用户manalo在 node1 上,所有新创建的文件都应具有-r--r--r--的默认权限 此用户的所有新创建目录应具有dr-xr-xr-x的默认权限
1.查看manalo用户是否存在 [root@node1 ~]# id manalo uid=3533(manalo) gid=3533(manalo) groups=3533(manalo) 2.切换用户 [root@node1 ~]# su - manalo [manalo@node1 ~]$ 3.查看隐藏文件 [manalo@node1 ~]$ ls -a . .. .bash_logout .bash_profile .bashrc 4.编辑脚本 #普通文件默认权限(666) #目录默认权限(777) [manalo@node1 ~]$ vim .bashrc umask 0222 5.执行脚本 [manalo@node1 ~]$ source .bashrc 6.验证 [manalo@node1 ~]$ touch 1.txt [manalo@node1 ~]$ mkdir test [manalo@node1 ~]$ ll total 0 -r--r--r--. 1 manalo manalo 0 May 23 05:04 1.txt dr-xr-xr-x. 2 manalo manalo 6 May 23 05:07 test
node2.domain250.example.com 上执行以下任务
23.设置 root 密码
设置 root 密码 将 node2 的 root 密码设置为 flectrag 。您需要获得系统访问权限才能进行此操作。
mount -o #指定加载文件系统时的选项 remount #重新加载设备。通常用于改变设备的设置状态 ro #以只读模式加载 rw #以可读写模式加载
1.重启nodel2 ctrl+alt+delete 2.出现开机选项 按e 或者 按上下键 3.找到linux那一行,按end键跳到结尾(ro只读) 4.按空格 输入rd.break 5.按 ctrl+x 进入单用户模式 6.查询权限是否为rw(非必须) switch_root:/# mount | grep /sysroot ……(ro.)…… 7.重新以只读的方式挂载(增加权限) switch_root:/# mount -o remount,rw /sysroot 8.查询权限是否为rw(非必须) switch_root:/# mount | grep /sysroot ……(rw.)…… 9.更改路径,指向一个临时的根 switch_root:/# chroot /sysroot 10.更改root密码 sh-4.2# echo "redhat" | passwd --stdin root # --stdin 让passwd可接受管道符前的命令 11.给selinux打标签 sh-4.2# touch /.autorelabel 12.退出 或者 (ctrl+d两次) sh-4.2# exit switch_root:/# reboot
24.配置您的系统以使用默认存储库
配置您 的系统以使用默认存储库 YUM 存储库已可以从 http://foundation0.ilt.example.com/dvd/BaseOS 和 http://foundation0.ilt.example.com/dvd/AppStream 使用配置您的系统,以将这些位置用作默认存储库
25.调整逻辑卷大小
设置逻辑卷大小 将逻辑卷 vo 及其文件系统的大小调整到 230 MiB。确保文件系统内容保持不变。注:分区大小很少与请求的大小完全相同,因此可以接受范围为 217 MiB 到 243 MiB 的大小。
1.查询逻辑卷vo [root@node2 ~]# df -h /dev/mapper/myvol-vo 175M 1.6M 160M 1% /reports 2.扩容 [root@node2 ~]# lvextend -L 230M /dev/mapper/myvol-vo #扩展逻辑卷空间 Logical volume myvol/vo successfully resized. 3.查询格式化类型(ext4) [root@node2 ~]# blkid | grep vo /dev/mapper/myvol-vo: UUID="67994f68-d3e1-4686-8393-8df05149883f" TYPE="ext4" 5.根据类型刷新 [root@node2 ~]# resize2fs /dev/mapper/myvol-vo 6.验证 [root@node2 ~]# df -h /dev/mapper/myvol-vo 221M 2.1M 204M 1% /reports
26.添加交换分区
添加交换分区 向您的系统添加一个额外的交换分区 756MiB 。交换分区应在系统启动时自动挂载。不要删除或以任何方式改动系统上的任何现有交换分区。
1.列出所有的块设备 [root@node2 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 252:0 0 10G 0 disk ├─vda1 252:1 0 1M 0 part ├─vda2 252:2 0 100M 0 part /boot/efi └─vda3 252:3 0 9.9G 0 part / vdb 252:16 0 4G 0 disk ├─vdb1 252:17 0 510M 0 part │ └─myvol-vo 253:1 0 232M 0 lvm /reports └─vdb2 252:18 0 512M 0 part └─vgroup-swap 253:0 0 256M 0 lvm [SWAP] vdc 252:32 0 10G 0 disk 2.创建磁盘分区 [root@node2 ~]# fdisk /dev/vdb 3.格式化 [root@node2 ~]# mkswap /dev/vdb3 Setting up swapspace version 1, size = 756 MiB (792719360 bytes) no label, UUID=ba522efa-8aa3-4e96-b8e2-39aafa20f3cb 4.永久挂载 [root@node2 ~]# vim /etc/fstab UUID=ba522efa-8aa3-4e96-b8e2-39aafa20f3cb none swap defaults 0 0 5.验证 [root@node2 ~]# swapon -a #刷新 [root@node2 ~]# swapon NAME TYPE SIZE USED PRIO /dev/dm-0 partition 256M 0B -2 /dev/vdb3 partition 756M 0B -3
27.创建逻辑卷
创建逻辑卷 根据如下要求,创建新的逻辑卷: 逻辑卷取名为 qa ,属于 qagroup 卷组,大小为 60 个扩展块 qagroup 卷组中逻辑卷的扩展块大小应当为 16 MiB 使用 ext3 文件系统格式化新逻辑卷。该逻辑卷应在系统启动时自动挂载到 /mnt/qa 下
1.创建磁盘分区 [root@node2 ~]# fdisk /dev/vdb 2.创建物理组(pv) [root@node2 ~]# pvcreate /dev/vdb4 Physical volume "/dev/vdb4" successfully created. 3.创建卷组(vg) [root@node2 ~]# vgcreate qagroup -s 16M /dev/vdb4 # -s 卷组上的物理卷的扩展块(PE)大小 Volume group "qagroup" successfully created 4.创建逻辑卷(lv) [root@node2 ~]# lvcreate -n qa -l 60 /dev/qagroup Logical volume "qa" created. 5.格式化 [root@node2 ~]# mkfs.ext3 /dev/qagroup/qa 6.查看UUID [root@node2 ~]# blkid /dev/qagroup/qa /dev/qagroup/qa: UUID="5ad7f2df-9749-4a46-adb6-853f3805d795" SEC_TYPE="ext2" TYPE="ext3" 7.创建/mnt/qa目录 [root@node2 ~]# mkdir /mnt/qa 8.做永久挂载 [root@node2 ~]# vim /etc/fstab UUID="5ad7f2df-9749-4a46-adb6-853f3805d795" /mnt/qa ext3 defaults 0 0 9.加载 [root@node2 ~]# mount -a # 加载文件/etc/fstab中设置的所有设备 10. [root@node2 ~]# df -h /dev/mapper/qagroup-qa 929M 1.2M 880M 1% /mnt/qa
28.创建 VDO 卷(服务)
创建 VDO 卷 根据如下要求,创建新的 VDO 卷: 使用未分区的磁盘 该卷的名称为 vdough 该卷的逻辑大小为 50G 该卷使用 xfs 文件系统格式化 该卷(在系统启动时)挂载到 /vbread 下
1.搜索安装包 [root@node2 ~]# yum search vdo vdo.x86_64 kmod-kvdo.x86_64 2.检查安装 [root@node2 ~]# rpm -q vdo kmod package vdo is not installed kmod-25-16.el8.x86_64 3.安装 [root@node2 ~]# yum install -y vdo.x86_64 kmod-kvdo.x86_64 Installed: kmod-kvdo-6.2.2.117-65.el8.x86_64 vdo-6.2.2.117-13.el8.x86_64 Complete! 4.man vdo查看格式 [root@node2 ~]# vdo create --name=vdough --device=/dev/vdc --vdoLogicalSize=50G 5.格式化 # -K 快速格式化(大写) [root@node2 ~]# mkfs.xfs -K /dev/mapper/vdough 6.创建挂载点 [root@node2 ~]# mkdir /vbread 7.查找UUID [root@node2 ~]# blkid 或者 [root@node2 ~]# blkid /dev/mapper/vdough /dev/mapper/vdough: UUID="a1f68c65-cf38-4cc8-b508-860a2e90397c" TYPE="xfs" 8.做永久挂载,网络通再挂载 [root@node2 ~]# vim /etc/fstab UUID="a1f68c65-cf38-4cc8-b508-860a2e90397c" /vbread xfs _netdev 0 0 9.加载 [root@node2 ~]# mount -a # 加载文件/etc/fstab中设置的所有设备 10. [root@node2 ~]# df -h /dev/mapper/vdough 50G 390M 50G 1% /vbread 11.vdo是服务需要设置开机自启 [root@node2 ~]# systemctl restart vdo [root@node2 ~]# systemctl enable vdo [root@node2 ~]# systemctl status vdo
29.配置系统调优
配置系统调优 为您的系统选择建议的 tuned 配置集并将它设为默认设置。
[root@node2 ~]# tuned (tab两下,就会列出相关的命令) tuned tuned-adm(调优工具,进行管理和配置的命令) [root@node2 ~]# tuned-adm (tab两下,就会列出) active list off profile recommend verify 1.查看系统默认推荐的调优策略: [root@node2 ~]# tuned-adm recommend virtual-guest #系统默认推荐的调优策略 2.将调优策略,配置为默认推荐: [root@node2 ~]# tuned-adm profile virtual-guest 3.验证 [root@node2 ~]# tuned-adm active Current active profile: virtual-guest