RHCSA题目及最终答案

=========================================

RHCSA考试大致要求(自整理)

  1. 操作都在虚拟上,物理(考试机)可用做测试
  2. 禁止连接到其他考生主机;一经发现成绩为0
  3. 禁止修改密码(除考试要求),考试会提供的密码
  4. 可能需要自己安装图形化界面
  5. 严格按照题目要求,理解题目意思
  6. 满分300分,210分为及格
  7. 本RHCSA模拟题库分为server及desktop
  8. RHCSA实验只需操作desktop
  9. 以下例题为RHEL7的题库,没有任何变化

========================================

配置信息

  • 主机名:desktop.group8.example.com
  • IP地址:172.24.8.10
  • 子网掩码:255.255.255.0
  • 网关:172.24.8.254
  • 名称服务:172.24.8.254

第一题 重置系统密码并完成网络配置

请先完成以下步骤才能继续开始其他题目

重置系统密码:
  • 请修改系统的root账号密码为rrhh9708,确保能够使用root账户登录系统。
根据以下信息完成虚拟机desktop网络的修改:
  • 主机名:desktop.group8.example.com
  • IP地址:172.24.8.10
  • 子网掩码:255.255.255.0
  • 网关:172.24.8.254
  • 名称服务:172.24.8.254

参考答案

1-1. 重启系统,在已开机的desktop虚拟机上,同时按下Ctrl+Alt+Del三键

1-2. 在Grub Boot Loader 倒计时读秒技术前,按下任意键

1-3. 选中默认的的第一个启动条目,并按下键盘字母e键,以便编辑

密码破解1.jpg

1-4. 进入启动条目编辑界面后,通过键盘方向键(↓),找到第一个以linux16开头的行,并通过按下Ctrl+e快速把光标定位到该行的行末,输入<空格键> rd.break

密码破解2.jpg

1-5. 确定没错之后,按下Ctrl+x ,以修改后的配置引导系统,系统将启动到临时内核shell界面,输入以下指令即可修改密码

switch_root :/# mount -o remount,rw / /sysroot
sh-4.2# chroot /sysroot
sh-4.2# echo rrhh9708 | passwd --stdin root
sh-4.2# 
sh-4.2# touch /.autorelabel
sh-4.2# 
sh-4.2# exit
sh-4.2# exit
密码破解3.jpg

注意: 修改密码后,首次重启的时间将会比较长,因为系统将对所有文件进行Selinux 打标,请耐心等待,整个过程并非死机,请勿在打标过程中手动强制再次重启,否则系统将会永久性损坏导致无法开机

selinux标签.jpg

1-6. 成功启动系统后,输入账号root,密码为题目要求修改的密码后,完成网络配置

  • 1-6-1 使用nmcli命令管理网络
