RHCE测试题及答案

系统环境说明:

X 是你的主机号
宿主机:foundationX.ilt.exam ple.com
虚拟机:
ser ver X.exam ple.com IP: 172.25.X.11/24
desktopX.exam ple.com
IP: 172.25.X.10/24
G AT EW AY: 172.25.X.254
DNS: 172.25.254.254
YUM 安装源:
http://content.exam ple.com /r hel7
SEL INUX 要求 enfor cing 模式
fir ew alld 防火墙启动

操作题目:

###########################################################
注意:
1.操作时间 2 小时
2. 以下题目在检测是系统会被重新启动,在重新启动后设定仍然生效
视为正确!!
###########################################################

实验环境配置

server端:

hostnamectl set-hostname server60.example.com
[root@server60~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
NAME=eth0
ONBOOT=yes
BOOTPROTO=none
IPADDR=172.25.60.11
NETMASK=255.255.255.0
GATEWAY=172.25.60.254
DNS1=172.25.254.254

systemctl restart network

配置yum源:
cd /etv/yum.repos.d
把里面的东西可以先清除掉
vim rhel_dvd.repo
[rhel7]
name=rhel7
baseurl=http://content.example.com/rhel7
gpgcheck=0

yum clean all
yum repolist 

查看selinux状态
修改成enforcing(已经是就不用弄了)
vim /etc/sysconfig/selinux
SELINUX=enforcing
reboot后生效

火墙自启动:
systemctl start firewalld
systemctl enable firewalld

desktop端:

hostnamectl set-hostname desktop60.example.com
[root@desktop5 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
NAME=eth0
ONBOOT=yes
BOOTPROTO=none
IPADDR=172.25.60.10
NETMASK=255.255.255.0
GATEWAY=172.25.60.254
DNS1=172.25.254.254

systemctl restart network

剩余同上 

1. 进入系统单用户模式,修改 root 用户密码为 westosexam ,并设置系统默认进入多用户模式

开机时按上下键 ——>按e
删除initrd16的ro前所有东西,修改ro——>rw rd,break
ctrl+x
chroot /sysroot/
passwd 密码为westosexam
或者echo westosexam | passwd --stdin root
touch /.autorelabel
exit两次

在这里插入图片描述
在这里插入图片描述

2. 在 server X 上添加两块虚拟网卡,用以配置主备负载接口 team 0,并分配 ip地址为 172.25.X.100/24

nmcli connection add con-name team0 type team ifname team0 config '{"runner":{"name":"activebackup"}}' ip4 172.25.60.100/24      ##创建team0
nmcli connection add con-name eth0 ifname eth0 type team-slave master team0  ##添加eth0
nmcli connection add con-name eth1 ifname eth1 type team-slave master team0  ##添加eth1
teamdctl team0 stat				    ##查看team0

3. 配置 iSCSI 服务:
a) 在 ser ver X 上安装服务端程序,设置开机自启,防火墙允许此服务
b) 在 vdb 磁 盘上 分一 个 1G 大 小的 LVM 分 区 ,用 以创 建逻 辑卷 组
iSCSI_vg 和一个 100M 大小的逻辑卷 disk1_lv
c)使用 disk1_lv 作为 iSCSI 的后端存储名称为 server X.disk1
d) 定义 IQ N 为 iqn.2015-01.com.exam ple:ser ver X
e)设置 AC L 允许 initiator name 为 iqn.2018-01.com .example:desktopX的客户端可以连接 , 设 置AC L允许initiator name 为iqn.2018-01.com .example:desktopX 的客户端可以连接
f)desktopX 安装客户端程序,连接 server X 的 iSCSI 目标资源到本地,用以创建一个 xfs 文件系统,并开机自动挂载到/iscsidisk

a. 在server X 上安装服务端程序,设置开机自启,防火墙允许此服务

yum install targetcli.noarch -y
systemctl start target
systemctl enable target
firewall-cmd --permanent --add-port=3260/tcp
firewall-cmd --reload

b. 在 vdb 磁 盘上 分一 个 1G 大 小的 LVM 分 区 ,用 以创 建逻 辑卷 组

