RHCSA考试总结

此生再无相见时 提交于 2020-02-26 22:58:18

环境准备:

1、修改root用户密码:

        重启虚拟机,在开机的时候按 E 键进入 grub2 的引导菜单,找到 linux16 这一行,把 ro 后的所有字符全部删除,然后在 ro 字符后输入 rd.break ,然后再按 ctrl + x 引导系统,获得一个命令行后,如果找不到命令时,按回车键获得命令行
# 输入以下命令:
switch_root: /# mount -o remount,rw /sysroot
switch_root: /# chroot /sysroot

# 修改成题目要求的密码
sh-4.2# echo flectrag|passwd --stdin root
sh-4.2# touch /.autorelabel
sh-4.2# exit
switch_root: /# exit

2、登陆系统,进入图形化界面

# 等待系统出现 login 界面后,输入用户名 root 及密码
# 在提示符后输入 startx 进入图形界面(如果不想进入图型界面也可以,不影响做题)
localhost login:  root
password: [flectrag]
$ startx

3、修改网络配置和主机名

$ nmcli connection modify "System eth0" ipv4.addresses "172.25.0.11/24 172.25.0.254" ipv4.dns 172.25.254.254 ipv4.method manual 
$ nmcli connection up "System eth0"
$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
...
$ hostnamectl set-hostname server0.example.com
$ exit

开始答题:

# 建议使用终端远程连接到虚拟机
[kiosk@foundation0 ~]$ ssh root@172.125.0.11 -X
 

1、配置 SELinux

     SELinux 必须运行在 Enforcing 模式。
$ vim /etc/selinux/config 
$ grep -v ^# /etc/selinux/config 
SELINUX=enforcing
SELINUXTYPE=targeted
### 修改当前模式为enforcing  
$ setenforcing 1
$ sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      28

2、为您的系统配置一个默认的软件仓库

      YUM的软件 http://classroom.example.com/content/rhel7.0/x86_64/dvd/ 将此配置为您的系统的默认软件仓库。
$ vim /etc/yum.repos.d/rhel.repo
$ cat /etc/yum.repos.d/rhel.repo 
[rhcsa]
name = EX200
gpgcheck = 0
baseurl = http://classroom.example.com/content/rhel7.0/x86_64/dvd/

### 清空之前的软件仓库缓存
$ yum clean all
Loaded plugins: langpacks
Cleaning repos: rhcsa
Cleaning up everything

### 刷新软件仓库
$ yum repolist

3、调整逻辑卷的大小

      将逻辑卷vo和其文件系统大小调整到 230M 。 要确保文件系统中的内容保持完整(这表示不能格式化)。
      请注意:分区大小很少能够完全符合要求的大小,所以大小在217M 和 243M 之间都是可以接受的。
### 查看一下逻辑卷名称
$ lsblk 

### 查看一下逻辑卷具体信息
$  df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/vda1      xfs        10G  3.0G  7.1G  30% /
...
/dev/mapper/myvg-myvol ext4  47M   1.1M  42M   3% /mnt/my-data 

### 查看一下逻辑卷大小,能否满足扩展大小
$ vgs /dev/myvg

### 调整逻辑卷vo和文件系统大小到230M
$ lvextend -L 230M /dev/myvg/myvol 
$ resize2fs /dev/myvg/myvol  

### 检查
$ df -Th

4、创建用户账户

创建下列用户,组,和组的成员关系:
一个名为 sysmgrs 的组;
一个名为 natasha 的用户,其属于 sysmgrs , 这个组是该用户的从属组;
一个名为 harry 的用户,属于 sysmgrs , 这个组是该用户的从属组;
一个名为 sarah 的用户,其在系统中没有可交互的 shell ,并且该用户不是 sysmgrs 组的成员;
用户 natasha , harry , sarah 的密码都要设置为 flectrag ;
$ groupadd sysmgrs
$ useradd -G sysmgrs natasha
$ useradd -G sysmgrs harry
$ useradd -s /sbin/nologin sarah
$ echo flectrag|passwd --stdin natasha
$ echo flectrag|passwd --stdin harry
$ echo flectrag|passwd --stdin sarah

