RHCSA认证考试

2022-11-14 17:34:37 浏览数 (2)

考试要求:

在 mars.domain250.example.com 上执行以下任务。 ○ 复查 ○ 完成 配置网络设置 ○ 复查 ○ 完成 配置您的系统以使用默认存储库 ○ 复查 ○ 完成 调试 SELinux ○ 复查 ○ 完成 创建用户帐户 ○ 复查 ○ 完成 配置 cron 作业 ○ 复查 ○ 完成 创建协作目录 ○ 复查 ○ 完成 配置 NTP ○ 复查 ○ 完成 配置 autofs ○ 复查 ○ 完成 配置 /var/tmp/fstab 权限 ○ 复查 ○ 完成 配置用户帐户 ○ 复查 ○ 完成 查找文件 ○ 复查 ○ 完成 查找字符串 ○ 复查 ○ 完成 创建存档 在 venus.domain250.example.com 上执行以下任务。 ○ 复查 ○ 完成 设置 root 密码 ○ 复查 ○ 完成 配置您的系统以使用默认存储库 ○ 复查 ○ 完成 调整逻辑卷大小 ○ 复查 ○ 完成 添加交换分区 ○ 复查 ○ 完成 创建逻辑卷 ○ 复查 ○ 完成 创建 VDO 卷 ○ 复查 ○ 完成 配置系统调优 ○ 复查 ○ 完成 配置容器

第一台机器

第一题:

第一步:查看网卡信息

代码语言:javascript复制
[root@mars ~]# nmcli connection show 
NAME                UUID                                  TYPE      DEVICE 
Wired connection 1  46da4a6a-06c3-6fae-eea1-ac0ca900f213  ethernet  eth0   

第二步:根据要求配置网络配置

代码语言:javascript复制
[root@mars ~]# 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 autoconnect yes

第三步:设置主机名

代码语言:javascript复制
[root@mars ~]# hostnamectl set-hostname mars.domain250.example.com

第二题:

第一步:安装yum-utils命令

代码语言:javascript复制
[root@mars ~]# rpm -ivh http://content/rhel8.2/x86_64/dvd/BaseOS/Packages/yum-utils-4.0.12-3.el8.noarch.rpm

第二步:配置仓库

代码语言:javascript复制
[root@mars ~]#yum-config-manager --add-repo http://content/rhel8.2/x86_64/dvd/BaseOS
[root@mars ~]#yum-config-manager --add-repo http://content/rhel8.2/x86_64/dvd/AppStream

第三步:查找Redhat提供的公钥public key进行签名检查

代码语言:javascript复制
[root@mars ~]#find / -name *KEY*
[root@mars ~]#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

第三题:

第一步:重启httpd服务

代码语言:javascript复制
[root@mars ~]#systemctl restart httpd

第二步:更改selinux策略

代码语言:javascript复制
[root@mars ~]#grep -n 82 /var/log/messages
[root@mars ~]#semanage port -a -t http_port_t -p tcp 82

第三步:在防火墙放行82端口

代码语言:javascript复制
[root@mars ~]#firewall-cmd --add-port=82/tcp --permanent
[root@mars ~]#firewall-cmd --reload

第四步:恢复文件的安全上下文

代码语言:javascript复制
[root@mars ~]#ll -Z /var/www/html/
[root@mars ~]#semanage fcontext -m -t httpd_sys_content_t /var/www/html/file1
[root@mars ~]#restorecon -R -v /var/www/html/file1

第五步:开启httpd服务

代码语言:javascript复制
[root@mars ~]#systemctl enable --now httpd

第四题:

第一步:创建名为sysmgrs组

代码语言:javascript复制
[root@mars ~]# groupadd sysmgrs

第二步:用户 natasha ,作为次要组从属于 sysmgrs

代码语言:javascript复制
[root@mars ~]# useradd -G sysmgrs natasha

第三步:用户 harry ,作为次要组还从属于 sysmgrs

代码语言:javascript复制
[root@mars ~]# useradd -G sysmgrs harry 

第四步:用户 sarah ,无权访问系统上的交互式 shell 且不是 sysmgrs 的成员

代码语言:javascript复制
[root@mars ~]# useradd -s /sbin/nologin sarah 

