一、RHCSA题目详解

0.虚拟机root用户密码,启动时停留在引导界面

rhcsa容器题目多少分 rhcsa题库及答案_desktop

0.1进入如下菜单时按e进入编辑模式

rhcsa容器题目多少分 rhcsa题库及答案_desktop_02

 0.2光标向下移动,在linux16一行的末尾追加rd.break,打断系统正常进入程序

rhcsa容器题目多少分 rhcsa题库及答案_desktop_03

 0.3然后按ctrl+x启动,最终会停留在修复模式

 

rhcsa容器题目多少分 rhcsa题库及答案_desktop_04

输入指令mount,查看当前sysroot(根目录)的挂载,发现是ro只读的,为了让一会我们执行的修改密码指令能够录入系统,我们需要把此sysroot挂载改为rw

 

rhcsa容器题目多少分 rhcsa题库及答案_ci_05

 mout -o remount,rw /sysroot/

rhcsa容器题目多少分 rhcsa题库及答案_ci_06

输入指令chroot /sysroot,修改根目录位置,进入sh指令集功能。

rhcsa容器题目多少分 rhcsa题库及答案_rhcsa容器题目多少分_07

输入passwd修改密码,退回修复模式,reboot重启系统,修改root密码操作完毕

passwd root
xxx
sh-4.2# touch /.autorelabel
sh-4.2# sync
exit
switch_root:/# reboot

 1. IP地址配置(主机名和IP地址参数以考题为准,)
主机名:system.group3.example.com

IP: 172.25.3.10/255.255.255.0

网关: 172.25.3.254

DNS: 172.25.3.250

使用nmtui图形方式配置IP,DNS

 

rhcsa容器题目多少分 rhcsa题库及答案_逻辑卷_08

rhcsa容器题目多少分 rhcsa题库及答案_desktop_09

然后选择Edit a connection

rhcsa容器题目多少分 rhcsa题库及答案_逻辑卷_10

然后Edit编辑eth0接口

 

rhcsa容器题目多少分 rhcsa题库及答案_ci_11

光标移动到右下角,选ok,

 

rhcsa容器题目多少分 rhcsa题库及答案_ci_12

Quit退出编辑

在bash中输入指令重启网络服务 采用ifconfig命令可以查看ip是否已经修改成功

rhcsa容器题目多少分 rhcsa题库及答案_rhcsa容器题目多少分_13

然后设置主机名 #nmtui

 

rhcsa容器题目多少分 rhcsa题库及答案_desktop_14

rhcsa容器题目多少分 rhcsa题库及答案_逻辑卷_15

2. 配置SElinux开机默认为Enforcing模式
vim /etc/sysconfig/selinux SELINEX=enforcing setenforce 1 验证:getenforce -> Enforcing
3. 为您的系统配置一个默认的软件仓库,软件仓库的地址以考试实际数据为主。

 vim /etc/yum.repos.d/rhel.repo

rhcsa容器题目多少分 rhcsa题库及答案_逻辑卷_16


004:调整逻辑卷容量

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

 调整后的逻辑卷及文件系统大小为770MB

 调整后确保文件中已经存在的内容不能被破坏

 调整后的容量可能出现误差,只要在730M~805M 之间都是允许的

 调整后,保证其挂载目录不改变,文件系统完成

解题:

[root@server ~]# df -Th  查看题目指定的逻辑卷lvm1 的现有容量
[root@server ~]# fdisk /dev/sdb  建立新分区
[root@server ~]# pvcreate /dev/sdb2  添加到lvm1
[root@server ~]# vgextend vg1 /dev/sdb2
[root@server ~]# lvextend -L 770M /dev/vg1/lvm1
[root@server ~]#
[root@server ~]# xfs_growfs /dev/vg1/lvm1 # 针对xfs 文件系统
[root@server ~]# resize2fs /dev/vg1/lvm1 # 针对ext4 文件系统
[root@server ~]# df -Th

 5. 添加3个用户,用户harry,natasha,tom,要求harry,natasha用户的附加组为admin组,tom用户的登陆shell为非交互式shell,3个账号密码均为redhat

 

rhcsa容器题目多少分 rhcsa题库及答案_ci_17

 6. 在/home 下创建一个目录,名为 admins,要求所属组为 admin 组,组成员可以读写, 其它用户没有任何权限,同组成员在目录下创建的文件的所属组也为 admin 组