disk1_lv
fdisk /dev/vdb        n添加分区给+1G,t改为8e,wq保存
partprobe
pvcreate /dev/vdb1
vgcreate iSCSI_vg /dev/vdb1
lvcreate -L 100M -n disk1_lv iSCSI_vg

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

c.使用 disk1_lv 作为 iSCSI 的后端存储名称为 server X.disk1

targetcli
backstores/block create server60.disk1 /dev/iSCSI_vg/disk1_lv

d.定义 IQ N 为 iqn.2015-01.com.exam ple:ser ver X

iscsi/ create iqn.2015-01.com.example:server60

e.设置 AC L 允许 initiator name 为 iqn.2018-01.com .example:desktopX的客户端可以连接 , 设 置AC L允许initiator name 为iqn.2018-01.com .example:desktopX 的客户端可以连接

iscsi/iqn.2015-01.com.example:server6/tpg1/luns create /backstores/block/server6.disk1
iscsi/iqn.2015-01.com.example:server6/tpg1/acls create iqn.2018-01.com.example:desktop6
iscsi/iqn.2015-01.com.example:server6/tpg1/portals create 172.25.60.11
exitt	

在这里插入图片描述
报错Could not create NetworkPortal in configFS

最后一步出现错误额原因是已经存在一个IP和端口。

解决办法:删掉,重新创建。
在这里插入图片描述
f.desktopX 安装客户端程序,连接 server X 的 iSCSI 目标资源到本地,用以创建一个 xfs 文件系统,并开机自动挂载到/iscsidisk

yum install iscsi-initiator-utils.i686 -y
vim /etc/iscsi/initiatorname.iscsi
systemctl restart iscsid.service
systemctl enable iscsid.service
iscsiadm -m discovery -t st -p 172.25.6.11	##查找分享设备
iscsiadm -m node -T iqn.2015-01.com.example:server6 -p 172.25.6.11 -l

##将分区挂载到本地
fdisk -l					##查看挂载分区
mkfs.xfs /dev/sda				##格式化分区
mkdir /iscsidisk	
vim /etc/fstab					##设置开机自动挂载,第一次reboot可能无法启动,断电重启即可
/dev/sda      /iscsidisk xfs    defaults,_netdev        0 0
mount -a

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.配置 NFS 服务
a) 在 ser ver X 上设置服务开机自启动,防火墙允许此服务
b) 在 ser ver X 上共享本地目录/nfsshar e,desktopX 可以读写访问此共享,并且开机自动挂载到/m nt/nfsshar e 目录上
c)在 sever x 上共享目录/autonfs,当 desktop 进入到/nfsauto/ser ver x 后自动挂载 sever x 上共享目录/autonfs 到 desktop 上的/nfsauto/ser ver x 上

a.在 ser ver X 上设置服务开机自启动,防火墙允许此服务

yum install nfs-utils -y
systemctl start nfs-server
systemctl enable nfs-server
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=ntp
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --reload

在这里插入图片描述

b.在 server X 上共享本地目录/nfsshare,desktopX 可以读写访问此共享,并且开机自动挂载到/mnt/nfsshar e 目录上
c.在 sever x 上共享目录/autonfs,当 desktop 进入到/nfsauto/server x 后自动挂载 sever x 上共享目录/autonfs 到 desktop 上的/nfsauto/server x 上

#server虚拟机:
mkdir /nfsshare
mkdir /autonfs
vim /etc/exports
/nfsshare 172.25.5.10(sync,rw)
/autonfs 172.25.5.10(sync,rw)
exportfs -rv
exporting 172.25.5.10:/autonfs
exporting 172.25.5.10:/nfsshare

desktop虚拟机:
yum install nfs-utils autofs -y
systemctl start autofs
systemctl enable autofs.service
showmount -e 172.25.60.11
mkdir /mnt/nfsshare
vim /etc/fstab
172.25.60.11:/nfsshare /mnt/nfsshare nfs defaults 0 0

mount -a
vim /etc/auto.master
8(第八行) /nfsauto /etc/auto.nfs

vim /etc/auto.nfs
server60 -rw 172.25.60.11:/autonfs

systemctl restart autofs.service
cd /nfsauto/server60