第五步:natasha 、 harry 和 sarah 的密码应当都是 flectrag

代码语言:javascript复制
[root@mars ~]# for i in natasha harry sarah 
> do
> echo flectrag | passwd --stdin $i
> done

第五题:

表示格式:分时日月周

代码语言:javascript复制
[root@mars ~]# crontab -u natasha -e
*/2 * * * * logger "EX200 in progress"

还可能换种方式考察:

每天14:23 分natasha执行 echo “Hi rhcsa”

代码语言:javascript复制
[root@mars ~]#crontab -u natasha -e
23 14 * * * echo "Hi rhcsa"

第六题:

第一步:创建目录

代码语言:javascript复制
[root@mars ~]# mkdir /home/managers

第二步:更改目录的属组

代码语言:javascript复制
[root@mars ~]# chgrp sysmgrs /home/managers/

第三步:查看/home/managers所拥有的权限

代码语言:javascript复制
[root@mars ~]# ll -d /home/managers/ 
drwxr-xr-x. 2 root sysmgrs 6 Oct 26 12:12 /home/managers/

第四步:设定目录的权限,目录的访问权限即为x权限rwx=7,自动变成sysmgrs 组用特殊权限2

代码语言:javascript复制
[root@mars ~]# chmod 2770 /home/managers

第七题:

第一步:查找chrony配置文件

代码语言:javascript复制
[root@mars ~]# rpm -qc chrony 
/etc/chrony.conf
/etc/chrony.keys
/etc/logrotate.d/chrony
/etc/sysconfig/chronyd

第二步:修改配置文件

代码语言:javascript复制
[root@mars ~]# vim /etc/chrony.conf
 Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.rhel.pool.ntp.org iburst
#server 1.rhel.pool.ntp.org iburst
#server 2.rhel.pool.ntp.org iburst
#server 3.rhel.pool.ntp.org iburst
#server _gateway iburst  #这行注释掉
server materials.example.com iburst

第三步:重启chronyd服并设置开机自启动

代码语言:javascript复制
[root@mars ~]# systemctl restart chronyd.service 
[root@mars ~]# systemctl enable chronyd.service

第四步:查看是否配置成功