备注:大家记住如果一个用户对目录有读写权限,一定也要设置执行权限,对目录来说,如果一个用户对目录没有执行权限,那么这个人就不能 cd 进该目录了
mkdir -p /home/admins
chgrp admin /home/admins
chmod 770 /home/admins
chmod g+s /home/admins
检查 ls -ld /home/admins

 7. 拷贝文件/etc/fstab 到/var/tmp/fstab,配置文件/var/tmp/fstab 的权限
1) 文件/var/tmp/fstab 的拥有者是 root 用户
2) 文件/var/tmp/fstab 属于 root 组
3) 文件/var/tmp/fstab 对任何人都不可执行
4) 用户 natasha 能够对文件/var/tmp/fstab 具有读和写的权限
5) 用户 harry 对文件/var/tmp/fstab 既不能读,也不能写
6) 所有其他用户(当前的和将来的)能够对文件/var/tmp/fstab 进行读操作。

cp /etc/fstab /var/tmp/
chown root:root /var/tmp/fstab
chmod rgo-x /var/tmp/fstab
setfacl -m u:natasha:rw /var/tmp/fstab
setfacl -m u:harry:--- /var/tmp/fstab
chmod o+r /var/tmp/fstab

 8. 配置 harry 任务计划每天的 14:23 分,执行 echo hello 命令

[root@mail ~]# crontab -e -u harry
34 23 * * * /bin/echo hello

然后保存退出
可以用下面的方法验证
crontab -l -u harry
34 23 * * * /bin/echo hello

 9. 配置一个共享目录 nfs 服务器,将/common 目录共享给 group3.example.com 域, 要求/common 可以读写。

mkdir -p /common
vim /etc/exports
/common 172.25.3.0/255.255.255.0(rw,sync)
systemctl enable nfs-server-service
systemctl restart nfs-server-service

 10. 升级内核为 2.6.32-71.7.1 ,内核软件包在ftp://172.25.3.254/pub/rhel6/Errata/rhel-x86_64-server-6/kernel-2.6.3
2-71.7.1.el6.x86_64.rpm,并保留旧的内核通过 wget 或者 Firefox 浏览器下载 rpm 安装包,双击或通过 rpm 命令执行安装即可。重启
后内核自动更新为最新的,并保留以往的内核。

rhcsa容器题目多少分 rhcsa题库及答案_rhcsa容器题目多少分_18

11. 配置你的主机账号和密码验证方式为 LDAP 方式

Basedn:dc=example ,dc=com

Ldapserver: instructor.example.com
通过 ldapuser15可以登录成功,ldapuser15密码为:password。证书可以从以下目录下载:http://instructor.example.com/pub/ EXAMPLE-CA-CERT,用户登录后是没有宿主目录
的,除非你配置了后续题目中的 autofs

rhcsa容器题目多少分 rhcsa题库及答案_ci_19

 

rhcsa容器题目多少分 rhcsa题库及答案_desktop_20

rhcsa容器题目多少分 rhcsa题库及答案_desktop_21

然后点击下载 CA 证书

rhcsa容器题目多少分 rhcsa题库及答案_rhcsa容器题目多少分_22

 然后点确定

rhcsa容器题目多少分 rhcsa题库及答案_rhcsa容器题目多少分_23

如上图然后点应用
然后用下面命令测试
(也可以使用 id ldapuser15检查是否学习到用户信息)
因为没有做 autofs,所以是没有加目录的。

12. 配置 autofs,实现 ldapuser15登录成功后,有家目录/home/guests/ldapuser15。家目录

在 instructor.example.com 上被 nfs 共享为:/home/guests/ldapuser15。(额外要求,其

它的 ldap 用户登录成功后也能正常使用宿主目录,这条要看考试里问不问)

rhcsa容器题目多少分 rhcsa题库及答案_desktop_24

 

rhcsa容器题目多少分 rhcsa题库及答案_ci_25

rhcsa容器题目多少分 rhcsa题库及答案_rhcsa容器题目多少分_26

rhcsa容器题目多少分 rhcsa题库及答案_rhcsa容器题目多少分_27

 

rhcsa容器题目多少分 rhcsa题库及答案_逻辑卷_28

 

rhcsa容器题目多少分 rhcsa题库及答案_desktop_29

 13. 配置 NTP

方法一:

 

rhcsa容器题目多少分 rhcsa题库及答案_desktop_30

 

rhcsa容器题目多少分 rhcsa题库及答案_rhcsa容器题目多少分_31

 

rhcsa容器题目多少分 rhcsa题库及答案_逻辑卷_32

 填写完点击确定

方法二