在这里插入图片描述
在这里插入图片描述

在showmount命令是可能会出现以下错误:
rpc mount export: RPC: Unable to receive; errno = No route to host

原因是:服务端 mountd服务没有添加到防火墙在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

5.配 SM B 服务:
a) 在 server X 上配置 sm b 共享服务,要求开机自启,防火墙允许此服务
b) 创 建 共 享 目 录 为 /sm bshar e, 共享名 为smbshare, 工 作 组 为WESTOS,marketing 组成员可以读写此共享,不属于 m ar keting 组的人只能读
c)创建 samba-only 用户 brian 和 rob,其中 brian 用户属于 mar keting组,用户密码都是westos
d) 在 desktopX 上建立挂载点/mnt/multiuser 目录,开机自动挂载 server X
上的 smbshare 共享,激活 smb多用户挂载支持。

a.在serverX上配置smb共享服务,要求开机自启,防火墙允许此服务

yum install samba samba-common samba-client.x86_64 -y
systemctl start smb
systemctl enable smb
firewall-cmd --permanent --add-service=samba
firewall-cmd --permanent --add-port=139/tcp
firewall-cmd --permanent --add-port=445/tcp
firewall-cmd --reload 

在这里插入图片描述

b.创建共享目录 为 /smbshar e, 共享名 为smbshare, 工 作 组 为WESTOS,marketing 组成员可以读写此共享,不属于 m ar keting 组的人只能读

mkdir /smbshare
vim /etc/samba/smb.conf
workgroup = WESTOS
 [smbshare]
comment= dir share
path= /smbshare
write list =@marketing

groupadd marketing
chgrp marketing /smbshare/
chmod 2775 /smbshare/
semanage fcontext -a -t samba_share_t '/smbshare(/.*)?'
restorecon -RvvF /smbshare/

在这里插入图片描述
在这里插入图片描述

c.创建 samba-only 用户 brian 和 rob,其中 brian 用户属于 mar keting组,用户密码都是westos

useradd -s /sbin/nologin brian		#指定用户默认sell(此shell特点是用户不能登陆系统,但能使用某些服务)
useradd -s /sbin/nologin rob
echo westos | passwd --stdin brain ##给用户设置密码(stdin:标准输入),这一步也不需要做
echo westos | passwd --stdin rob
usermod -g marketing brian
smbpasswd -a brian                                   ##密码都设置为westos
smbpasswd -a rob
pdbedit -L
systemctl restart smb.service

d.在 desktopX 上建立挂载点/mnt/multiuser 目录,开机自动挂载 server X
上的 smbshare 共享,激活 smb多用户挂载支持。

#desktop:
yum install samba-client.x86_64 cifs-utils.x86_64 -y
mkdir /mnt/multiuser
smbclient //172.25.6.11/smbshare -U brian     ##能否登陆
smbclient //172.25.6.11/smbshare -U rob
vim /root/smbpass
username=brian
password=westos
chmod 600 /root/smbpass 
cifscreds add -u brian 172.25.6.11
vim /etc/fstab 
//172.25.6.11/smbshare /mnt/multiuser cifs credentials=/root/smbpass,sec=ntlmssp,multiuser 0 0

mount -a
df

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

6. 配置 Mariadb 数据库服务:
a) 在 server X 上安装 mariadb 数据库,开机自启动,防火墙允许此服务
b) 给数据库设置 root 管理员密码 为 westos, 限 制 root 用户只能 从
localhost 登录,移除匿名用户,删除 test 库
c)创建一个名为 r edhat 的库,并从备份文件中恢复数据到此数据库,备份
文件的位置在:http://classroom .exam ple.com /pub/mater ials/mariadb/mariadb.dump 。
d) 创建数据库用户 mary,对 redhat 数据库具有查询、插入、更新、删除
权限,密码为 mary_passwd。 natasha 用户可以从 desktopX 上登录数据
库,对 redhat 库拥有查询权限,密码为 natasha_passwd