代码语言:javascript复制
[root@mars ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* classroom.example.com         8   6    17     4    328us[-3211us]  /-   11ms

第八题:

第一步:安装autofs

代码语言:javascript复制
[root@mars ~]# yum -y install autofs

第二步:查找autofs文件

代码语言:javascript复制
[root@mars ~]# rpm -qc autofs
/etc/auto.master
/etc/auto.misc
/etc/auto.net
/etc/auto.smb
/etc/autofs.conf
/etc/autofs_ldap_auth.conf
/etc/sysconfig/autofs
/usr/lib/systemd/system/autofs.service

第二步:编写配置文件

代码语言:javascript复制
[root@mars ~]# vim /etc/auto.master
增加上层接口目录
#
/misc   /etc/auto.misc
/rhome /etc/auto.rhome

第三步:编写子配置文件

代码语言:javascript复制
[root@mars ~]# cp /etc/auto.misc /etc/auto.rhome
[root@mars ~]# vim /etc/auto.rhome
#cd             -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom		#注释掉此行
remoteuser1     -fstype=nfs,vers=4,rw   materials.example.com:/rhome/remoteuser

第四步:设置开机自启动

代码语言:javascript复制
[root@mars ~]# systemctl restart autofs.service
[root@mars ~]# systemctl enable autofs.service

第五步:测试是否成功,远程登录

代码语言:javascript复制
[root@mars ~]# ssh remoteuser1@mars
remoteuser1@mars's password: 
Activate the web console with: systemctl enable --now cockpit.socket

This system is not registered to Red Hat Insights. See https://cloud.redhat.com/
To register this system, run: insights-client --register

Last login: Wed Oct 26 12:53:54 2022 from 172.25.250.100
[remoteuser1@mars ~]$ pwd
/rhome/remoteuser1

第九题:

第一步:将文件复制过去

代码语言:javascript复制
[root@mars ~]# cp /etc/fstab /var/tmp/fstab

第二步:查看一下文件权限

代码语言:javascript复制
[root@mars ~]# ll -d /var/tmp/fstab
-rw-r--r--. 1 root root 534 Oct 26 13:01 /var/tmp/fstab

第三步:配置natasha

代码语言:javascript复制
[root@mars ~]# setfacl -m u:natasha:rw /var/tmp/fstab

第四步:配置harry

代码语言:javascript复制
[root@mars ~]# setfacl -m u:harry:- /var/tmp/fstab 

第五步:检查是否配置成功

代码语言:javascript复制
[root@mars ~]# getfacl /var/tmp/fstab
getfacl: Removing leading '/' from absolute path names
# file: var/tmp/fstab
# owner: root
# group: root
user::rw-
user:natasha:rw-
user:harry:---
group::r--
mask::rw-
other::r--

第十题:

第一步:创建manalo用户并指定其组ID

代码语言:javascript复制
[root@mars ~]# useradd -u 3533  manalo 

第二步:设置密码

代码语言:javascript复制
[root@mars ~]# echo flectrag | passwd --stdin manalo
Changing password for user manalo.
passwd: all authentication tokens updated successfully.

第十一题:

第一步:查看用户和目录是否存在

代码语言:javascript复制
[root@mars ~]# id jacques
uid=1003(jacques) gid=1003(jacques) groups=1003(jacques)
[root@mars ~]# ll -d /root/findfiles
ls: cannot access '/root/findfiles': No such file or directory

第二步:创建目录

代码语言:javascript复制
# 发现目录不存在,于是创建目录
[root@mars ~]# mkdir /root/findfiles

第三步:查找文件并放入新建的目录中

代码语言:javascript复制
[root@mars ~]# find / -user jacques -exec cp -a {} /root/findfiles ;

第四步:检查文件是否查找成功

代码语言:javascript复制
[root@mars ~]# ll /root/findfiles/
total 0
-rw-r--r--. 1 jacques root    0 Oct 12 10:12 gamelan
-rw-r--r--. 1 jacques jacques 0 Oct 12 10:12 jacques
-rw-r--r--. 1 jacques root    0 Oct 12 10:12 libWedgeit.so.1.2.3

第十二题:

第一步:使用grep命令限制需要查找的内容

代码语言:javascript复制
[root@mars ~]# grep ng /usr/share/xml/iso-codes/iso_639_3.xml | grep -v "^$" > /root/list

第二步:检查副本是否包含空行

代码语言:javascript复制
[root@mars ~]# cat -n /root/list
     1	<?xml version="1.0" encoding="UTF-8" ?>
     2	This file gives a list of all languages in the ISO 639-3
     3	    License along with this file; if not, write to the Free Software
     4			reference_name="Solong"
     5			name="Solong" />
		 ......

第十三题:

第一步:打包并压缩

代码语言:javascript复制
[root@mars ~]# tar czf /root/backup.tar.gz /usr/local

第二步:检查是否打包压缩成功

代码语言:javascript复制
[root@mars ~]# file backup.tar.gz 
backup.tar.gz: gzip compressed data, last modified: Wed Oct 26 20:56:49 2022, from Unix, original size 51200

第二台机器

第一题:

第一步:①打开主机venus ②点击Send key ③选择 Ctrl Alt Del 重新启动 ④开机导航页面按e键

第二步:将光标移到Linux 那一行末尾添加如下内容:rd.break console=tty0

第三步:按下:Ctrl X进入grup救援模式

代码语言:javascript复制
# 重新挂载/目录
switch_root:/# mount -o rw,remount /sysroot 
# 进入/目录
switch_root:/# chroot /sysroot 
# 设置root密码
sh-4.4# echo "flectrag"|passwd --stdin root
# 在根目录下创建重新刷新SELinux 安全上下文标记的文件
sh-4.4# touch /.autorelabel 
# 退出重启系统
sh-4.4# exit
switch_root:/# reboot

第二题:

第一步:安装yum-utils命令

代码语言:javascript复制
[root@mars ~]# rpm -ivh http://content/rhel8.2/x86_64/dvd/BaseOS/Packages/yum-utils-4.0.12-3.el8.noarch.rpm

第二步:配置仓库

代码语言:javascript复制
[root@mars ~]#yum-config-manager --add-repo http://content/rhel8.2/x86_64/dvd/BaseOS
[root@mars ~]#yum-config-manager --add-repo http://content/rhel8.2/x86_64/dvd/AppStream

第三步:查找Redhat提供的公钥public key进行签名检查

代码语言:javascript复制
[root@mars ~]#find / -name *KEY*
[root@mars ~]#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

第三题:

第一步:查看需要调整的逻辑卷所挂载的路径和现有的大小、名字

代码语言:javascript复制
[root@venus ~]# lvscan 
  ACTIVE            '/dev/vgroup/swap' [512.00 MiB] inherit
  ACTIVE            '/dev/myvol/vo' [184.00 MiB] inherit

第二步:查看卷组的容量有多大

代码语言:javascript复制
[root@venus ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree  
  myvol    1   1   0 wz--n- 508.00m 324.00m
  vgroup   1   1   0 wz--n-  <2.00g  <1.50g

第三步:使用lvextend进行扩容

代码语言:javascript复制
[root@venus ~]# lvextend -rL 230M /dev/myvol/vo

第四步:检查lvm大小是否符合

代码语言:javascript复制
[root@venus ~]# lvscan
  ACTIVE            '/dev/vgroup/swap' [512.00 MiB] inherit
  ACTIVE            '/dev/myvol/vo' [232.00 MiB] inherit

[root@venus ~]# df -Th
Filesystem           Type      Size  Used Avail Use% Mounted on
devtmpfs             devtmpfs  887M     0  887M   0% /dev
tmpfs                tmpfs     914M     0  914M   0% /dev/shm
tmpfs                tmpfs     914M   17M  897M   2% /run
tmpfs                tmpfs     914M     0  914M   0% /sys/fs/cgroup
/dev/vda3            xfs       9.9G  1.6G  8.4G  16% /
/dev/vda2            vfat      100M  6.8M   94M   7% /boot/efi
/dev/mapper/myvol-vo ext4      221M  2.1M  204M   1% /reports		#这里显示的不是230M没有关系存在误差
tmpfs                tmpfs     183M     0  183M   0% /run/user/0

第四题:

第一步:查看一下磁盘空间分配情况

代码语言:javascript复制
[root@venus ~]# 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    5G  0 disk 
├─vdb1          252:17   0  510M  0 part 
│ └─myvol-vo    253:0    0  232M  0 lvm  /reports
└─vdb2          252:18   0    2G  0 part 
  └─vgroup-swap 253:1    0  512M  0 lvm  [SWAP]
vdc             252:32   0   10G  0 disk 

第二步:使用磁盘分区分出一个swap

代码语言:javascript复制
[root@venus ~]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): p			# 首先p打印一下现在的分区信息
Disk /dev/vdb: 5 GiB, 5368709120 bytes, 10485760 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xdf110c4a

Device     Boot   Start     End Sectors  Size Id Type
/dev/vdb1          2048 1046528 1044481  510M 83 Linux
/dev/vdb2       1046529 5240833 4194305    2G 83 Linux

Command (m for help): n		# 然后按n新建分区 
Partition type
   p   primary (2 primary, 0 extended, 2 free)
   e   extended (container for logical partitions)
Select (default p): p		# 再按p添加主分区
Partition number (3,4, default 3): 		# 然后是让你选择主分区代码3,4默认就可以(3)
First sector (5240834-10485759, default 5242880): 		# 之后是选择分区起始位置的大小默认就可以
Last sector, sectors or  size{K,M,G,T,P} (5242880-10485759, default 10485759):  756M #最后是选择增加的大小 756M

Created a new partition 3 of type 'Linux' and of size 756 MiB.

Command (m for help): p		# 现在按p再查看一下分区信息
Disk /dev/vdb: 5 GiB, 5368709120 bytes, 10485760 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xdf110c4a

Device     Boot   Start     End Sectors  Size Id Type
/dev/vdb1          2048 1046528 1044481  510M 83 Linux
/dev/vdb2       1046529 5240833 4194305    2G 83 Linux
/dev/vdb3       5242880 6791167 1548288  756M 83 Linux

# 为了以后方便正常工作中查看将标识号更改为82(交换分区)
Command (m for help): t		# 按t
Partition number (1-3, default 3): 3		# 选择3 
Hex code (type L to list all codes): 82		# 再输入82

Changed type of partition 'Linux' to 'Linux swap / Solaris'.

Command (m for help): p		# 再按p再查看一下分区信息
Disk /dev/vdb: 5 GiB, 5368709120 bytes, 10485760 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xdf110c4a

Device     Boot   Start     End Sectors  Size Id Type
/dev/vdb1          2048 1046528 1044481  510M 83 Linux
/dev/vdb2       1046529 5240833 4194305    2G 83 Linux
/dev/vdb3       5242880 6791167 1548288  756M 82 Linux swap / Solaris		# 更改成功

Command (m for help): w		# 按w保存退出
The partition table has been altered.
Syncing disks.

第三步:查看分区信息

代码语言:javascript复制
[root@venus ~]# 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    5G  0 disk 
├─vdb1          252:17   0  510M  0 part 
│ └─myvol-vo    253:0    0  232M  0 lvm  /reports
├─vdb2          252:18   0    2G  0 part 
│ └─vgroup-swap 253:1    0  512M  0 lvm  [SWAP]
└─vdb3          252:19   0  756M  0 part 
vdc             252:32   0   10G  0 disk 

第四步:格式化分区

代码语言:javascript复制
[root@venus ~]# mkswap /dev/vdb3
Setting up swapspace version 1, size = 756 MiB (792719360 bytes)
no label, UUID=dd5e8738-83a0-45fb-9014-4533d7a94e8e	

第五步:编辑fstab设置开机自动挂载

代码语言:javascript复制
# 查看UUID
[root@venus ~]# blkid /dev/vdb3 
/dev/vdb3: UUID="dd5e8738-83a0-45fb-9014-4533d7a94e8e" TYPE="swap" PARTUUID="df110c4a-03"

# 在末行插入
[root@venus ~]# vim /etc/fstab 
UUID="dd5e8738-83a0-45fb-9014-4533d7a94e8e" swap swap defaults 0 0

# 挂载
[root@venus ~]# swapon -a
[root@venus ~]# swapon -s
Filename				Type		Size	Used	Priority
/dev/dm-1                              	partition	524284	0	-2
/dev/vdb3                              	partition	774140	0	-3

第五题:

第一步:先将所有剩余空间给扩展分区

代码语言:javascript复制
# 在这里解释一下为什么给全部容量,而不是60个拓展块*16M=960M 因为红帽考试存在bug尽量在已知条件给更大的空间
[root@venus ~]# fdisk /dev/vdb

Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): n
Partition type
   p   primary (3 primary, 0 extended, 1 free)
   e   extended (container for logical partitions)