[root@server ~]# Yum -y install chrony
[root@server ~]# Vim /etc/chrony.conf
Server classroom.example.com iburst # add server
[root@server ~]# System restart chronyd
[root@server ~]# System enable chronyd
[root@server ~]# chronyc sources
[root@server ~]# chronyc waitsync
[root@server ~]#
[root@server ~]# timedatectl
Local time: Sun 2015-07-19 10:30:59 CST
Universal time: Sun 2015-07-19 02:30:59 UTC
RTC time: Sun 2015-07-19 02:30:59
Timezone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a
[root@server ~]# timedatectl --help
[root@server ~]# timedatectl set-ntp true

 14. 创建一个用户 alex,用户 ID 为 1234,用户密码为 alex111

rhcsa容器题目多少分 rhcsa题库及答案_ci_33

 15. 创建一个 2G 的交换分区,并开机自动生效,但不影响原有的 swap 分区

rhcsa容器题目多少分 rhcsa题库及答案_rhcsa容器题目多少分_34

rhcsa容器题目多少分 rhcsa题库及答案_逻辑卷_35

 

rhcsa容器题目多少分 rhcsa题库及答案_逻辑卷_36

 

rhcsa容器题目多少分 rhcsa题库及答案_rhcsa容器题目多少分_37

19:创建逻辑卷
请按下列要求创建一个新的逻辑卷
 创建一个名为 exam 的卷组,卷组的 PE 尺寸为 16MB
 逻辑卷的名字为 lvm2,所属卷组为 exam,该逻辑卷由 8 个 PE 组成
 将新建的逻辑卷格式化为 xfs 文件系统,要求系统启动时,该逻辑卷能被自动挂载到/exam/lvm2 目录
[root@server ~]# fdisk /dev/sdb
[root@server ~]#
[root@server ~]# pvcreat /dev/sdb5
[root@server ~]# vgcreat -s 16M exam /dev/sdb5
[root@server ~]# vgdisplay exam
PE SZIE 16.00MiB
[root@server ~]# lvcreat -l 8 -n lvm2 exam
[root@server ~]# mkfs.xfs /dev/exam/lvm2
[root@server ~]# blkid
UUID=50de7615-5950-4b97-99e3-8c463dc6671c
[root@server ~]# vim /etc/fstab
[root@server ~]# mkdir -p /exam/lvm2

 二、RHCE题目详解

1、配置selinux
在system1和system2上要求 selinux状态为enforcing,
重启后生依然生效解题:略
2、配置防火墙对ssh的限制在server0和desktop0上设置防火墙,对ssh实现访问限制 
允许 example.com的客户对 server0 和desktop0进行ssh访问
禁止my133t.org的客户对 server0 和desktop0进行ssh访问备注:
My133t.org 172.17.10.0/24 (根据考试实际提供的网段配置)
Example.com 172.25.0.0/24
解题:
Systemctl disable iptables ip6tables ebtables Systemctl enable firewalld
Firewall-cmd --get-default-zone #查看默认zone
Firewall-cmd --list-all	#查看默认zone所有规则
Firewall-cmd --permanent --add-rich-rule=’rule family=”ipv4” source address=”172.25.0.0/24” serice name=”ssh” accept’
Firewall-cmd --permanent --add-rich-rule=’rule family=”ipv4” source address=”172.17.10.0/24” service name=”ssh” reject’
Firewall-cmd --reload
3、配置IPv6地址在系统上配置接口eth0使用以下 ipv6地址
Server0	fddb:fe2a:ab1e::c0a8:1/64 
Desktop0 fddb:fe2a:ab1e::c0a8:2/64 要确保两个系统能与网络 fddb:fe2a:ab1e/64内的系统通信地址重启依旧有效两个系统IPv4地址保持不变
解题:
a.	手工修改ifcfg-ethX文件
b.	图形化界面修改 nm-connection-editor
c.	使用ip命令:(临时性的修改)
	ip addr add 2001:0db8:85a3::0370:7334/64 dev eth1
d.	使用nmcli命令行添加地址后,自动生效
	Nmcin con mod 命令行模式
	Nmcli con edit 命令行交互模式
