RHCE Requirements
完成下列操做,当您收到成绩时,这部份内容的成绩会标识为RHCSA,并另有一个总分,您必须获得300分中的210分,或者210分以上才能得到认证。
第一题:设定SELinux
第二题:配置防火墙
第三题:自定义用户环境
第四题:配置端口转发
第五题:配置链路聚合
第六题:配饰IPV6地址
第七题:配置本地邮件服务
第八题:经过SMB共享目录
第九题:配置多用户SMB挂载
第十题:配置NFS服务
第11题:挂载一个NFS共享
第12题:实现一个web服务器
第13题:配置安全web服务
第14题:配置虚拟主机
第15题:配置web内容的访问
第16题:实现动态WEB内容
第17题:建立一个脚本
第18题:建立一个添加用户的脚本
第19题:配置ISCSI服务端
第20题:配置ISCSI的客户端
第21题:配置一个数据库
第22题:数据库查询html
题目中的每一个字我都认识,我殊不知道题目在说些什么,是基础知识学的没怎么理解,日常练习次数不够,思考的不够没有造成本身的理解致使的
正确的作题是,看完题后你内心有一个很明确,很清晰的的作题步骤,知道先干吗后干吗,须要完成哪些:node
1.建立文件
2.安装软件包
3.配置服务
4.设置权限或防火墙
5.测试是否OK
6.解决报错问题,排除错误mysql
考试中两个系统的服务器
system1.group8.example.com 做为服务器
system2.group8.example.com 做为客户端
两个系统的root密码为 redhat
系统的IP地址由DHCP提供,或者能够设置为静态的IP地址
system1.group8.example.com 172.24.8.11/24
system2.group8.example.com 172.24.8.12/24
两个系统的DNS域为group8.example.com
server.group8.example.com提供了认证的服务器group8.example.com
server.group8.example.com提供了YUM仓库 URL是 http://server.group8.example.com/yum
作完以后须要关闭system2而后关闭system1 启动的时候须要先启动是system1而后启动system2linux
reboot 重启系统
poweroff 强制关机
shutdown 正常关机
--------------------------web
RHCE Requirements
完成下列操做,当您收到成绩时,这部份内容的成绩会标识为RHCSA,而且另有一个总分,您必须获得300分钟的210分或者210分以上
才能得到认证sql
第一题:设置SELinux
第二题:配置防火墙
第三题:自定义用户环境
第四题:配置端口的转发
第五题:配置链路聚合
第六题:配置IPV6地址
第七题:配置本地邮件服务
第八题:经过SMB共享目录
第九题:配置多用户SMB挂载
第十题:配置NFS服务
第十一题:挂载一个NFS共享
第十二题:实现一个web服务器
第十三题:配置安全web服务
第十四题:配置虚拟主机
第十五题:配置web内容的访问
第十六题:实现动态的WEB内容
第十七题:建立一个脚本
第十八题:建立一个添加用户的脚本
第十九题:配置ISCSI服务端
第二十题:配置ISCSI的客户端
第二十一题:配置一个数据库
第二十二题: 数据库查询shell
设定SELinux
在system1和system2上要求SELinux的工做模式为enforcing
要求系统重启后依然生效数据库
vim /etc/selinux/config
vim /etc/sysconfig/selinux
修改成
SELINUX=enforcing vim
setenforce 1
查看一下当前的状态
getenforce后端
SSH远程登陆到服务器上去
ssh root@172.24.8.12
vim /etc/sysconfig/selinux
修改成
SELINUX=enforcing
setenforce 1
查看一下当前的状态
getenforce
-----------------------
配置防火墙
请按下列要求在system1和system2上设定防火墙系统
容许group8.example.com域的客户对system1和system2进行ssh访问
禁止my133t.org域客户对system1和system2进行ssh访问
备注:my133t.org是在172.13.8.0/24 网络
用图形界面实现一下
firewall-config
查看一下当前的防火墙规则
firewall-cmd --list-all
使用命令行实现一下防火墙规则
查看防火墙帮助的命令
man firewalld.richlanguage
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="172.13.8.0/24" service name="ssh" reject'
firewall-cmd --reload
firewall-cmd --list-all
system2上也须要作一遍
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="172.13.8.0/24" service name="ssh" reject'
firewall-cmd --reload
firewall-cmd --list-all
若是规则写错了删除
firewall-cmd --permanent --remove-rich-rule 'rule family="ipv4" source address="172.13.8.0/24" service name="ssh" reject'
firewall-cmd --reload
查看一下是否删除了
firewall-cmd --list-all
查看帮助 删除规则的帮助
firewall-cmd --permanent --remove-
自定义用户环境
在系统system1和system2建立自定义命令为qstat 要求:
此自定义命令将执行如下命令:/bin/ps -Ao pid,tt,user,fname,rsz
此命令对系统中的全部用户有效
vim /etc/profile 非登陆shell是不可读取此文件的
vim /etc/bashrc
给一条命令起别名
alias qstat='/bin/ps -Ao pid,tt,user,fname,rsz'
写入配置文件中去
vim /etc/bashrc
alias qstat='/bin/ps -Ao pid,tt,user,fname,rsz'
让配置文件生效一下
source /etc/bashrc
source 与./ 的区别
source是指在当前shell中把文件执行了一遍
./ 从新打开了一个新的shell执行了一遍,当前shell中的写入内容并无被这个新的shell读取到
system2上也写一遍
vim /etc/bashrc
alias qstat='/bin/ps -Ao pid,tt,user,fname,rsz'
让配置文件生效一下
source /etc/bashrc
测试一下别名命令是否生效
qstat
配置端口转发
在系统system1设定端口转发,要求:
在172.24.8.0/24网络中的系统,访问system1的本地端口5423 将被转发到80
此设置必须永久生效
用可视化图形界面实现一下
firewall-config
查看一下当前的防火墙的规则信息
firewall-cmd --list-all
使用命令行实现一下
查看一下帮助
man firewall-cmd
man firewalld.richlanguage
firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="172.24.8.0/24" forward-port to-port="80" prorocol="tcp" port="5423"'
firewall-cmd --reload
firewall-cmd --list-all
验证一下
配置一下YUM仓库
cd /etc/yum.repos.d/
ls
cat *
vim rhce.repo
写入
[rhce]
name=rhce
baseurl=http://server.group8.example.com/yum
enabled=1
gpgcheck=0
清空一下系统中yum的缓存
yum clean all
yum list all
测试一下端口转发
yum -y install httpd
systemctl enable httpd
systemctl start httpd
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
firewall-cmd --list-all
cd /var/www/html/
vim index.html
写入
hello world
在非本地主机上访问一下,本地访问不能进行转发,直接是5423
在浏览器中输入
172.24.8.11:5423
或者用
curl http://172.24.8.11:5423
配置链路聚合
在system2和system1之间按如下要求设定一个链路:
此链路使用接口eth1和eth2
此链路在一个接口失效时仍然能工做
此链路在system1使用下面的地址172.16.3.40/255.255.255.0
此链路在system2使用下面的地址172.16.3.45/255.255.255.0
此链路在系统重启以后依然保持正常状态
添加一个虚拟网卡的配置文件
nmcli con add type team ifname team0 con-name
查看一下man帮助
man 5 teamd.conf
nmcli con add type team ifname team0 con-name team0 config '{"runner":{"name":"activebackup"}}'
给虚拟接口配置IP地址
nmcli connection nodify team0 ipv4.addresses 172.16.3.40/24 ipv4.method manual
添加两个物理网卡
nmcli con add type ethernet ifname eth1 conp-name eth1
nmcli con add type team-slave ifname eth1 conp-name eth1 master team0
nmcli con add type team-slave ifname eth2 conp-name eth2 master team0
开启一下这个网卡
nmcli con up team0
查看一下当前的网卡配置信息
ifconfig
查看一下这个虚拟网卡的状态
teamdctl team0 state
system2上也配置
man 5 teamd.conf
nmcli con add type team ifname team0 con-name team0 config '{"runner":{"name":"activebackup"}}'
给虚拟接口配置IP地址
nmcli connection nodify team0 ipv4.addresses 172.16.3.45/24 ipv4.method manual
nmcli con add type team-slave ifname eth1 conp-name eth1 master team0
nmcli con add type team-slave ifname eth2 conp-name eth2 master team0
nmcli con up team0
ifconfig
teamdctl team0 state
system2上测试是否ok
ping 172.16.3.40
查看一下这个虚拟网卡的team0的配置信息
vim /etc/sysconfig/network-scripts/ifcfg-team0
配置IPV6地址
在考试系统上设定接口eth0使用下列IPV6地址:
system1上的地址应该是2003:ac18::305/64
system2上的地址应该是2003:ac18::30a/64
两个系统必须能与网络2003:ac18/64内的系统通讯
地址必须在重启后依然生效
两个系统必须保持当前的IPV4地址并能通讯
配置system1上的ipv6地址
查看一下网卡地址信息
nmcli con show
修改ipv6地址为手动的
nmcli con modify eth0 ipv6.addresses 2003:ac18::305/64 ipv6.method manual
重启一下这个网卡
nmcli con up eth0
查看修改的网卡地址是否生效
ifconfig
配置system2上的ipv6地址
nmcli con modify eth0 ipv6.addresses 2003:ac18::30a/64 ipv6.method manual
nmcli con up eth0
在system1上ping6 system2的ipv6地址,测试是否ok
ping6 2003:ac18::30a
配置本地邮件服务
在系统system2和system1上配置邮件服务,要求:
这些系统不接受外部发送来的邮件
在这些系统上本地发送的任何邮件都会自动路由到mail.group8.example.com
从这些系统上发送的邮件显示来自于server.group8.example.com
您能够经过发送邮件到本地用户dave 来测试您的配置,系统server.example.group8.com 已经配置把此用户的邮件转到URL http://server.group8.example.com/pub/received mail/8
查看邮件的服务状态
systemctl status postfix.service
修改邮件的主配置文件
vim /etc/postfix/main.cf
修改
inet_interfaces = localhost 为inet_interfaces = loopback-only
修改
relayhost = [an.ip.add.ress] 为relayhost = [mail.group8.example.com]
修改
myorigin = $mydomain 为myorigin = service.group8.example.com
修改
mydestination = $myhostname,localhost.$mydomain,localhost为mydestination =
重启一下邮件服务
systemctl restart postfix.service
测试邮件发送
mail -s info dave
写入
hello word
在浏览器中打开测试邮件地址查看是否能收到测试邮件
经过SMB共享目录
在system1上配置SMB服务,要求:
您的SMB服务器必须是STAFF工做组的一个成员
共享/common 目录,共享名必须为common
只有group8.example.com域内的客户端能够访问common共享
common必须是能够浏览的
用户andy必须可以读取共享中的内容,若是须要的话,验证密码是redhat
安装SMB包
yum -y install samba samba-client.x86_64
重启一下服务,加入到开机启动中
systemctl enable smb nmb
systemctl start smb nmb
开机一下smb的防火墙
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload
修改一下samba的配置文件
vim /etc/samba/smb.conf
修改
workgroup = MYGROUP 为workgroup = STAFF
建立共享目录common
mkdir /common
chon -t samba_share_t /common/
semanage fcontext -a -t samba_share_t "/common(/.*)?"
cd /etc/selinux/targeted/contexts/files/file_contexts 参考"/common(/.*)?"
restorecon -v /common/
查看一下这个共享的权限信息
ll -dZ /common/
在配置文件中写入
vim /etc/samba/smb.conf
写入
[common]
path=/common
hosts allow=172.24.8.
设置andy的smba的访问密码redhat
smbpasswd -a andy
pdbedit -L
smbclient -L //172.24.8.11
smbclient //172.24.8.11/common -U andy
yum -y install samba-client
访问一下共享文件common
smbclient //172.24.8.11/common -U andy
配置多用户SMB挂载
在system1经过SMB共享目录 /devops ,并知足下列要求:
共享名为devops
共享目录devops 只能group8.example.com域中的客户端使用
共享目录devops 必须能够被浏览
用户silene必须能以读的方式访问此共享,访问密码是redhat
用户akira必须能以读写的方式访问此共享,访问密码是redhat
此共享永久挂载在system2.group8.example.com上的/mnt/dev 目录,并使用用户silene做为认证任何用户,能够经过用户akira来临时获取读写权限
建立一个共享目录
mkdir /devops
chcon -t samba_share_t/devops
修改配置文件
vim /etc/samba/smb.conf
写入
[devops]
path=/devops
hosts allow=172.24.8.
write list =akira
设置共享目录的权限
ll -d /devops/
chmod 777 /devops/
setfacl -m u:akira:rwx /devops/
将访问用户加入到samb数据库中
smbpasswd -a silene
smbpasswd -a akira
测试本地是否可访问
smbclient //172.24.8.11/devops -U silene
在system2上实现共享
smbclient -L //172.24.8.11
测试一下是否可登录
smbclient //172.24.8.11/devops -U akira
建立挂载点
mkdir /mnt/dev
写入挂载信息
vim /etc/fstab
写入
//172.24.8.11/devops /mnt/dev cifs defaults,multiuser,sec=ntlmssp,username=silene,password=redhat 0 0
执行一下挂载
mount -a
查看挂载信息
df -h
yum -y install cifs-utils.x86_64
查看一下man帮助
man 8 mount.cifs
su - silene
cd /mnt/dev
cifscreds add -u silene 172.24.8.11
su - akira
cd /mnt/dev
cifscreds add -u akira 172.24.8.11
配置NFS服务
在system1配置NFS服务,要求以下:
以只读的方式共享目录 /public ,同时只能被group8.example.com域中的系统访问
以读写的方式共享目录 /protected,同时只能被group8.example.com 域中的系访问
访问/protected须要经过Kerberos安全加密,您可使用下面URL提供的秘钥
http://server.group8.example.com/pub/keytabs/system1.keytab
目录/protected 应该包含名为project拥有人为andres 的子目录
用户andres能以读写方式访问/protected/project
mkdir /public
mkdir /protected
vim /etc/exports
写入
/public *.group8.example.com(ro,sync)
/pretected *.group8.example.com(rw,sync,sec=krb5p)
执行一下
exportfs -r
查看一下共享的权限
exportfs -v
下载秘钥
wget -O /etc/krb5.keytab http://server.group8.example.com/pub/keytabs/system1.keytab
查看一下下载是否OK
ll /etc/krb5.
vim /etc/krb5.conf
测试一下system1的秘钥是否有效
ktutil
rkt /etc/krb5.keytab
list
cd /protected/
mkdir project
chown andres project
查看project的权限信息
ll project
exportfs -v
yum list all |grep sssd
yum list all |grep krb5-work
将服务加入到开机启动中
systemctl enable nfs-server
查看一下服务的状态
systemctl status nfs-server
systemctl start nfs-server
systemctl status nfs-server
systemctl enable nfs-secure-server
systemctl restart nfs-server
systemctl restart nfs-secure-server
同步一下系统时间
ntpdate -u 172.24.8.254
设置防火墙
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd
让防火墙规则生效
firewall-cmd --reload
查看一下rpcbind服务 状态
systemctl status rpcbind
挂载一个NFS共享
在system2上挂载一个来自system1.group8.example.com的NFS共享,并符合下列要求:
/public 挂载在下面的目录上 /mnt/nfsmount
/protected挂载在下面的目录上 /mnt/nfssecure并使用安全的方式,秘钥下载URL以下:
http://server.group8.example.com/pub/keytabs/system2.keytab
用户andres可以在/mnt/nfssecure/project上建立文件
这些文件系统在系统启动时自动挂载
建立挂载目录
mkdir /mnt/nfsmount
mkdir /mnt/nfssecure
将挂载目录加入到开机启动中
vim /etc/fstab
写入
172.24.8.11:/public /mnt/nfsmount nfs defaults 0 0
查看一下共享信息
showmount -e 172.24.8.11
执行一下挂载
mount -a
查看挂载信息
df -h
下载秘钥
wget -O /etc/krb5.keytab http://server.group8.example.com/pub/keytabs/system2.keytab
查看一下秘钥文件是否下载OK
ll /etc/krb5.
将服务加入到开机启动项中去
systemctl enable nfs-secure
开启服务
systemctl start nfs-secure
将共享加入到开机启动中去
vim /etc/fstab
写入
172.24.8.11:/protected /mnt/nfssecure nfs defaults,sec=krb5p 0 0
执行一下挂载
mount -a
查看一下挂载信息
df -h
su -andres
cd /mnt/nfssecure
kinit
klist
exit
su -andres
klist
cd /mnt/nfssecure
ls
cd project/
touch file
建立一个脚本
在system1上建立一个名为/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
#注释
if [ "$1" = "redhat" ];then
echo "fedora"
elif [ "$1" = "fedora" ];then
echo "redhat"
else
echo "/root/foo.sh redhat | fedora"
fi
给脚本添加可执行权限
chmod u+x /root/foo.sh
./foo.sh
./foo.sh xxx
./foo.sh redhat
./foo.sh fedora
case语句的判断
case "$1" in
"redhat")
echo "fedora"
;;
"fedora")
echo "redhat"
;;
*)
echo "/root/foo.sh redhat |fedora"
;;
esac
给脚本添加可执行权限
chmod u+x /root/foo.sh
./foo.sh
./foo.sh xxx
./foo.sh redhat
./foo.sh fedora
建立一个添加用户的脚本
在system1上建立一个脚本,名为/root/batchusers ,此脚本能实现为系统system1建立本地用户,而且这些用户的用户名来自一个包含用户名列表的文件,同时知足下列要求:
此脚本要求提供一个参数,此参数就是包含用户名列表的文件
若是没有提供参数,此脚本应该给出下面的提示信息
Usage: /root/batchusers userfile 而后退出并返回相应的值
若是提供一个不存在的文件名,此脚本应该给出下面的提示信息 Input file not found 而后退出并返回相应的值
建立的用户登陆shell为/bin/false
此脚本不须要为用户设置密码
您能够从下面的URL获取用户名列表做为测试用
http://server.group8.example.com/pub/userlist
chmod u+x /root/batchusers
vim /root/batchusers.sh
#!/bin/bash
#注释信息
if [ "$#" = 0 ];then
echo "Usage:/root/batchusers userfile"
exit 10
elif [ !-f "$1" ];then
echo "Input file not found"
exit 20
else
for USER in $(cat $1)
do
useradd -s /bin/false $USER
done
fi
执行一下脚本测试一下
./batchusers ssss
./batchusers userlist
查看一下用户是否添加进去了
cat /etc/passwd
配置ISCSI服务端
配置system1 提供一个ISCSI服务,磁盘名为 iqn.2014-08.com.example.group8:system1,并符合下列要求:
服务端口为 3260
使用iscsi_store 做其后端逻辑卷名称,其大小为3G
此服务只能被system2.group8.example.com 访问
fdisk -l
lsblk
开始建立逻辑卷
fdisk /dev/sda
n
p
d
q 退出
fdisk /dev/sda
p
n
p
+4G
t
8e
p
w 保存
ll /dev/sda 查看一下新的分区是否更新到系统中去了
partprobe /dev/sda 将新的分区信息更新到系统内核中去
再次查看分区信息中是否有新的分区
ll /dev/sda
pvcreate /dev/sda3
vgcreate vg0 /dev/sda3
lvcreate -L 3G -n iscsi_store vg0
lvdisplay
安装一个软件包
yum -y install targetcli.noarch
systemctl enable target
systemctl start target
firewall-cmd --permanent --add-port=3260/tcp
firewall-cmd --reload
targetcli
ls
pwd
cd
cd backstores/
ls
cd block
ls
create /> pwd
cd backstores/block
create iscsi_store /dev/vg0/iscsi_store
ls
cd /
ls
cd iscsi
ls
create iqn.214-08.com.example.group8:system1
ls
cd iqn.214-08.com.example.group8:system1/tpg1/acls acls 访问控制列表
ls
远程登陆到system2上去查看它的iscsi名字是什么
ssh root@system2
cat /etc/iscsi/initiatorname.iscsi
继续在system1上
create iqn.1994-05.com.redhat:57bcb2ccfc29
ls
cd ..
ls
cd iqn.214-08.com.example.group8:system1/tpg1/acls
ls
cd luns lun 逻辑单元号
create /b
create /backstores/block/iscsi_store
ll
cd ..
ls
cd ..
ls
pwd
cd tpg1/portals/
ls
删掉以前添加的端口号
delete 0.0.0.0 3260
ls
help
从新建立一个新的端口
create 172.24.8.11 3260
ls
cd /
ls
saveconfig
exit
重启一下服务
systemctl restart target
iscsiadm -m discovery -t st -p 172.24.8.11
iscsiadm -m node -l -T iqn.2014-08.com.example.group8:system1
iscsiadm -m node -l
fdisk -l
配置iSCISI的客户端
配置system2使其链接在system1上提供的iqn.2014-08.com.example.group8:system1,并符合一下要求:
iSCISI设备在系统启动的期间自动加载
块设备iSCISI上包含一个大小为2100 MiB的分区,并格式化为ext4
此分区挂载在 /mnt/data 上,同时在系统启动的期间自动挂载
cd /var/lib/iscsi/
ls
ls nodes/
ls send_targets/
删除
rm -rf send_targets/*
rm -rf nodes/*
对设备进行分区
fdisk /dev/sdb
n
p
+2100M
w
ll /dev/sdb
格式化
mkfs.ext4 /dev/sdb1
mkdir /mnt/data
vim /etc/fstab
写入挂载信息
UUID="1231549879" /mnt/data ext4 defaults,_netdev 0 0
执行一下挂载操做
mount -a
df -h
卸载
umount /mnt/data/
关机
init 0
blkid 查看存储设备的uuid
实现一个web服务器
在system1上配置一个站点
http://system1.group8.example.com/,而后执行下述步骤:
从http://server.group8.example.com/pub/system1.html 下载文件,而且将文件重命名为index.html,不要修改此文件的内容
将文件index.html拷贝到您的web服务器的DocumentRoot目录下
来自于group8.example.com域的客户端能够访问此web服务
来自于my133t.org域的客户端拒绝访问此web服务
安装软件包
yum -y install httpd-manual
yum -y install httpd
firewall-cmd --list-all
cd /etc/httpd/conf.d
ls
vim web.conf
<Virtualhost *:80>
DocumentRoot /var/www/web1
ServerName system1.group8.example.com
<Virtualhost>
cd /var/www/
ls
mkdir web1
cd web1
wget http://server.group8.example.com/pub/system1.html
mv system1.html index.html
重启一下服务
systemctl restart httpd
cd /etc/httpd
cd /conf.d/
ls
vim web.conf
<Virtualhost *:80>
DocumentRoot /var/www/web1
ServerName system1.group8.example.com
<Directory /var/www/web1>
order deny,allow
deny from .my133t.org
allow from .group8.example.com
<Directory>
<Virtualhost>
重启一下服务
systemctl restart httpd
配置安全web服务
为站点http://system1.group8.example.con 配置TLS加密;
一个已签名证书从http://server.group8.example.com/pub/tls/certs/system1.crt 获取
此证书的秘钥从http://server.group8.example.com/pub/tls/private/system1.key 获取
此证书的签名受权信息从
http://server.group8.example.com/pub/tls/serts/ssl-ca.crt 获取
下载秘钥
cd /etc/httpd/
mkdir certs/
ls
wget http://server.group8.example.com/pub/tls/certs/system1.crt
wget http://server.group8.example.com/pub/tls/private/system1.key
wget http://server.group8.example.com/pub/tls/certs/ssl-ca.crt
安装软件包
yum -y install mod_ssl
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
ls
cd ..
ls
cd conf.d/
ls
vim ssl.conf
修改:
DocumentRoot "/var/www/web1"
ServerName system1.group8.example.com:443
修改
SSLCertificateKeyFile /etc/httpd/certs/system1.crt
SSLCertificateKeyFile /etc/httpd/certs/system1.key
SSLCertificateKeyFile /etc/httpd/certs/ssl-ca.crt
语法测试一下
httpd -t
重启服务
systemctl restart httpd
在浏览器的地址栏中测试
http://system1.group8.example.com
配置虚拟主机
在system1上扩展您的web服务器,为站点http://www8.group8.example.com 建立一个虚拟主机,而后执行下述步骤:
设置DocumentRoot为 /var/www/virtual
从http://server.group8.example.com/pub/www8.html 下载文件重命名为index.html ,不要对文件index.html的内容作任何修改
将文件index.html 放到虚拟主机的DocumentRoot目录下
确保andy用户可以在/var/www/virtual 目录下建立文件
注意:原站点 http:system1.group8.example.com 必须仍可以访问,名称服务器server.group8.example.com 已经提供对主机名 www8.group8.example.com的域名解析
mkdir /var/www/virtual
cd /var/www/virtual
ls
wget http://server.group8.example.com/pub/www8.html
mv www8.html index.html
ll
setfacl -m u:andy:rwx /var/www/virtual/
getfacl /var/www/virtual/
cd /var/www/virtual/
ls
rm -rf *
ls
pwd
vim web.conf
写入
<Virtualhost *:80>
DocumentRoot /var/www/virtual
ServerName www8.group8.example.com
</Virtualhost>
检测一下语法
httpd -t
重启一下服务
systemctl restart httpd
测试一下站点是否能够访问
curl http://www8.group8.example.com
配置web内容的访问
在您的system1上的web服务器的DocumentRoot目录下,建立一个名为private的目录,要求以下:
从http://server.group8.example.com/pub/private.html 下载一个文件副本到这个目录,而且重命名为index.html
不要对这个文件的内容作任何修改
从system1上,任何人均可以浏览private的内容,可是从其余系统不能访问这个目录的内容
vim web.conf
<Directory /var/www/web1/private>
order deny,allow
deny from all
allow from 172.24.8.11 127.0.0.1
</Directory>
<Directory /var/www/virtual/private>
order deny,allow
deny from all
allow from 172.24.8.11 127.0.0.1
</Directory>
检测语法
httpd -t
cd /var/www/
ls
cd web1/
重启一下服务
systemctl restart httpd
mdir private
cd private/
ls
wget http://server.group8.example.com/pub/private.html
ls
mv private.html index.html
ls
cat index.html
cd ..
ls
cp -r private/ /var/www/virtual/
ls /var/www/virtual/
重启一下服务
systemctl restart httpd
nslookup localhost
vim /etc/hosts
ping localhost
实现动态web内容
在system1上配置提供动态web内容,要求:
动态内容由名为 wsgi.group8.example.com 的虚拟主机提供
虚拟主机侦听在端口8909
从http://server.group8.example.com/pub/webinfo.wsgi 下载一个脚本,而后放在适当的位置,不管如何不要修改此文件的内容
客户端访问 http://wsgi.group8.example.com:8909/ 时,应该接收到动态生成的web页面
此http://wsgi.group8.example.com:8909/ 必须能被group8.example.com 域内的全部系统访问
安装一下软件包
yum -y install mod_wsgi
查找一下配置文件
rpm -ql mod_wsgi
mkdir /var/www/web2
cd /var/www/web2
ls
wget http://server.group8.example.com/pub/webinfo.wsgi
ls
设置防火墙
firewall-cmd --permanent --add-port=8909/tcp
firewall-cmd --reload
查看一下SELinux
getenforce
写入
listen 8909
<Virtualhost *:8909>
ServerName wsgi.group8.example.com
WSGIscriptalias /var/www/web2/webinfo.wsgi
</Virtualhost>
检查一下语法
httpd -t
重启一下服务
systemctl restart httpd
semanage port -a -t http_port_t -p tcp 8909
重启一下服务
systemctl restart httpd
rpm -ql mod_wsgi
配置一个数据库
在system1上建立一个Maria DB数据库,名为Contacts,要求:
数据库应该包含来自数据库复制的内容,复制文件的URL为http://server.group8.example.com/pub/users.mdb
数据库只能被localhost访问
除了root用户,此数据库只能被用户Mary查询,此用户密码为redhat
root用户的数据库密码为redhat ,同时不容许空密码登陆
下载一下这个数据库
wget http://server.group8.example.com/pub/users.mdb
安装数据包
yum -y install mariadb*
yum groupinstall mariadb
重启一下服务
systemctl enable mariadb
systemctl start mariadb
设置防火墙
firewall-cmd --permanent -add-service=mysql
firewall-cmd --reload
mysql
mysql_secure_installation
y
y
用root用户登陆一下数据库
mysql -u root -p redhat
showdatabases;
建立一个数据库
create database Contacts
查看一下数据库是否建立
show databases;
导入数据
use Contacts;
source /root/users.mdb
show tables;
设置数据库中Mary用户的权限
grant select on Contacts.* to Mary@'localhost' identified by 'redhat';
用Mary用户登陆数据库测试
mysql -u Mary -p redhat
show databases;
use Contacts;
show tables;
select * from u_loc
数据库查询
在system1上使用数据库Contacts,并使用相应的SQL查询如下回答下列问题:
密码是fadora 的人的姓名是什么
有多少人的姓名是John,同时居住在Santa Clara
use Contacts;
show tables;
select * from u_name;
查看表结构
describe u_name;
describe u_passwd;
select * from u_name,u_passwd where u_name.userid=u_passwd.uid and u_passwd.password='fadora';
firstname 是 名字
lastname 是 姓氏
describe u_loc;select * from u_loc,u_name where u_loc.location='Santa Clara' and u_name.firstname='John' and u_loc.uid=u_name.userid;