Select (default e): 

Using default response e.
Selected partition 4
First sector (5240834-10485759, default 6791168): 
Last sector,  sectors or  size{K,M,G,T,P} (6791168-10485759, default 10485759): 

Created a new partition 4 of type 'Extended' and of size 1.8 GiB.

Command (m for help): w
The partition table has been altered.
Syncing disks.

Command (m for help): n
All primary partitions are in use.
Adding logical partition 5
First sector (6793216-10485759, default 6793216): 
Last sector,  sectors or  size{K,M,G,T,P} (6793216-10485759, default 10485759): 

Created a new partition 5 of type 'Linux' and of size 1.8 GiB.

Command (m for help): p
Disk /dev/vdb: 5 GiB, 5368709120 bytes, 10485760 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xdf110c4a

Device     Boot   Start      End Sectors  Size Id Type
/dev/vdb1          2048  1046528 1044481  510M 83 Linux
/dev/vdb2       1046529  5240833 4194305    2G 83 Linux
/dev/vdb3       5242880  6791167 1548288  756M 82 Linux swap / Solaris
/dev/vdb4       6791168 10485759 3694592  1.8G  5 Extended
/dev/vdb5       6793216 10485759 3692544  1.8G 83 Linux

Command (m for help): w
The partition table has been altered.
Failed to add partition 5 to system: Device or resource busy