Nmcli con show
Nmcli connection modify eth0 <ipv6.method manual> <ipv6.addresses fddb:fe2a:ab1e::c0a8:1/64>
Nmcli connection up eth0 #需要启动eth0,使配置文件生效
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/1) Systemctl restart network
4、配置链路聚合
在server0与desktop0上按以下要求配置
此链路使用接口eth1和eth2 此链路在一个接口失效时仍然能工作
此链路在server0使用下面的地址 192.168.0.101/255.255.255.0 此链路在desktop0使用下面的地址 192.168.0.102/255.255.255.0 此链路在系统重启后依然保持正常状态解题:
#添加team0设备并建立 team0连接
# 配置链路聚合时,至少有2张网卡;网卡没有活动的连接	 
Nmcli con add type team con-name team0 ifname team0 config ‘{“runner”:{“name”:”activebackup”}}’
#添加team设备IPv4地址
Nmlci con mod team0 ipv4.address ‘192.168.0.101/24’ ipv4.method manual
#关联team设备从设备(接口)	 
team0-port1
team0-prot2
Nmcli con add type team-slave con-nameifname eth1 master team0
Nmcli con add type team-slave con-nameifname eth2 master team0 Nmcli con up team0-port1; Nmcli con up team0-port2
#查看 team0工作状态: yum install teamd -y Teamdctl team0 state
#测试,开启一个ping,并禁用team0其中的一块网卡;原则上ping数据不会掉包
Nmcli device disconnect eth1
5、	自定义用户环境
在系统server0和desktop0上创建自定义命令 qstat,此命令执行以下命令:/bin/ps -Ao pid,tt,user,fname,rsz
此命令对系统中的所有用户有效
解题:
Vim /etc/bashrc
Alias qstat=’/bin/ps -Ao pid,tt,user,fname,rsz’
6、	配置本地邮件服务在server0和desktop0上配置邮件服务,要求:
	这些系统不接收外部发来的邮件
	这些系统上本地发送的邮件都会自动路由到 classroom.example.com
	这些系统上发送的邮件都显示来自 example.com
	你可以通过发送邮件到本地用户student来测试你的配置,classroom.example.com已经配置好。把此用户的邮件转到下列URL
http://classroom.example.com/cgi-bin/recevied_mail
解题:
Yum install -y postfix
Systemctl enable postfix
Systemctl restart postfix
Postconf -e “inet_interfaces = loopback-only”	# 设定postfix监听的接口 loopback-only|all
Postconf -e “mynetworks = 127.0.0.1/8,[::1]/128” # 指定受信任主机,使用逗号分割的IP列表通过服务器中继到任何地方
Postconf -e “myorigin = example.com”	# 显示 ‘mail from’ 发件人
Postconf -e “relayhost = [classroom.example.com]” # 转发所有消息到外部邮件服务器,[ MX记录classroom.example.com ]
Postconf -e “mydestination = ”	# 指定“能收信的主机”(对方的mail to需要填写的名字)
Postconf -e “local_transport = error: local delivery disabled”	# default: local:$myhostname 禁用本地交付
Postconf -e “local_transport = error:err”
Firewall-cmd --permanent --add-services=smtp
Firewall-cmd --reload
Systemctl restart postfix
#测试发送
null client”
Mail -s “server0student@classroom.example.com	#脚本判断主题关键字 null client
Null client test .
#查看邮件队列
mailq
Curl http://classroom.example.com/cgi-bin/recevied_mail
7、配置端口转发在server0上配置端口转发,要求:
	在172.25.0.0/24网络中的系统,访问 server0的本地端口5423将被转发到端口80
	此设置必须永久有效
开启-端口转发-关键字	本地端口	协议	映射端口	映射地址
forward-port	port=xxx	Protocol=tcp|udp	to-port	to-addr
Forward-port port=”<PORT VALUE1>” protocol=”TCP|UDP” to-port=”<PORT VALUE2>” to-addr=”<ADDRESS>”
解题:
Firewall-cmd --permanent --add-rich-rule ‘rule family=”ipv4” source address=”172.25.0.0/24” forward-port port=5423 protocol=tcp to-port=80’
8、通过SMB共享目录在 server0上配置SMB服务
	SMB服务器必须是STAFF工作组的一个成员
	共享/common目录,共享名必须为 common
	只有example.com域内的客户端可以访问 common共享
	用户rob,samba密码为redhat,只读权限访问common共享 用户brian,samba密码为redhat,读写权限访问common共享