5、配置文件 /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 进行读写操作;
$ cp /etc/fstab /var/tmp/fstab 
$ setfacl -m u:natasha:rw,u:harry:---,o::rw /var/tmp/fstab

### 检查
$ getfacl /var/tmp/fstab
#  file: var/tmp/fstab
#  owner:   root
#  group:   root
user::rw-
user:natasha:rw-
user:harry:---
group::r--
mask::rw-
other::rw-

6、配置一个 cron 任务

用户 natasha 必须配置一个定时执行任务,每天在本地时间 14:23 时执行命令 /bin/echo hiya
$ crontab -e -u natasha
#//分 时 天 月 周 [用户] 任务脚本
23 14 * * * /bin/echo hiya
### 检查
$ crontab -l -u natasha
23 14 * * * /bin/echo hiya

7、创建一个共享目录

创建一个工作目录 /home/managers ,特性如下:
/home/managers 目录的所有权是 sysmgrs ;
sysmgrs 组的成员对目录有读写和执行的权限。除此之外的其他所有用户没有任何权限(root用户能够访问系统中的所有文件和目录);
在 /home/managers 目录中创建的文件,其组所有权会自动设置为属于 sysmgrs 组;
$ mkdir /home/managers
$ chgrp sysmgrs /home/managers
$ chmod 2770 /home/managers

8、安装内核的升级

从 http://classroom.example.com/materials 升级正确的内核同时要满足下列要求:
当系统重新启动之后升级的内核要作为默认的内核;
原来的内核要被保留,并且仍然可以正常启动;
### 默认情况下,安装新内核之后,旧内核是保留的,并且是以新内核来启动的
$ rpm -ivh http://classroom.example.com/materials/kernel-3.10.0-123.1.2.el7.x86_64.rpm
### 重启系统
$ systemctl reboot

9、绑定到外部验证服务

系统 classroom.example.com 提供了一个LDAP验证服务。您的系统需要按照以下要求绑定到这个服务上:
验证服务器的基本 DN 是: dc=example, dc=com
账户信息和验证信息都是有 LDAP 提供;
连接需要使用证书进行加密,证书可以在下面的链接中下载:
http://classroom.example.com/pub/example-ca.crt
 
当正确完成配置后,用户 ldapuser0 应该能够登录到您的系统中,但是没有主目录。当您完成 autofs 的题目之后,才能生成主目录。
用户 ldapuser0 的密码是 password
$ yum -y install authconfig-gtk sssd

### 启动图形化界面配置
$ authconfig-gtk &

### LDAP Search Base DN : dc=example, dc=com
### LDAP Server : classroom.example.com
### ☑️ Use Tls to encrypt connections
    点击 Download CA Certificate...
    在弹窗 Certificate URL 框里输入 http://classroom.example.com/pub/example-ca.crt 
      点击 OK 按钮
### 点击 Apply 按钮,等待完成。

### 检查一下sssd服务
$ systemctl status sssd 

 

10、配置 NTP

配置您的系统,让其作为一个 classroom.example.com 的 NTP 客户端;
$ yum -y install system-config-date

### 打开图形化配置界面
$ system-config-date &

### 在窗口 Date and Time 下:
      ☑️ Synchronize date and time over the network
### 把 NTP Servers 列表里的服务地址删掉;
      然后点击 Add 按钮: 添加 classroom.example.com 地址。
         注意:在框里空白处点一下,触发同步地址检查
      最后点击 OK 按钮

### 检查      
$ chronyc sources -v 

11、配置 autofs

按照下述要求配置 autofs 用来自动挂载 LDAP 用户的主目录:
classroom.example.com(172.25.254.254)通过 NFS 版本 3 输出了 /home/guests 目录到您的系统。这个文件系统包含了用户 ldapuser0 的主目录,并且已经预先配置好了;
ldapuser0 用户主目录是 classroom.example.com:/home/guests/ldapuser0 ;
ldapuser0 的主目录应该挂在到本地的 /home/guests/ldapuser0 目录下;
用户对其主目录必须是可写的 ;
ldapuser0 用户的密码是 password ;
$ yum -y install autofs
### 设置开机启动
$ systemctl enable autofs
### 编写一级配置文件
$ vim /etc/auto.master
### 插入如下内容
/home/guests /etc/auto.ldap