The kernel still uses the old partitions. The new table will be used at the next reboot. 
Syncing disks.

# 在模拟环境中显示需要重启
[root@venus ~]# reboot

# 重启后查看之前创建的vdb5已经创建完成
[root@venus ~]# 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    5G  0 disk 
├─vdb1          252:17   0  510M  0 part 
│ └─myvol-vo    253:0    0  232M  0 lvm  /reports
├─vdb2          252:18   0    2G  0 part 
│ └─vgroup-swap 253:1    0  512M  0 lvm  [SWAP]
├─vdb3          252:19   0  756M  0 part [SWAP]
├─vdb4          252:20   0    1K  0 part 
└─vdb5          252:21   0  1.8G  0 part 
vdc             252:32   0   10G  0 disk 

第二步:创建pv物理卷

代码语言:javascript复制
[root@venus ~]#  pvcreate /dev/vdb5 
  Physical volume "/dev/vdb5" successfully created.

第三步:创建vg逻辑卷组

代码语言:javascript复制
[root@venus ~]#  vgcreate qagroup /dev/vdb5 -s 16M
  Volume group "qagroup" successfully created

第四步:创建lv逻辑卷

代码语言:javascript复制
[root@venus ~]# lvcreate -l 60 -n qa qagroup
  Logical volume "qa" created.