解题:
Yum install samba samba-client -y
Systemctl enable nmb smb
Id rob
Id brian
Useradd -s /sbin/nologin rob; userad -s /sbin/nologin brian
Mkdir /common
Chgrp brian /common/
Chmod 2775 /common
Smbpasswd -a rob
Smbpasswd -a brian
Vim /etc/samba/smb.conf Workgroup = STAFF [common] Path=/common
Write list = brian
Browseable = yes
Hosts allow = 172.25.0. #/common只允许example客户端访问
Testparm	# 测试 smb.conf 文件语法
Systemctl restart smb nmb
# chcon -R -t samba_share_t /common
Semanage fcontext -a -t samba_share_t ‘/common(/.*)?’
Restorecon -vFR /common
Firewall-cmd --permanent --add-service=sabma Fireall-cmd --reload
测试:
Smbclient -L //server0.exmaple.com/common -U rob
Smbclient -L //server0.exmaple.com/common -U brian
9、配置多用户SMB挂载在desktop0上完成以下要求的配置
	Desktop0把server0的common共享通过多用户的方式挂载到配置的/mnt/multiuser(实际的共享和挂载点请根据考试题目设定)
	用户rob,samba密码为redhat,只读权限访问common共享
	用户brian,samba密码为redhat,读写权限访问common共享
	该共享要求在系统启动时自动挂载
解题:
Yum install cifs-utils -y
Yum install samba-client -y
Mkdir /mnt/multiuser
Echo ‘username=rob’ > /root/smb-multiuser.txt
Echo ‘password=redhat’ >> /root/smb-multiuser.txt
 
Su - brian
# cifs认证,使用/root/smb-multiuser文件认证
Cifscreds add server0 Pasword:
Echo “multiuser” > /mnt/multiuser/brian.txt
Cat /mnt/multiuser/brian.txt
Exit
Su - rob
Cifscreds add server0 Password:
Cat /mnt/multiuser/brian.txt
Echo “rob” > /mnt/multiuser/rob.txt
10、配置NFS服务在server0配置NFS服务,要求如下: 以只读的形式共享目录/public同时只能被example.com域中的系统访问。
	以读写的形式共享目录/protected同时只能被example.com域中的系统访问。
	访问/protected需要通过Kerberos安全加密,您可以使用下面提供的密钥:http://classroom.example.com/pub/keytabs/server0.keytab
	目录/protected应该包含名为project拥有人为ldapuser0的子目录
	用户ldapuser0能以读写形式访问/protected/project
解题:
Yum install nfs-utils -y
Systemctl enable nfs-server
Mkdir /public
Chown nfsnobody /public
Mkdir -p /protected/project
Chmod o+w /protected
Chown ldapuser0 /protected/project	 
Chcon -R -t public_content_t /protected/
Vim /etc/exports
/protected	*.example.com(rw,sec=krb5p) /public	*.example.com(ro)
# 查看Showmount -e localhost
Exportfs -arv
#配置NFS加密共享
Wget -O /etc/krb5.keytab http://classroom.example.com/pub/keytabs/server0.keytab
Vim /etc/syscofnig/nfs
RPCNFSDARGS=”-V 4.2”
Systemctl enable nfs-secure-server.service
Systemctl restart nfs-secure-server.service
Firewall-cmd --permanent --add-service=nfs
Firewall-cmd --permanent --add-service=mountd
rpc-bind
Firewall-cmd --permanent --add-service=
Firewall-cdm --reload
11、挂载一个NFS共享
在desktop0上挂载一个来自server0上的NFS共享,并符合下列要求: /pulbic共享挂载到本地的/mnt/nfsmount。
	/protected挂载到本地的/mnt/nfssecure,并使用安全的方式,密钥下载地址:http://classroom.example.com/pub/keytabs/desktop0.keytab 用户ldapuser0能够在/mnt/nfssecure/project上创建文件。
	这些文件系统在系统启动时自动挂载。
解题:
Mkdir /mnt/nfsmount	 
Mkdir /mnt/nfssecure
Vim /etc/fstab
Server0.example.com:/public	/mnt/nfsmount	nfs	defaults	0 0	 
Server0.example.com:/protected /mnt/nfssecure	nfs	defaults,sec=krb5p	0 0
Wget -O /etc/krb5.keytab http://classroom.example.com/pub/keytabs/desktop0.keytab  
#记得启动 nfs-secure,krb5加密需要它的支持
#记得启动 nfs-secure,krb5加密需要它的支持
Systemctl enable nfs-secure.service
Systemctl restart nfs-secure.service
测试:
Ls /mnt/nfssecure
# password: kerberos
Ssh ldapuser0@localhost
Ls /mnt/nfssecure/
Echo “test” > /mnt/nfssecure/project/test.txt
12、实现一个WEB服务器
在server0上配置一个站点http://server0.example.com,然后执行以下步骤:
	从http://classroom.example.com/materials/station.html下载文件,并且将文件重命名为index.html,绝对不能修改此文件的内容。
	将index.html拷贝到你的web服务器的DocumentRoot目录下。
	来自example.com域的客户端可以访问此web站点。