server服务端:
[root@server60 ~]# yum install mariadb-server -y
[root@server60 ~]# systemctl start mariadb
[root@server60 ~]# systemctl enable mariadb
[root@server60 ~]# firewall-cmd --permanent --add-service=mysql
[root@server60 ~]# firewall-cmd --reload
[root@server60 ~]# netstat -antlupe | grep mysql
[root@server60 ~]# mysql_secure_installation ##第一个回车,再给root用户设置密码为 westos,后面都是y
[root@server60 ~]# vim /etc/my.cnf
10 skip-networking=0
[root@server60 ~]# systemctl restart mariadb.service
[root@server60 ~]# mysql -uroot -pwestos -e “CREATE database redhat;”
[root@server60 ~]# wget http://classroom.example.com/pub/materials/mariadb/m ariadb.dump
[root@server5 ~]# mysql -uroot -pwestos redhat</mnt/mariadb.dump
[root@server5 ~]# mysql -uroot -pwestos
MariaDB [(none)]> CREATE USER mary@‘localhost’ identified by ‘mary_passwd’;
MariaDB [(none)]> GRANT SELECT,INSERT,UPDATE,DROP on redhat.* TO mary@localhost;
MariaDB [(none)]> CREATE USER natasha@‘172.25.60.10’ identified by ‘natasha_passwd’;
MariaDB [(none)]> GRANT SELECT on redhat.* TO natasha@‘172.25.60.10’;

desktop客户端:
[root@desktop60 ~]#  yum install mariadb-server -y
[root@desktop60 ~]#  systemctl start mariadb
[root@desktop60 ~]#  systemctl enable mariadb
[root@desktop60 ~]#  mysql -unatasha -pnatasha_passwd -h 172.25.60.11

7.配置 web 服务:
a) 在 ser ver X 上安装 httpd 服务,要求开机自启动,防火墙允许此服务
b) 配置虚拟主机,监听_default_:80,默认发布目录在/var /www /htm l,日志位置在 logs/default-vhost.log,日志格式为 combined
c)建立虚拟主机wwwX.example.com , 监 听 :80, 默 认 发 布 目 录 在/srv/wwwX.exam ple.com /www ,日志存储在 logs/www X.example.com .log,
日志格式为 com bined。
d) 建立虚拟主机 webappX.example.com ,监听
443,默认发布目录/srv/webappX.exam ple.com /www ,C A 机构证书的位置:http://classroom .example.com /pub/example-ca.cr t,webappX 站点证书和私钥位置在:
http://classroom .exam ple.com /pub/tls/cer ts/webappX.crt
http://classroom .exam ple.com /pub/tls/private/webappX.key
私钥的权限是 0600,在访问 webappX.example.com 的 80 端口时,会被重定向到 443 端口
下载文件:
http://classroom .exam ple.com /pub/materials/webapp.cgi
并在访问域名 https://webappX.exam ple.com 时直接可以看到其运行结果。

(a):
[root@server60 ~]# yum install httpd httpd-manual -y
[root@server60 ~]# systemctl start httpd
[root@server60 ~]# systemctl enable httpd
[root@server60 ~]# firewall-cmd --permanent --add-service=http
[root@server60 ~]# firewall-cmd --reload

(b):
[root@server60 ~]# cd /etc/httpd/conf.d
[root@server60 conf.d]# vim a_default.conf
 <VirtualHost _default_:80>
        DocumentRoot /var/www/html
        CustomLog logs/default-vhost.log combined
</VirtualHost>
[root@server60 conf.d]# vim /var/www/html/index.html
<h1>hello</h1>
[root@server60 conf.d]# systemctl restart httpd

(c):
[root@server60 conf.d]# vim www60.conf
<VirtualHost *:80>
        ServerName www60.example.com
        DocumentRoot /srv/www60.example.com/www
        Customlog logs/www60.example.com.log combined
</VirtualHost>
<Directory "/srv/www60.example.com">
        Require all granted
</Directory>
[root@server60 conf.d]# mkdir /srv/www60.example/www -p
[root@server60 conf.d]# cd /srv/www60.example/www
[root@server60 www]# vim index.html
<h1>www60.example.com</h1>
[root@server60 www]# ls -Zd /var/www/html
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html
[root@server60 www]# semanage fcontext -a -t httpd_sys_content_t ‘/srv(/.*)?’
[root@server60 www]# restorecon -RvvF /srv
[root@server60 www]# systemctl restart httpd