第五步:格式化文件系统

代码语言:javascript复制
[root@venus ~]# mkfs.ext3 /dev/qagroup/qa
mke2fs 1.45.4 (23-Sep-2019)
Creating filesystem with 245760 4k blocks and 61440 inodes
Filesystem UUID: 04a9f331-7f7d-4b0d-945e-12d48fdba124
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

第六步:创建挂载的路径

代码语言:javascript复制
[root@venus ~]# mkdir /mnt/qa

第七步:编辑fstab设置开机自动挂载

代码语言:javascript复制
# 查看UUID
[root@venus ~]# blkid /dev/qagroup/qa
/dev/qagroup/qa: UUID="04a9f331-7f7d-4b0d-945e-12d48fdba124" SEC_TYPE="ext2" TYPE="ext3"

# 在末行插入
[root@venus ~]# vim /etc/fstab
UUID="04a9f331-7f7d-4b0d-945e-12d48fdba124" /mnt/qa ext3 defaults 0 0

# 挂载
[root@venus ~]# mount -a

#检查
[root@venus ~]# df -Th
Filesystem             Type      Size  Used Avail Use% Mounted on
devtmpfs               devtmpfs  887M     0  887M   0% /dev
tmpfs                  tmpfs     914M     0  914M   0% /dev/shm
tmpfs                  tmpfs     914M   17M  897M   2% /run
tmpfs                  tmpfs     914M     0  914M   0% /sys/fs/cgroup
/dev/vda3              xfs       9.9G  1.7G  8.3G  17% /
/dev/mapper/myvol-vo   ext4      221M  2.1M  204M   1% /reports
/dev/vda2              vfat      100M  6.8M   94M   7% /boot/efi
tmpfs                  tmpfs     183M     0  183M   0% /run/user/0
/dev/mapper/qagroup-qa ext3      929M  1.2M  880M   1% /mnt/qa

第六题:

第一步:安装VDO工具

代码语言:javascript复制
[root@venus ~]# yum -y install vdo kmod-kvdo

第二步:创建VDO虚拟磁盘

代码语言:javascript复制
# 查看创建VDO的命令
[root@venus ~]# man vdo | grep #
       # vdo create --name=vdo0 --device=/dev/sdb1 --vdoLogicalSize=10T
       #
       
[root@venus ~]# vdo create --name=vdough --device=/dev/vdc --vdoLogicalSize=50G
Creating VDO vdough
      The VDO volume can address 6 GB in 3 data slabs, each 2 GB.
      It can grow to address at most 16 TB of physical storage in 8192 slabs.
      If a larger maximum size might be needed, use bigger slabs.
Starting VDO vdough
Starting compression on VDO vdough
VDO instance 0 volume is ready at /dev/mapper/vdough

第三步:格式化VDO

代码语言:javascript复制
[root@venus ~]#  mkfs.xfs -K /dev/mapper/vdough
meta-data=/dev/mapper/vdough     isize=512    agcount=4, agsize=3276800 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=13107200, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=6400, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

第四步:创建挂载的路径

代码语言:javascript复制
[root@venus ~]# mkdir /vbread