“/var/www/html”
	来自my133t.org域的客户端拒绝访问此web站点。备注:网站的DocumentRoot如果题目没有指定,那么随意。
Yum install httpd
Vim /etc/httpd/conf.d/vhost-server0.conf
<VirtualHost *:80>
ServerName server0.example.com
DocumentRoot
CustomLog “logs/server0_vhost_log” combined
“/var/www/html
<Directory”>
<RequireAll>
Require all granted
Rqeuire not host .my133t.org
</RequireAll>
</Directory>
</VirtualHost>
Wget -o /var/www/html/index.html http://classroom.example.com/materials/station.html
Systemctl enable httpd
Systemctl restart httpd
Firewall-cmd --permanent --add-service=http
Firewall-cmd --reload
13、配置安全WEB服务 443
	站点http://server0.example.com配置TLS加密。
	一个已经签名证书从http://classroom.example.com/pub/tls/certs/server0.crt获取
	此证书的密钥从http://classroom.example.com/pub/tls/private/server0.key获取
	此证书的授权信息从http://classroom.example.com/pub/example-ca.crt获取
解题:
Yum instlal -y mod_ssl
Wget -O /etc/pki/tls/certs/server0.crt http://classroom.example.com/pub/tls/certs/server0.crt
Wget -O /etc/pki/tls/private/server0.key http://classroom.example.com/pub/tls/private/server0.key
Wget -O /etc/pki/tls/certs/example-ca.crt http://classroom.example.com/pub/example-ca.crt
Vim /etc/httpd/conf.d/ssl.conf #修改如下几个地方
DocumentRoot “/var/www/html/”
ServerName server0.example.com
SSLCertificateFile /etc/pki/tls/certs/server0.crt
SSLCertificateKeyFile /etc/pki/tls/private/server0.key SSLCACertificateFile /etc/pki/tls/certs/example-ca.crt <Directory “/var/www/html”> <RequireAll>
Require all granted
#脚本可能判断字符为 my133t.com
Require not host .my133t.org
</RequireAll>
</Directory>
Systemctl restart httpd
Firewall-cmd --permanent --add-serice=https
Firewall-cmd --reload
14、配置虚拟主机
在server0上扩展你的web服务器,为站点http://www0.example.com创建一个虚拟主机,然后执行以下步骤: a. 设置DocumentRoot为 /var/www/virtual
b.	从http://classroom.example.com/materials/www.html下载文件并重命名为index.html,不要对文件index.html内容做任何修改。
c.	将index.htm文件放到虚拟主机的DocumentRoot目录下
d.	确保floyd用户能够在/var/www/virtual目录下创建文件注意:原始站点http://server0.example.com必须仍然能够访问。站点的所用的域名网络中已有DNS服务器解析。
解题:
Vim /etc/httpd/conf.d/vhost-www0.conf
<VirtualHost *:80>
ServerName www0.exmaple.com DocumentRoot “/var/www/virtual” customLog “logs/www0_virtual_log” combined
<Directory “/var/www/virtual”> Require all granted
</Directory>
</VirtualHost>
Mkdir -p /var/www/virtual
Wget -O /var/www/virtual/index.html http://classroom.example.com/materials/www.html
Id floyd
Useradd floyd
Setfacl -m u:floyd:rwx /var/www/virtual/
Systemctl restart httpd
15、配置WEB内容的访问
在你的server0上的web服务器的DocumentRoot目录下创建一个名为private的目录,要求如下:
	从http://classroom.example.com/materials/private.html下载一个文件副本到这个目录,并且重命名为index.html。不要对这个文件的内容作任何修改。
	从server0上,任何人都可以浏览private的内容,但是从其他系统就不能访问这个目录的内容。(注意题目要求谁可以访问,灵活变化) 备注:此题目是接着上一题,所以这里的DocumentRoot指的就是上面的 /var/www/virtual/。
解题:
Mkdir /var/www/virtual/private
Wget -O /var/www/virtual/private/index.html http://classroom.example.com/materials/private.html
Vim /etc/httpd/conf.d/vhost-www0.conf
<VirtualHost *:80>
ServerName www0.exmaple.com DocumentRoot “/var/www/virtual” customLog “logs/www0.virtual_log” combined
<Directory “/var/www/virtual”> Require all granted
</Directory>
<Directory “/var/www/virtual/private”> Require all denied
Require local
</Directory>
</VirtualHost>
Systemctl restart httpd
#测试
====Desktop====
Curl http://www0.example.com/
# ok
Curl http://www0.example.com/private
# denied
16、实现动态WEB内容在server0上配置提供动态web内容,要求如下:
	动态内容由名为webapp0.example.com的虚拟主机提供,	虚拟主机监听在端口8908
	从http://classroom.example.com/materials/webinfo.wsgi下载一个脚本,然后放在适当的位置,无论如何不要修改此文件的内容。
	客户端访问http://webapp0.example.com:8908/时应该接收到动态生成的web页面。