### 以auto.misc为模板,一定要加 -a 因为有selinux的策略
$ cp -a /etc/auto.misc /etc/auto.ldap
$ vim /etc/auto.ldap
### 删除已有的 cd 行的内容,插入配置ldapuser0
ldapuser0   -fstype=nfs,v3,rw    classroom.example.com:/home/guests/ldapuser0

### 启动服务
$ systemctl start autofs

### 连接ldapuser0用户,ssh 和 su - 都可以,因为在一台服务上。
$ ssh ldapuser0@server0.example.com
###   输入题目上的密码 password
###   然后输入pwd,查看能否列出自己的家目录
$ pwd 
/home/guests/ldapuser0

### 检查是否加载上了
$ df -Th
...
classroom.example.com:/home/guests/ldapuser0    nfs      10G   3.4G  6.7G 34%    /home/guests/ldapuser0

### 如果要查看版本
$ nfsstat -m
/home/guests/ldapuser0 from classroom.example.com:/home/guests/ldapuser0
Flags: rw,relatime,vers=3,resize=262144,...省略...

12、配置一个用户帐户

创建一个名为 king 的用户,用户ID 是 3533 。 密码是 flectrag 。
$ useradd -u 3533 king
$ echo flectrag|passwd --stdin king

13、在您的系统中添加一个大小为 756M 的swap分区

当您的系统启动时,swap 分区应该可以自动挂载。不要移除或者修改其他已经存在于您的系统中 swap 分区 。
注意:在真正考试的时候,使用的设备是 /dev/vda
$ fdisk /dev/vdb

command (m for help): n 
Partition type :
   p   primary (3 primary , 0 extended , 1 free)  
   e   extended 
### 这里可以看到已经有3个主分区了,这里我们需要将剩余的空间分给扩展分区就可以了,选择 e 或 Enter 
Select (default e) : [Enter]
Using default response e
First sector (616448-20971519,default 616448): [Enter]
Last sector,+sectors or +size{K,M,G} (616448-20971519,default 20971519): [Enter]

### 然后使用 n 添加扩展分区,并分配空间大小为756M,使用 +756M 
command (m for help): n 
First sector (616448-20971519,default 616448): [Enter]
Last sector,+sectors or +size{K,M,G} (616448-20971519,default 20971519):  +756M

### 使用 t 更改类型为 82 
command (m for help): t
Partition number (1-5, default 5): 5
Hex code (type L to list all codes): 82

### 保存并退出
command (m for help): w

### 因为分区之前已经挂在了,这里使用 partprobe 同步一下
$ partprobe
$ lsblk 
....
vdb
|--vdb1 ...
|    |---my--vg-vo ....    lvm   /my_data
|--vdb2
|--vdb3 ...
|--vdb4                    part
|--vdb5                    part

### 使用 mkswap 转变为 swap 交换分区
$ mkswap /dev/vdb5
Setting up swapspace version 1, size = 774140 KiB
no label , UUID=82d1baf8-71a0-44ef-b590-c27c12ed0e87

### 使用 >> 追加符把 blkid 追加到 /etc/fstab 
$ blkid /dev/vdb5 >> /etc/fstab
$ vim /etc/fstab
### 编辑内容
# /dev/vdb5:
UUID="82d1baf8-71a0-44ef-b590-c27c12ed0e87"  swap  swap  defaults    0     0

### 挂载swapon -a
$ swapon -a
### swapon -s 
$ swapon -s
Filename    Type     Size     Used  Priority
/dev/vdb5   Partition 774140  0     -1

14、查找文件

找出所有用户 jacques 拥有的文件,并且把他们拷贝放到 /root/findfiles 目录中;
$ mkdir /root/findfiles
$ find / -user jacques 2>/dev/null -exec cp -rfp {} /root/findfiles/ \;
### 检查
$ cd findfiles/
$ ls -lA 

15、查找一个字符串

在文件 /usr/share/xml/iso-codes/iso_639_3.xml 中查找到所有包含字符串 ng 的行。将找出的行,按照先后顺序拷贝到 /root/list 文件中。/root/list 文件不要包含空行,并且其中的所有行的内容都必须是 /usr/share/xml/iso-codes/iso_639_3.xml 文件中原始行的准确副本。
$ grep ng /usr/share/xml/iso-codes/iso_639_3.xml > /root/list