第五步:编辑fstab设置开机自动挂载

代码语言:javascript复制
# 查看UUID
[root@venus ~]# blkid /dev/mapper/vdough 
/dev/mapper/vdough: UUID="93e995d3-e334-4735-98c4-f69820ef22ef" TYPE="xfs"

# 在末行插入
[root@venus ~]# vim /etc/fstab 
UUID="93e995d3-e334-4735-98c4-f69820ef22ef" /vbread xfs defaults,x-systemd.requires=vdo.service 0 0

# 挂载
[root@venus ~]# mount -a
[root@venus ~]# df -Th
Filesystem             Type      Size  Used Avail Use% Mounted on
devtmpfs               devtmpfs  887M     0  887M   0% /dev
tmpfs                  tmpfs     914M     0  914M   0% /dev/shm
tmpfs                  tmpfs     914M   17M  897M   2% /run
tmpfs                  tmpfs     914M     0  914M   0% /sys/fs/cgroup
/dev/vda3              xfs       9.9G  1.7G  8.3G  17% /
/dev/mapper/myvol-vo   ext4      221M  2.1M  204M   1% /reports
/dev/vda2              vfat      100M  6.8M   94M   7% /boot/efi
tmpfs                  tmpfs     183M     0  183M   0% /run/user/0
/dev/mapper/qagroup-qa ext3      929M  1.2M  880M   1% /mnt/qa
/dev/mapper/vdough     xfs        50G  390M   50G   1% /vbread

## 挂载时defaults后的参数通过man vdo 查找fstab找到
For  /etc/fstab  mounting,  in order to make sure the mount waits for the VDO to start, use the mount
       option x-systemd.requires=vdo.service For example, an /etc/fstab line involving VDO could be the fol‐
       lowing:

       /dev/mapper/vdo0 /vdo xfs defaults,x-systemd.requires=vdo.service 0 0

第七题:

第一步:查看默认适合用那种调优

代码语言:javascript复制
[root@venus ~]# tuned-adm recommend
virtual-guest

第二步:设置profile为推荐值

代码语言:javascript复制
[root@venus ~]# tuned-adm profile virtual-guest

第三步:查看是否配置成功

代码语言:javascript复制
[root@venus ~]# tuned-adm active 
Current active profile: virtual-guest

第八题:

配置命令如下:

代码语言:javascript复制
[kiosk@foundation0 ~]$ ssh containers@venus
containers@venus's password: 
Activate the web console with: systemctl enable --now cockpit.socket

This system is not registered to Red Hat Insights. See https://cloud.redhat.com/
To register this system, run: insights-client --register

Last login: Wed Oct 26 19:10:57 2022 from 172.25.250.250
[containers@venus ~]$ sudo -i
[sudo] password for containers: 
[root@venus ~]# mkdir /srv/web
[root@venus ~]# tar xf /home/containers/web-content.tgz -C /srv/web/
[root@venus ~]# chown -R containers: /srv/web/
[root@venus ~]# yum module install container-tools -y

输入:ctrl d 切回普通用户
[root@venus ~]# logout
[containers@venus ~]$ podman login registry.domain250.example.com
Username: admin
Password: redhat321
Login Succeeded!

[containers@venus ~]$ podman run -d --name web -p 8888:8080 
> -v /srv/web:/var/www/:Z -e HTTPD_MPM=event 
> registry.domain250.example.com/rhel8/httpd-24:1-105
检查:
[containers@venus ~]$ curl localhost:8888
Web Content Test
		
[containers@venus ~]$ mkdir -p ~/.config/systemd/user/
[containers@venus ~]$ cd ~/.config/systemd/user/
[containers@venus ~]$ podman generate systemd --name web --files --new
[containers@venus ~]$ podman stop web
[containers@venus ~]$ podman rm web
[containers@venus ~]$ systemctl --user daemon-reload
[containers@venus ~]$ systemctl --user enable --now container-web
[containers@venus ~]$ loginctl enable-linger

新增题目(一)

第一题:配置容器自启动

第二题:配置容器持久存储

代码语言:javascript复制
--安装podman
# yum -y module install container-tools