必须能够被example.com域内的所有系统访问。
	此站点
解题:
Yum install mod_wsgi -y
Mkdir -p /var/www/webapp
Wget -O /var/www/webapp/webinfo.wsgi http://classroom.example.com/materials/webinfo.wsgi
Vim /etc/httpd/conf.d/vhost-webapp0.conf
Listen 8908
<VirtaulHost *:8908>
ServerName webapp0.exmaple.coms
DocumentRoot “/var/www/webapp”
CustomLog “logs/webap0_vhost_log” combined
<Directory “/var/www/webapp”> Require all granted
</Directory>
WSGIScriptAlias / /var/www/webapp/webinfo.wsgi	#注意安装 mod_wsgi 模块
</VirtualHost>	 
Semanage port -l | grep http
Semanage port -a -t http_port_t -p tcp 8908
Firewall-cdm --add-rich-rule ‘rule family=ipv4 source address=”172.25.0.0/24” port port=8908 protocol=tcp accept’
Firewall-cmd --reload
Systemctl restart httpd
#测试
ss -ntlp | grep :8908
Curl http://webapp0.example.com:8908
17、创建一个脚本
在server0上创建一个名为/root/foo.sh的脚本,让其提供下列特性:
	当运行/root/foo.sh redhat,输出fedora
	当运行/root/foo.sh fedora,输出redhat
	当没有任何参数或者参数不是redhat或者fedora时,其错误输出产生以下的信息:
/root/foo.sh redhat|fedora vim /root/foo.sh
 
#!/bin/bash
case $1 in
redhat) echo “fedora”
;; fedora) echo “redhat”
;;
*) echo “/root/foo.sh redhat|fedora” esac
# chmod 755 /root/foo.sh # /root/foo.sh adfadfa
18、创建一个添加用户的脚本在server0上创建一个名为/root/batchusers,此脚本能够实现为系统server0创建本地用户,并且这些用户的用户名来自一个包含用户名列表的文件,同时满足下列要求:
	此脚本要求提供一个参数,此参数就是包含用户名列表的文件
	如果没有提供参数,此脚本应该给出下面的提示信息Usage: /root/batchusers userfile ,并且退出返回相应的值
	如果提供一个不存在的文件名,此脚本应该给出下面的提示信息 Input file not found然后退出并返回相应的值
	创建的用户登录shell为/bin/false
	此脚本不需要为用户设置密码 (注意:有得时候需要设置统一密码为redhat)
您可以从下面的URL获取用户列表作为测试用 http://classroom.example.com/materials/userlist
 