[root@localhost ~]# nmcli device                //查看本机网卡设备
[root@localhost ~]# nmcli connection            //查看本机连接
[root@localhost ~]# nmcli connection modify eth0 ipv4.addresses 172.24.8.10/24 ipv4.gateway 172.24.8.254 ipv4.dns 172.24.8.254 ipv4.dns-search group8.example.com ipv4.method manual connection.autoconnect yes connection.interface-name eth0
[root@localhost ~]# nmcli connection reload     //重新加载连接配置信息
[root@localhost ~]# nmcli connection down eth0  //关闭网卡
[root@localhost ~]# nmcli connection up eth0    //重启网卡
[root@localhost ~]# ping  -c5 server            //测试网络连通性
PING server.group8.example.com (172.24.8.254) 56(84) bytes of data.
64 bytes from server.group8.example.com (172.24.8.254): icmp_seq=1 ttl=64 time=0.260 ms
64 bytes from server.group8.example.com (172.24.8.254): icmp_seq=2 ttl=64 time=0.588 ms
64 bytes from server.group8.example.com (172.24.8.254): icmp_seq=3 ttl=64 time=1.18 ms
64 bytes from server.group8.example.com (172.24.8.254): icmp_seq=4 ttl=64 time=0.631 ms
64 bytes from server.group8.example.com (172.24.8.254): icmp_seq=5 ttl=64 time=0.562 ms
--- server.group8.example.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 0.260/0.644/1.180/0.298 ms
nmcli网卡配置.jpg
  • 1-6-2 修改网卡配置管理网络

      redhat系统中,网卡配置文件位于/etc/sysconfig/network-scripts/ifcfg-eth0

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0    
TYPE=Ethernet
BOOTPROTO=none        //将dhcp修改为none或者static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eth0
UUID=4dc8c88c-69b0-4203-a0a6-3671ceb0cd7e
ONBOOT=yes            //将no改为yes确保重启可用
DEVICE=eth0
PEERDNS=yes
PEERROUTES=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPADDR=172.24.8.10      //添加ipaddress信息
PREFIX=24               //添加子网掩码信息,PREFIX或者NETMASK均可
GATEWAY=172.24.8.254    //添加网关信息
DNS1=172.24.8.254       //添加DNS信息
[root@localhost ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.24.8.254 server.group8.example.com      //修改hosts确保dns服务器域名可达
[root@localhost ~]# systemctl restart network   //重启网卡使网络生效
[root@localhost ~]# ping  -c5 server            //测试网络连通性
PING server.group8.example.com (172.24.8.254) 56(84) bytes of data.
64 bytes from server.group8.example.com (172.24.8.254): icmp_seq=1 ttl=64 time=0.260 ms
64 bytes from server.group8.example.com (172.24.8.254): icmp_seq=2 ttl=64 time=0.588 ms
64 bytes from server.group8.example.com (172.24.8.254): icmp_seq=3 ttl=64 time=1.18 ms
64 bytes from server.group8.example.com (172.24.8.254): icmp_seq=4 ttl=64 time=0.631 ms
64 bytes from server.group8.example.com (172.24.8.254): icmp_seq=5 ttl=64 time=0.562 ms
--- server.group8.example.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 0.260/0.644/1.180/0.298 ms

1-7. 设定主机名

[root@localhost ~]# hostnamectl set-hostname desktop.group8.example.com
[root@localhost ~]# bash        //可以执行bash命令,让终端马上看到修改后的主机名
[root@desktop ~]# 


第二题 配置SeLinux

  • SeLinux的工作模式为enforcing
  • 要求系统重启后依然生效

参考答案

[root@desktop ~]# getenforce 
Permissive
[root@desktop ~]# setenforce 1                  //临时设置为enforcing模式
[root@desktop ~]# getenforce  
Enforcing
[root@desktop ~]# vim /etc/sysconfig/selinux    //永久设置为enforcing模式

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=enforcing       //修改成enforcing
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted


第三题 配置YUM仓库

参考答案

  • 3-1 使用yum-config-manager命令管理YUM仓库
[root@desktop ~]# yum-config-manager --add-repo=http://server.group8.example.com/yum        <--- 请直接复制题目要求中的地址,以免输入错误
Loaded plugins: langpacks, product-id
adding repo from: http://server.group8.example.com/yum
[server.group8.example.com_yum]
name=added from: http://server.group8.example.com/yum
baseurl=http://server.group8.example.com/yum
enabled=1                <--- 如果地址输入错误,可以手工删除配置文件/etc/yum.repos.d/*.repo,再次执行上述添加指令
[root@desktop ~]# cat /etc/yum.repos.d/server.group8.example.com_yum.repo 
[server.group8.example.com_yum]
name=added from: http://server.group8.example.com/yum
baseurl=http://server.group8.example.com/yum
enabled=1
[root@desktop ~]# yum repolist
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
server.group8.example.com_yum                                                                                                               | 2.9 kB  00:00:00     
server.group8.example.com_yum/primary_db                                                                                                    | 103 kB  00:00:00     
repo id                                                              repo name                                                                               status
server.group8.example.com_yum                                        added from: http://server.group8.example.com/yum                                        119
repolist: 119
[root@desktop ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release         <--- 为了避免安装软件包因外部源未经校验导致安装中断,可以通过导入校验秘钥方式防止中断 
[root@desktop ~]# 
  • 3-2 修改配置文件配置YUM仓库

      配置文件位于/etc/yum.repos.d

[root@desktop ~]# cat /etc/yum.repos.d/777.repo 
[7]
name=777
baseurl=http://server.group8.example.com/yum        <--- 地址严格按照要求填写
enabled=1
gpgcheck=0
[root@desktop ~]# yum repolist
Loaded plugins: aliases, changelog, fastestmirror, langpacks, tmprepo, verify, versionlock
Loading mirror speeds from cached hostfile
repo id                                                                         repo name                                                                    status
!7                                                                              777                                                                          119
repolist: 119


第四题 调整逻辑卷容量

请按照以下要求调整本地逻辑卷lv0的容量:

  • 调整后的逻辑卷及文件系统大小为290MiB
  • 调整后确保文件系统中己存在的内容不能被破坏
  • 调整后的容量可能出现误差,只要在270MiB - 320MiB之间都是允许的
  • 调整后,保证其挂载目录不改变,文件系统完成

参考答案

[root@desktop ~]# df -Th
Filesystem          Type      Size  Used Avail Use% Mounted on
/dev/sda1           xfs       9.8G  3.3G  6.5G  34% /
devtmpfs            devtmpfs  660M     0  660M   0% /dev
tmpfs               tmpfs     674M     0  674M   0% /dev/shm
tmpfs               tmpfs     674M  8.9M  666M   2% /run
tmpfs               tmpfs     674M     0  674M   0% /sys/fs/cgroup
/dev/mapper/vg0-lv0 ext3      190M  1.6M  179M   1% /home   <--- 当前容量少于290MiB,需要扩容
tmpfs               tmpfs     135M     0  135M   0% /run/user/0
[root@desktop ~]# lvextend -L 290m /dev/vg0/lv0          <--- 这是逻辑卷扩容的关键命令
  Rounding size to boundary between physical extents: 292.00 MiB
  Size of logical volume vg0/lv0 changed from 200.00 MiB (50 extents) to 292.00 MiB (73 extents).
  Logical volume lv0 successfully resized.
[root@desktop ~]# lvs
  LV   VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv0  vg0  -wi-ao---- 292.00m              <--- 扩容成功,容量一般都会有少量误差,属于正常现象
[root@desktop ~]# resize2fs /dev/vg0/lv0    <--- 刷新文件系统的容量信息
resize2fs 1.42.9 (28-Dec-2013)              <--- 注意:如果文件系统是xfs,应该使用xfs_growfs /dev/vg0/lv0
Filesystem at /dev/vg0/lv0 is mounted on /home; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/vg0/lv0 is now 299008 blocks long.
[root@desktop ~]# df -Th
Filesystem          Type      Size  Used Avail Use% Mounted on
/dev/sda1           xfs       9.8G  3.3G  6.5G  34% /
devtmpfs            devtmpfs  660M     0  660M   0% /dev
tmpfs               tmpfs     674M     0  674M   0% /dev/shm
tmpfs               tmpfs     674M  8.9M  666M   2% /run
tmpfs               tmpfs     674M     0  674M   0% /sys/fs/cgroup
/dev/mapper/vg0-lv0 ext3      279M  2.1M  263M   1% /home       <--- 调整成功
tmpfs               tmpfs     135M     0  135M   0% /run/user/0

题目扩展

      如果当前容量比题目要求调整的目标容量要大,那么就需要给逻辑卷裁剪容量

      xfs文件系统不支持缩小

参考步骤

[root@desktop ~]# df -Th
Filesystem          Type      Size  Used Avail Use% Mounted on
/dev/sda1           xfs       9.8G  3.3G  6.5G  34% /
devtmpfs            devtmpfs  660M     0  660M   0% /dev
tmpfs               tmpfs     674M     0  674M   0% /dev/shm
tmpfs               tmpfs     674M  8.9M  666M   2% /run
tmpfs               tmpfs     674M     0  674M   0% /sys/fs/cgroup
/dev/mapper/vg0-lv0 ext3      279M  2.1M  263M   1% /home   <--- 确认容量为279M,现调整为150M
tmpfs               tmpfs     135M     0  135M   0% /run/user/0
[root@desktop ~]# umount /dev/vg0/lv0           <--- 缩小容量前必须先卸载文件系统
[root@desktop ~]# e2fsck /dev/vg0/lv0           <--- 缩小前必须检测文件系统,以免把文件系统的错误扩大
e2fsck 1.42.9 (28-Dec-2013)
/dev/vg0/lv0: clean, 11/75776 files, 15740/299008 blocks
[root@desktop ~]# resize2fs /dev/vg0/lv0 150m           <--- 必须先刷新文件系统的容量信息,这是与扩容相反的,顺序错了就会损坏
resize2fs 1.42.9 (28-Dec-2013)
Please run 'e2fsck -f /dev/vg0/lv0' first.              <--- 如果已经检测过,但执行多次还是这个提示,再次执行的时候添加参数-f
[root@desktop ~]# resize2fs -f /dev/vg0/lv0 150m        <--- 添加参数 -f 强制调整
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg0/lv0 to 153600 (1k) blocks.
The filesystem on /dev/vg0/lv0 is now 153600 blocks long.
[root@desktop ~]# lvreduce -L 150m /dev/vg0/lv0     <--- 再裁剪逻辑卷设备的容量
  Rounding size to boundary between physical extents: 152.00 MiB
  WARNING: Reducing active logical volume to 152.00 MiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv0? [y/n]: y          <--- 需要输入y进行确认
  Size of logical volume vg0/lv0 changed from 292.00 MiB (73 extents) to 152.00 MiB (38 extents).
  Logical volume lv0 successfully resized.
[root@desktop ~]# mount /dev/vg0/lv0 /home/         <--- 如无意外,就能正确挂载
[root@desktop ~]# df -Th
Filesystem          Type      Size  Used Avail Use% Mounted on
/dev/sda1           xfs       9.8G  3.3G  6.5G  34% /
devtmpfs            devtmpfs  660M     0  660M   0% /dev
tmpfs               tmpfs     674M     0  674M   0% /dev/shm
tmpfs               tmpfs     674M  8.9M  666M   2% /run
tmpfs               tmpfs     674M     0  674M   0% /sys/fs/cgroup
tmpfs               tmpfs     135M     0  135M   0% /run/user/0
/dev/mapper/vg0-lv0 ext3      142M  1.6M  133M   2% /home   <--- 缩小容量成功


第五题 创建用户和用户组

请按照以下要求创建用户、用户组:

  • 新建一个名为adminuser的组,组id为40000
  • 新建一个名为natasha的用户,并将adminuser作为其附属组
  • 新建一个名为harry的用户,并将adminuser作为其附属组
  • 新建一个名为sarah的用户,其不属于adminuser组,其在系统中没有任何可交互的shell
  • natasha、harry和sarah三个用户的密码均设置为redhat

参考答案

[root@desktop ~]# groupadd -g 40000 adminuser
[root@desktop ~]# useradd -G adminuser natasha
[root@desktop ~]# useradd -G adminuser harry
[root@desktop ~]# useradd -s /sbin/nologin sarah
[root@desktop ~]# echo redhat | passwd --stdin natasha
Changing password for user natasha.
passwd: all authentication tokens updated successfully.
[root@desktop ~]# echo redhat | passwd --stdin harry
Changing password for user harry.
passwd: all authentication tokens updated successfully.
[root@desktop ~]# echo redhat | passwd --stdin sarah
Changing password for user sarah.
passwd: all authentication tokens updated successfully.


第六题 配置文件/var/tmp/fstab的权限

复制文件/etc/fstab到/var/tmp目录下,并按照以下要求配置/var/tmp/fstab文件的权限:

  • 该文件的所属人为root
  • 该文件的所属组为root
  • 该文件对任何人均没有执行权限
  • 用户natasha对该文件有读和写的权限
  • 用户harry对该文件既不能读也不能写
  • 所有其他用户(包括当前已有用户及未来创建的用户)对该文件都有读的权限

参考答案

[root@desktop ~]# cp /etc/fstab /var/tmp/           <--- 注意cp和mv的区别
[root@desktop ~]# chown root:root /var/tmp/fstab    <--- 更改文件所有者和所有组 
[root@desktop ~]# chmod a-x /var/tmp/fstab          <--- 所有人不能执行该文件
[root@desktop ~]# setfacl -m u:natasha:rw,u:harry:--- /var/tmp/fstab    <--- 对两个用户分别设置不同的权限
[root@desktop ~]# 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--

第七题 建立计划任务

对natasha用户建立计划任务,要求在本地时间的每天14 : 23执行以下命令:

  • /bin/echo "rhcsa"

参考答案

[root@desktop ~]# crontab -e -u natasha
23 14 * * * /bin/echo "rhcsa"

解析:每一列对应的含义

分钟 小时 每天 每月 每星期
23 14 * * *


第八题 创建一个共享目录

在/home目录下创建名为admins的子目录,并按以下要求设置权限:

  • /home/ admins目录的所属组为adminuser
  • 该目录对adminuser 组的成员可读可执行可写,但对其他用户没有任何权限,但root不受限制
  • 在/home/admins目录下所创建的文件的所属组自动被设置为adminuser

参考答案

[root@desktop ~]# mkdir /home/admins            
[root@desktop ~]# chgrp adminuser /home/admins/     <--- 更改所属组
[root@desktop ~]# chmod g=rw,o=--- /home/admins/    <--- 修改权限
[root@desktop ~]# chmod g+s /home/admins/           <--- 设定特权位,实现第三个要求
[root@desktop ~]# ls -ld /home/admins/
drwxrwS---. 2 root adminuser 1024 Mar 31 18:08 /home/admins/    <--- 查看最终属性


第九题 升级系统内核

http://server.group8. example.com/pub/下找到需要升级的内核 ,同时满足下列要求:

  • 当系统重新启动之后,升级的内核要作为默认的内核
  • 原来的内核要被保留,并且仍然可以正常启动

参考答案

[root@desktop ~]# curl --silent http://server.group8.example.com/pub/ | grep kernel                 <--- 通过命令快速获取内核包的地址信息
<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="kernel-3.10.0-327.4.5.el7.x86_64.rpm">kernel-3.10.0-327.4...&gt;</a></td><td align="right">2016-12-30 16:48  </td><td align="right"> 33M</td><td>&nbsp;</td></tr>
[root@desktop ~]# yum install -y http://server.group8.example.com/pub/kernel-3.10.0-327.4.5.el7.x86_64.rpm  <--- 使用yum命令安装内核
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
kernel-3.10.0-327.4.5.el7.x86_64.rpm                                                                                                        |  33 MB  00:00:01     
Examining /var/tmp/yum-root-Un01d_/kernel-3.10.0-327.4.5.el7.x86_64.rpm: kernel-3.10.0-327.4.5.el7.x86_64
Marking /var/tmp/yum-root-Un01d_/kernel-3.10.0-327.4.5.el7.x86_64.rpm as an update to kernel-3.10.0-123.el7.x86_64
Marking /var/tmp/yum-root-Un01d_/kernel-3.10.0-327.4.5.el7.x86_64.rpm as an update to kernel-3.10.0-327.el7.x86_64
Resolving Dependencies
--> Running transaction check
---> Package kernel.x86_64 0:3.10.0-327.4.5.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===================================================================================================================================================================
 Package                      Arch                         Version                                   Repository                                               Size
===================================================================================================================================================================
Installing:
 kernel                       x86_64                       3.10.0-327.4.5.el7                        /kernel-3.10.0-327.4.5.el7.x86_64                       136 M

Transaction Summary
===================================================================================================================================================================
Install  1 Package

Total size: 136 M
Installed size: 136 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : kernel-3.10.0-327.4.5.el7.x86_64                                                                                                                1/1 
  Verifying  : kernel-3.10.0-327.4.5.el7.x86_64                                                                                                                1/1 

Installed:
  kernel.x86_64 0:3.10.0-327.4.5.el7                                                                                                                               

Complete!
[root@desktop ~]# grub2-editenv list        <--- 验证
saved_entry=Red Hat Enterprise Linux Server (3.10.0-327.4.5.el7.x86_64) 7.2 (Maipo)


第十题 绑定外部验证服务

系统server.group8.example.com提供了一个LDAP验证服务,您的系统需要按照以下要求绑定到这个服务上:

  • 验证服务器的基本DN是: dc=group8, dc=example, dc=com
  • 账户信息和验证信息都是由LDAP提供连接需要使用证书加密,整数可以在下面的链接中下载:http://server.group8.example.com/pub/cacert.pem

当正确完成配置后,用户thales可以登录系统,登录密码是redhat

参考答案

[root@desktop ~]# yum install -y sssd authconfig-gtk.x86_64     <--- 安装ldap验证所需的服务(sssd必须要有)
 mkdir /etc/openldap/cacerts/               <--- 首次使用,必须先自己建立保存证书的目录(或者运行authconfig-tui自动生成)
[root@desktop ~]# wget -O /etc/openldap/cacerts/ca.pem http://server.group8.example.com/pub/cacert.pem      <--- 下载证书,保存的证书后缀名必须是.pem
--2020-03-31 18:43:51--  http://server.group8.example.com/pub/cacert.pem
Resolving server.group8.example.com (server.group8.example.com)... 172.24.8.254
Connecting to server.group8.example.com (server.group8.example.com)|172.24.8.254|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1350 (1.3K)
Saving to: ‘/etc/openldap/cacerts/ca.pem’

100%[=========================================================================================================================>] 1,350       --.-K/s   in 0s      

2020-03-31 18:43:51 (213 MB/s) - ‘/etc/openldap/cacerts/ca.pem’ saved [1350/1350]
[root@desktop ~]# authconfig-tui
authconfig-tui1.jpg
authconfig-tui2.jpg
[root@desktop ~]# getent passwd thales
thales:*:2001:2001:thales:/home/ldap/thales:/bin/bash

报错: 如果无法获得thales用户的信息,或者在执行authconfig-tui命令之后报错

排错: 在确保上面填写的信息与题目提供的信息一致正确的前提下,一般sssd服务无法正确启动导致的,而导致该服务启动失败一般是时间没有和服务器同步

解决: 先完成后面ntp时间同步的题目,然后重新启动sssd服务

[root@desktop ~]# systemctl restart sssd


第十一题 配置autofs

按照下述要求配置autofs用来自动挂载LDAP用户的主目录:

  • server.group8.examp1e.com通过NFS输出了/rhome目录到您的系统,这个文件系统包含了用户thales的主目录,并且己经预先配置好了。
  • thales用户的主目录是:server.group8.example.com:/rhome/thales
  • thales用户的主目录应该挂载到本地的/home/ldap/thales
  • 用户对其主目录必须是读写的
  • thales的登录密码是redhat

参考答案

[root@desktop ~]# yum install -y autofs 
[root@desktop ~]# vim /etc/auto.master
#
# Sample auto.master file
# This is a 'master' automounter map and it has the following format:
# mount-point [map-type[,format]:]map [options]
# For details of the format look at auto.master(5).
#
/misc   /etc/auto.misc
/home/ldap      /etc/auto.ldap                                  <--- 当系统访问以/home/ldap路径开头的资源时,读取/etc/*.ldap配置文件进行自动挂载
[root@desktop ~]# vim /etc/auto.ldap
*       -rw,sync,soft   server.group8.eample.com:/rhome/&       <--- 注意-rw前面的“-”符号,还有最后“/&”

配置含义:当访问/home/ldap/* (*代表任意路径)的资源时,自动挂载到
server.group8.example.com:/rhome/对应路径的资源
[root@desktop ldap]# ssh thales@localhost                       <--- 登录验证
thales@localhost's password: 
Last login: Tue Mar 31 19:37:33 2020 from localhost
[thales@desktop ~]$ ls
file1  file2  file3
[thales@desktop ~]$ pwd
/home/ldap/thales
[thales@desktop ~]$ logout      


第十二题 配置NTP

配置您的系统时间与服务器server.group8.example.com同步,要求系统重启后依然生效

提示: redhat 7.0 以后的版本,时间同步采用chrony服务来替代原有的ntp服务,该服务默认已安装

参考答案

[root@desktop ~]# 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       <--- 把这里原来的4行注释掉,考试试环境根本无法与这四台服务器通信
server 1.rhel.pool.ntp.org iburst       <--- 把它们留着这里只会影响同步的效率
server server.group8.example.com iburst <--- 把题目要求添加的时间服务器地址添加到这里
[root@desktop ~]# systemctl enable chronyd
[root@desktop ~]# systemctl restart chronyd
[root@desktop ~]# chronyc               <--- 手工同步时间
chrony version 2.1.1
Copyright (C) 1997-2003, 2007, 2009-2015 Richard P. Curnow and others
chrony comes with ABSOLUTELY NO WARRANTY.  This is free software, and
you are welcome to redistribute it under certain conditions.  See the
GNU General Public License version 2 for details.
chronyc> waitsync                       <--- 立刻同步时间
try: 1, refid: 172.24.8.254, correction: 0.000000053, skew: 160.854     <--- 看到类似的返回,说明已经成功同步了
chronyc> exit



第十三题 创建一个归档

创建一个名为/root/sysconfig.tar.bz2的归档文件,其中包含/etc/sysconfig目录中的内容,tar归档文件必须使用bzip2进行压缩

参考答案

[root@desktop ~]# tar -jcf /root/sysconfig.tar.bz2 /etc/sysconfig/

参数解析:

      -c 使用bzip2压缩归档文件

      如果考试的时候,要求使用gzip压缩,那么参数应该是-z, 也就是-zcf

      如果记不住,可以#man tar



第十四题 配置一个用户帐号

请创建一个名为jay的用户, 并满足以下要求:

  • 用户id为3456
  • 密码为glegunge

参考答案

[root@desktop ~]# useradd -u 3456 jay
[root@desktop ~]# echo glegunge | passwd --stdin jay
Changing password for user jay.
passwd: all authentication tokens updated successfully.


第十五题 添加一个swap分区

在您的系统中添加一个新的swap分区,并满足以下要求:

  • swap分区容量为512MiB
  • 当您的系统启动时,swap分区应该可以自动挂载
    不要移除或者修改其他已经存在于您的系统中的swap分区

参考答案

[root@desktop ~]# lsblk             <--- 查看磁盘
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0   20G  0 disk 
├─sda1        8:1    0  9.8G  0 part /
├─sda2        8:2    0    2G  0 part [SWAP]
└─sda3        8:3    0  500M  0 part 
  └─vg0-lv0 253:0    0  152M  0 lvm  /home
[root@desktop ~]# fdisk /dev/sda    <--- 注意:考试使用的是kvm虚拟机,所以硬盘是/dev/vda
Welcome to fdisk (util-linux 2.23.2).

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
Select (default e): e                   <--- 考试时注意磁盘分区,目前环境无法再分主分区,所以我们把磁盘剩余空间都首先划分为扩展分区
Selected partition 4
First sector (25602048-41943039, default 25602048):     <--- 直接回车,默认使用剩余空间的起始柱面 
Using default value 25602048
Last sector, +sectors or +size{K,M,G} (25602048-41943039, default 41943039): 
Using default value 41943039
Partition 4 of type Extended and of size 7.8 GiB is set <--- 把硬盘的剩余的所有空间划分给扩展分区

Command (m for help): n                 <--- 在刚刚创建的扩展分区上划分新的逻辑分区
All primary partitions are in use
Adding logical partition 5              <--- 分区编号自动设置为5
First sector (25604096-41943039, default 25604096):     <--- 直接回车,设置分区起始柱面
Using default value 25604096
Last sector, +sectors or +size{K,M,G} (25604096-41943039, default 41943039): +512M  <--- 通过输入容量,设定分区的容量大小(容量严格为大写)
Partition 5 of type Linux and of size 512 MiB is set

Command (m for help): t                         <--- 修改分区的默认类型标记
Partition number (1-5, default 5):              <--- 直接回车,修改刚创建的编号为5的分区,如果不是,可以自行填写分区编号
Hex code (type L to list all codes): 82         <--- 82代表swap类型
Changed type of partition 'Linux' to 'Linux swap / Solaris'

Command (m for help): p                         <--- 查看分区结果

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 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
Disk label type: dos
Disk identifier: 0x000bffad

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    20482047    10240000   83  Linux
/dev/sda2        20482048    24578047     2048000   82  Linux swap / Solaris
/dev/sda3        24578048    25602047      512000   83  Linux
/dev/sda4        25602048    41943039     8170496    5  Extended        <--- 这是新创建的扩展分区
/dev/sda5        25604096    26652671      524288   82  Linux swap / Solaris    <--- 这是新创建的swap分区

Command (m for help): w     
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@desktop ~]# 
[root@desktop ~]# partprobe                         <--- 同步磁盘信息
[root@desktop ~]# ls -l /dev/sda5                   <--- 如果生成设备文件失败可以使用#partx -a /dev/sda再次生成,如果还失败就重启系统                    
brw-rw----. 1 root disk 8, 5 Mar 31 20:18 /dev/sda5
[root@desktop ~]# mkswap /dev/sda5                  <--- 将该分区格式化为swap格式
Setting up swapspace version 1, size = 524284 KiB
no label, UUID=88a10116-1fd6-43b9-88c4-75a0869c58d0 <--- 复制这个UUID,如果想再次查看uuid可以使用# blkid /dev/sda5查看
[root@desktop ~]# swapon /dev/sda5                  <--- 启用该分区
[root@desktop ~]# swapon -s                         <--- 查看swap分区
Filename                                Type            Size    Used    Priority
/dev/sda2                               partition       2047996 0       -1
/dev/sda5                               partition       524284  0       -2
[root@desktop ~]# vim /etc/fstab                    <--- 写入配置文件,开机自动挂载

#
# /etc/fstab
# Created by anaconda on Mon Jul 18 19:38:41 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=3c6e20fa-3e12-42ca-8dba-b12eee74e43e /                       xfs     defaults        1 1
UUID=ff7d2e6d-c2d7-46a0-af09-70c85898ab46 swap                    swap    defaults        0 0
/dev/mapper/vg0-lv0 /home ext3 defaults 0 0
UUID=88a10116-1fd6-43b9-88c4-75a0869c58d0 swap                    swap    defaults        0 0       <--- 增加新的swap分区的挂载设定

提示: 您当然也可以把UUID替换成/dev/sda5 (考试的时候是/dev/vda5或其他),但是实际工作中,强烈建议使用UUID挂载



第十六题 查找文件

请把系统上拥有者为jay用户的所有文件,并将其拷贝到/root/findfiles目录中

参考答案

[root@desktop ~]# mkdir /root/findfiles
[root@desktop ~]# find / -user jay -exec cp -a {} /root/findfiles/ \;


第十七题 查找一个字符串

/usr/share/dict/words文件中所有包含seismic字符串的行找到,并将这些行按照原始文件中的顺序存放到/root/wordlist中,/root/wordlist文件不能包含空行

参考答案

[root@desktop ~]# grep seismic /usr/share/dict/words | grep -v ^$ > /root/wordlist      <--- "grep -V ^$" 是为了保证文件中不能包含空行


第十八题 创建一个逻辑卷

请按下列要求创建一个新的逻辑卷:

  • 创建一个名为datastore的卷组,卷组的PE尺寸为16MiB
  • 逻辑卷的名字为database,所属卷组为datastore,该逻辑卷由50个PE组成
  • 将新建的逻辑卷格式化为xfs文件系统,要求系统启动时,该逻辑卷能被自动挂载到/mnt/database目录

参考答案

[root@desktop ~]# fdisk  /dev/sda 
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): n
All primary partitions are in use
Adding logical partition 6
First sector (26654720-41943039, default 26654720):                             <--- 直接回车,使用默认起始柱面
Using default value 26654720
Last sector, +sectors or +size{K,M,G} (26654720-41943039, default 41943039):    <--- 直接回车,使用默认结束柱面,用完所有空间
Using default value 41943039
Partition 6 of type Linux and of size 7.3 GiB is set

Command (m for help): t                             <--- 修改分区类型标记
Partition number (1-6, default 6):                  <--- 直接回车,修改刚刚划分的分区
Hex code (type L to list all codes): 8e             <--- 8e代表把类型修改为Linux LVM
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): w                             <--- 保存分区设定
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@desktop ~]# partprobe 
[root@desktop ~]# ls -l /dev/sda6
brw-rw----. 1 root disk 8, 6 Mar 31 20:40 /dev/sda6
[root@desktop ~]# pvcreate /dev/sda6                    <--- 创建物理卷
  Physical volume "/dev/sda6" successfully created
[root@desktop ~]# vgcreate -s 16m datastore /dev/sda6   <--- 按照题目要求将PE设置为16M
  Volume group "datastore" successfully created
[root@desktop ~]# vgdisplay datastore 
  --- Volume group ---
  VG Name               datastore
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               7.28 GiB
  PE Size               16.00 MiB                     <--- 确定PE与题目要求一致
  Total PE              466
  Alloc PE / Size       0 / 0   
  Free  PE / Size       466 / 7.28 GiB
  VG UUID               YKZKQd-sTEi-PXhE-tw3d-5kzW-0htx-0f7gcm
   
[root@desktop ~]# lvcreate -n database -l 50 datastore<--- 参数小写字母-l,50代表使用50个PE的容量
  Logical volume "database" created.
[root@desktop ~]# lvs
  LV       VG        Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  database datastore -wi-a----- 800.00m               <--- 50x16M=800M                                                  
  lv0      vg0       -wi-ao---- 152.00m                                                    
[root@desktop ~]# mkfs.xfs /dev/datastore/database    <--- 根据题目要求,格式化成对应的文件系统格式 
meta-data=/dev/datastore/database isize=256    agcount=4, agsize=51200 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=204800, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=853, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@desktop ~]# mkdir /mnt/database
[root@desktop ~]# blkid /dev/datastore/database
/dev/datastore/database: UUID="2a5530be-00c6-465d-a884-9b232ac01991" TYPE="xfs" 
[root@desktop ~]# vim /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Mon Jul 18 19:38:41 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=3c6e20fa-3e12-42ca-8dba-b12eee74e43e /                       xfs     defaults        1 1
UUID=ff7d2e6d-c2d7-46a0-af09-70c85898ab46 swap                    swap    defaults        0 0
/dev/mapper/vg0-lv0 /home ext3 defaults 0 0
UUID=88a10116-1fd6-43b9-88c4-75a0869c58d0 swap                    swap    defaults        0 0
UUID=2a5530be-00c6-465d-a884-9b232ac01991 /mnt/database           xfs     defaults        0 0       <--- 增加挂载设定
[root@desktop ~]# mount -a
[root@desktop ~]# df -Th
Filesystem                     Type      Size  Used Avail Use% Mounted on
/dev/sda1                      xfs       9.8G  3.6G  6.3G  36% /
devtmpfs                       devtmpfs  660M     0  660M   0% /dev
tmpfs                          tmpfs     674M     0  674M   0% /dev/shm
tmpfs                          tmpfs     674M  8.9M  666M   2% /run
tmpfs                          tmpfs     674M     0  674M   0% /sys/fs/cgroup
tmpfs                          tmpfs     135M     0  135M   0% /run/user/0
/dev/mapper/vg0-lv0            ext3      142M  1.6M  133M   2% /home
/dev/mapper/datastore-database xfs       797M   33M  765M   5% /mnt/database                        <--- 检查符合题目要求

至此,所有题目完成,必须重启虚拟机,以便检测所有考试操作是否在系统重启后仍然生效。

脚本检测:
[root@desktop ~]# grade
Input password: 
###### Grading the No.1 question ######
Checking root password...      PASS************* 
Checking your hostname...      PASS************* 

###### Grading the No.2 question ######
Check Set Selinux     PASS************* 

###### Grading the No.3 question ######
Check yum repo config     PASS************* 
Check yum repo enabled     PASS************* 

###### Grading the No.4 question ######
Checking size of lv0 LV...     PASS************* 
lv0 LV is too small
Checking size of lv0 filesystem...     PASS************* 
lv0 filesystem is too small

###### Grading the No.5 question ######
Check Group adminuser create     PASS************* 
Check User natasha create     PASS************* 
Check User harry create     PASS************* 
Check User sarah create     PASS************* 
Check natasha's Password     PASS************* 
Check harry's Password     PASS************* 
Check sarah's Password     PASS************* 

###### Grading the No.6 question ######
Check Set file or directory     PASS************* 

###### Grading the No.7 question ######
Check crontab service     PASS************* 
Check Set user crontab     PASS************* 

###### Grading the No.8 question ######
Check Set directory gid     PASS************* 

###### Grading the No.9 question ######
Check Install new Kernel     PASS************* 

###### Grading the No.10 question ######
Check Use LDAP and Kerberos     PASS************* 

###### Grading the No.11 question ######
Check AUTOFS     PASS************* 

###### Grading the No.12 question ######
Check Time sync server set     PASS************* 

###### Grading the No.13 question ######
Check sysconfig tar     PASS************* 

###### Grading the No.14 question ######
Check user jay create     PASS************* 
Check user jay password     PASS************* 

###### Grading the No.15 question ######
Check swap partision     PASS************* 
Check Swap partision id     PASS************* 
Check swap persitent mount in fstab     PASS************* 

###### Grading the No.16 question ######
Check jay file     PASS************* 

###### Grading the No.17 question ######
Check grep result file     PASS************* 

###### Grading the No.18 question ######
Check create LVM VG datastore    PASS************* 
Check create LVM VG size    PASS************* 
Check create LVM VG PE size    PASS************* 
Check create LVM LV database    PASS************* 
Check create LVM LV size    PASS************* 
Check mount file system    PASS************* 
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,681评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,710评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,623评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,202评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,232评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,368评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,795评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,461评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,647评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,476评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,525评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,226评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,785评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,857评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,090评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,647评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,215评论 2 341

推荐阅读更多精彩内容