16、创建一个归档

创建一个名为 /root/backup.tar.gz 的规档文件,其中包含 /usr/local 目录中的内容。tar 归档文件必须使用gzip进行压缩。
$ tar -czf /root/backup.tar.gz /usr/local
### 查看文件
$ file /root/backup.tar.gz

### bz2 归档
$ tar -cjf /root/backup.tar.bz2 /usr/local
### 查看文件
$ file /root/backup.tar.bz2

17、创建一个逻辑卷

根据下面的要求创建一个新的逻辑卷:
逻辑卷命名为 qa ,属于 qagroup 卷组,并且逻辑卷的大小为 60 个物理扩展单元(physical extent);
在 qagroup 卷组中的逻辑卷,其物理扩展单元(physical extent)的大小应为 16M;
使用 ext3 文件系统对新的逻辑卷进行格式化。逻辑卷应该在系统启动的时候,自动挂载在 /mnt/qa 目录下;
 
注意:考试的时候,可能会要求格式化为 vfat 格式。
$ mkdir /mnt/qa
$ fdisk /dev/vdb

### 然后使用 n 添加扩展分区,并分配空间大小,这里将剩余空间全部分配给逻辑卷啦 
command (m for help): n 
First sector (2168832-20971519,default 2168832): [Enter]
Using default value 2168832
Last sector,+sectors or +size{K,M,G} (2168832-20971519,default 20971519):   
Using default value 20971519
Partition 6 of type Linux and of size 9GiB is set 

### 使用 t 更改类型为 8e --逻辑分区类型 ;82 --交换分区类型 
command (m for help): t
Partition number (1-6, default 6): [Enter]
Hex code (type L to list all codes): 8e

### 打印出来看看
command (m for help): p

### 保存并退出
command (m for help): w

$ partprobe
$ pvcreate /dev/vdb6
$ vgcreate -s 16M qagroup /dev/vdb6 
$ lvcreate -n qa -l 60 qagroup
$ mkfs.ext3 /dev/qagroup/qa
$ blkid /dev/qagroup/qa >> /etc/fstab
$ vim /etc/fstab
### 编辑插入的内容
#/dev/qagroup/qa:
UUID="0788a674-5b68-4df1-8061-4ccf944e6096"     /mnt/qa  ext3  defaults    0     0
$ mount -a 
### 检查
$ df -Th
最后重启系统
$ systemctl reboot

 

附件:

环境准备脚本 :

#!/bin/bash
#rhcsa-setup.sh
#配置EX200环境脚本
VMNAME=$(hostname -s)
case $VMNAME in
	server0)
        echo  "更改root用户的密码为随机密码..."
        lab rootpw setup
        
        echo  "设置SELINUX的值Permissive..."
        sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
        
        echo  "创建逻辑卷..."
        parted -s /dev/vdb mklabel msdos
        parted -s /dev/vdb mkpart primary 1 100
        parted -s /dev/vdb mkpart primary 101 200
        parted -s /dev/vdb mkpart primary 201 300
        pvcreate /dev/vdb{1..3}  >/dev/null
        vgcreate  myvg /dev/vdb{1..3} > /dev/null
        lvcreate -n myvol -L 50M myvg >/dev/null
        mkfs.ext4 /dev/myvg/myvol &>/dev/null 
        mkdir /mnt/my_data
        echo  "/dev/myvg/myvol /mnt/my_data ext4 defaults 0 0" >> /etc/fstab
        
        echo  "添加一个普通用户jacques..."
        useradd jacques 
        
        echo  "删除YUM软件仓库..."
        rm -f /etc/yum.d/*.repo
        
        echo  "取消图形界面模式..."
        systemctl set-default multi-user.target &>/dev/null
        
        echo  "恢复到默认主机名..."
        hostnamectl set-hostname localhost
        
        echo "设置完毕并关机..."
        history -c && systemctl poweroff
	;;
        *)
	echo "请运行该脚本在您的server0虚拟机"
	;;
esac

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!