Vim /root/batchusers
#!/bin/bash
# 首先判断脚本的所有参数数量等于1否
# $1是否存在且是文件	
if [ $# -eq 1 ]; then
if [ -f “$1” ];then
while read username do
useradd -s /bin/false $username &> /dev/null
# 以参数1文件重定向输入
done < $1
else
echo “Input file not found” exit 1
fi
else
echo “usage: /root/batchusers userfile” exit 2
fi
chmod 755 /root/batchusers wget -o /root/userlist http://classroom.example.com/materials/userlist
/root/batchusers /root/userlist
tail /etc/passwd
19、配置iSCSI服务端配置server0提供一个iSCSI服务磁盘名为iqn.2014-11.com.example:server0,并符合下列要求:
	服务端口为3260
	使用iscsi_store作为其后端卷,其大小为3G(题意含糊,其实iscsi_store是一个逻辑卷,需要自己建立) 此服务只能被desktop0.example.com访问。
解题:
Yum install targetcli -y
Systemctl enable target
Fdsik /dev/sdb	# 分区并修改类型为8e LVM逻辑卷
Pvcreate /dev/sdb1
Vgcreate iSCSI_vg /dev/sdb1
Lvcreate -n iscsi_store -L 3G iSCSI_vg
# targetcli
 
/> cd backstores/block
/> backstores/block create name=server0.iscsi_store dev=/dev/iSCSI_vg/iscsi_store Created block storage object server0.iscsi_store using /dev/iSCSI_vg/iscsi_store.
/> cd /iscsi
/iscsi> create iqn.2015-09.com.example:server0 Created target iqn.2015-09.com.example.com:server0.
Created TPG 1.
/iscsi> cd iqn.2015-09.com.example:server0/tpg1/portals	 
/iscsi/iqn.2015-09.../tpg1/portals> create 172.25.0.11 3260
Using default IP port 3260
Created network portal 172.25.0.11:3260.
/iscsi/iqn.2015-09.../tpg1/portals> cd ../luns
/iscsi/iqn.2015-09.../tpg1/luns create /backstores/block/server0.iscsi_store Created LUN 0.
/iscsi/iqn.2015-09.../tpg1/portals> cd ../acls
/iscsi/iqn.2015-09.../tpg1/acls create iqn.2015-09.com.example:desktop0  Created Node ACL for iqn.2015-09.com.example.com:desktop0 Created mapped LUN 0.
/iscsi/iqn.2015-09.../tpg1/acls> cd ..
/iscsi/iqn.2015-09.../tpg1 set attribute authentication=0 Parameter authentication is now '0'.
/iscsi/iqn.2015-09.../tpg1 set attribute generate_node_acls=0
Parameter generate_node_acls is now '0'.
/iscsi/iqn.2015-09.../tpg1> cd /
/> saveconfig
Last 10 configs saved in /etc/target/backup.
Configuration saved to /etc/target/saveconfig.json
/> ls
 
/> exit
Firewall-cmd --permanent --add-port=3260/tcp	 Firewall-cmd --reload
Systemctl start target
20、配置iSCSI的客户端
配置desktop0使其能连接在server0上提供的iqn.2014-11.com.example:server0并符合以下要求:
	iSCSI设备在系统启动的时候自动加载
	块设备iSCSI上包含一个大小为2100 MiB的分区,并格式化为ext4。
	此分区挂载在/mnt/data上同时在系统启动的期间自动挂载。
Yum install iscsi-initiator-utils
Vim /etc/iscsi/initiatorname.iscsi
iqn.2014-11.com.example:desktop0
InitiatorName=
Systemctl enable iscsi
Systemctl restart iscsi
Iscsiadm -m discovery -t sendtargets -p 172.25.0.11	#发现target	-t st
Iscsiadm -m node -l	#登录target		
Fdisk /dev/sdc	# 添加2100M		
Mkfs.ext4 /dev/sdc1
Mkdir /mnt/data	# 格式化系统格式ext4		
Blkid /dev/sdc1
Vim /etc/fstab
XXXX
UUID=/mnt/data ext4 defaults,_netdev 0 0
Mount -a Df -h
#记得 logout后再重启
Iscsiadm --mode node --targetname iqn.2014-09.com.example:server0 --portal 172.25.0.11:3260 --logout
20、部署MariaDB数据库在server0上部署MariaDB。要求如下:
	仅允许从server0系统上使用登陆到数据库。
	登陆数据库所用的账号为root,密码为root_password。
	从http://content.example.com/courses/rhce/rhel7.0/materials/mariadb/mariadb.dump上下载文件,并将其恢复为legacy库。
	并设置数据库访问:	
		用户名	密码	权限
		Mary	mary_password	对legacy库的所有数据有选择操作权限
		Legacy	legacy_password	对legacy库的所有数据有选择、插入、更新、删除操作权限
		Report	report_password	对legacy库的所有数据有选择操作权限
解题: A.安装数据库并初始化
# yum instlal mariadb*
# systemctl enable mariadb
# systemctl start mariadb
# mysql_secure_installation
B.恢复数据库
# wget -O /root/mariadb.dump Mysql -uroot -proot_password
Create database legacy;
Use legacy
Source /root/mariadb.dump
Show tables;	 
C.设置用户权限
grant select on legacy.*	to mary@'localhost' identified by ‘mary_password’; grant select,insert,update,delete	on legacy.*	to legacy@'localhost'	identified by ‘legacy_password’; grant select on legacy.* to report@'localhost" identified by ‘report_password’;
21、数据查询填空
在server0上登陆数据库,查看XXX库进行查询,并将结果填入相应的框格中。
Q1在product表中,查询RT-AC68U的产品id() Q2查询类别为Servers的产品的数量()
模拟考环境请在http://classroom.example.com/cgi-bin/mariadb提交
# mysql -uroot -proot_password
#
# mysql -u legacy -p
MariaDB [legacy]> use legacy
MariaDB [legacy]> status; 查看当前数据库使用状态