(d):
[root@server60 conf.d]# yum install mod_ssl -y
[root@server60 conf.d]# yum install crypto-utils -y
[root@server60 conf.d]# firewall-cmd --permanent --add-service=https
[root@server60 conf.d]# firewall-cmd --reload
下载证书和钥匙:
wget http://classroom.example.com/pub/example-ca.crt
wget http://classroom.example.com/pub/tls/certs/webapp60.crt
wget http://classroom.example.com/pub/tls/private/webapp60.key
从老师那拷贝 webappX.crt; webappX.key分别拷贝到/etc/pki/tls/certs/和/etc/pki/tls/private/两个目录下
(或者自己生成密钥:执行命令genkey webapp60.example.com)
[root@server60 conf.d]# chmod 0600 webapp60.key
[root@server60 conf.d]# vim /etc/httpd/conf.d/ssl.conf
注释掉100行和107行
101 SSLCertificateFile /etc/pki/tls/certs/webap60.crt
108 SSLCertificateKeyFile /etc/pki/tls/private/webapp60.key
 
[root@server5 conf.d]# vim webapp60.conf
<VirtualHost *:443>
        ServerName webapp60.example.com
        DocumentRoot /srv/webapp60.example.com/www
        Customlog logs/webapp60.example.com.log combined
        SSLEngine on
        SSLCertificateKeyFile /etc/pki/tls/private/webapp60.key
        SSLCertificateFile /etc/pki/tls/certs/webapp60.crt
</VirtualHost>
<Directory "/srv/webapp60.example.com/www">
         Require all granted
 		Options +ExecCGI
         AddHandler cgi-script .cgi
</Directory>
<VirtualHost *:80>
        ServerName webapp60.example.com
        RewriteEngine on
        RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
</VirtualHost>
[root@server60 conf.d]# mkdir /srv/webapp.exa60mple.com/www -p
[root@server60 conf.d]#semanage fcontext -a -t httpd_sys_script_exec_t '/srv/webapp60.example.com/www(/.*)?'
[root@server60 conf.d]# restorecon -RvvF /srv/webapp60.example.com/www
[root@server60 conf.d]# cd /srv/webapp60.example.com/www/
从老师那下载webapp.cgi文件到/srv/webapp5.example.com/www/目录下
[root@game www]# wget http://classroom.example.com/pub/materials/webapp.cgi
[root@game www]# chmod +x webapp60.cgi
[root@game www]# systemctl restart httpd

8.脚本编程要求如下:
a) 运行 scr ipt1.sh dog 输出结果为 cat
b) 运行 scr ipt1.sh cat 输出结果为 dog 除此以外都输出结果为 error

#!/bin/bash
if          [ "$1" = "dog" ]
then
    echo "cat" 

elif        [ "$1" != "dog" -a "$1" = "cat" ]
then
    echo "dog" 

else
    echo "error"
fi

在这里插入图片描述

9.建立用户脚本要求如下:
a) 如果系统存在用户 luck,并且使用/bin/bash,则输出 user ok
b) 如果系统村存在用户 luck,则输出 user exist
c)如果系统不存在用户 luck,则运行 useradd luck 命令来创建
d) 当在系统上运行命令 user cmd 时,将输出指令“echo hello;ls-l” 的结果,并
在重启后也生效。

#!/bin/bash
cat >> /etc/profile<<-EOF
alias usercmd="echo hello;ls -l"
EOF
`source /etc/profile`
id $1  &> /dev/null
SHELL=`grep -E "^$1\>" /etc/passwd | awk -F : '{print $7}'`
if      [ "$?" = "0" -a "$SHELL" = "/bin/bash" ]
then    
        echo user ok

elif    [ -z "$1" ]
then    
        echo "Error : Please input a username"

elif    [ "$?" != "0" -a -z "$SHELL" ]
then
        useradd $1
        echo "user not exist"

elif    [ "$?" != "0" -a "$SHELL" != "/bin/bash" ]
then
        echo "user exist,but it\'s shell not /bin/bash"

fi

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44889616/article/details/92799866