--设置容器持久化
# man journald.conf
# vim /etc/systemd/journald.conf
[Journal]
Storage=auto 取消注释

--检查机器有没有临时日志信息
# ll -d /run/log/journal
drwxr-sr-x. 3 root systemd-journal 60 Oct 24 17:56 /run/log/journal 

--创建日志信息目录
# mkdir /var/log/journal

--修改目录/var/log/journal的权限和属组
# chown root:systemd-journal /var/log/journal
# chmod 2755 /var/log/journal

--重启systemd-journald服务
# systemctl restart systemd-journald

--复制文件和修改属主
# cp /var/log/journal/*/system.journal /home/walhalla/container_logfile/
# chown -R wallah ~wallah/

--远程登录到wallah用户
# ssh wallah@node1

--登录到仓库
$ podman login registry.lab.example.com
Username: admin
Password: redhat321
Login Succeeded!

--搜索镜像
$ podman search registry.domain250.example.com/
INDEX NAME DESCRIPTION STARS
OFFICIAL AUTOMATED
example.com registry.domain250.example.com/rhel8/rsyslog 0
...

--创建logserver容器
$ podman run -d --name logserver -v /home/wallah/container_logfile:/var/log/journal:Z registry.domain250.example.com/rhel8/rsyslog

--停止容器
podman stop logserver

--检查systemd的状态
$ loginctl enable-linger
$ loginctl show-user wallah

--创建存放进程目录
$ mkdir -p ~/.config/systemd/user/
$ cd ~/.config/systemd/user/

--生成一个进程
$ podman generate systemd -n logserver -f

--设置容器开机自启
$ systemctl --user enable --now container-logserver
$ systemctl --user status container-logserver

# 如果有题目要求需要在容器里执行语句,方法如下:
--先进入容器
$ podman exec -it logserver /bin/bash
然后去执行语句

第三题:sudo免密操作

代码语言:javascript复制
# 编辑/etc/sudoers配置文件,进入第110行
[root@mars ~]#vi /etc/sudoers  110
--vi命令行模式yy把现在选中的这条复制下来,p粘贴
# %wheel ALL=(ALL) NOPASSWD: ALL
--组名改成sysmgrs
%sysmgrs ALL=(ALL) NOPASSWD: ALL

第四题:配置用户密码策略

代码语言:javascript复制
#编辑/etc/login.defs新建用户策略文件,进入第25行
[root@mars ~]# vi /etc/login.defs  25
#修改当行的数字为20
PASS_MAX_DAYS 20

第五题:创建脚本

代码语言:javascript复制
# 创建脚本文件
[root@mars ~]# vim /usr/bin/myresearch
#!/bin/bash
if [! -d /root/myfiles]
then
			mkdir /root/myfiles
fi

find /usr -size -10M -perm -2000 -exec cp -a {} /root/myfiles ;
# 给脚本执行权限
[root@mars ~]#chmod  x /usr/bin/myresearch
[root@mars ~]#/usr/bin/myresearch
[root@mars ~]#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

第六题:设置默认权限

代码语言:javascript复制
# 切换到用户manalo
[root@mars ~]#su - manalo
# 把umask写进用户家目录下的bashrc
[root@mars ~]#echo 'umask 0222'>>.bashrc
# 重新加载.bashrc文件
[root@mars ~]#source .bashrc

新增题目(二)

1、生成环境变量

生成一个环境变量rhcsa,用户在使用这个变量时输出一句话"This is RHCSA!" 自定义一个命令rhce,用户在使用这个变量时输出一句话"This is RHCE!"

代码语言:javascript复制
# 使用export生成环境变量,并写进用户家目录下的bashrc
echo 'export rhcsa="echo This is RHCSA!"' ~/.bashrc

# 自定义命令
su - user
$ echo 'alias rhce="echo This is RHCE!"'>>~/.bash

2、欢迎语

登录到普通用户后提示一句欢迎语'hello word !'或者用户在登陆前显示欢迎语提示

代码语言:javascript复制
配置登录后的欢迎语
重定向欢迎语写入到/etc/motd
# echo 'hello word !' >> /etc/motd 配置登录前的欢迎语
重定向欢迎语写入到/etc/issue
# echo 'hello word !' >> /etc/issue 

0 人点赞