一、RHCSA题目详解
0.破解虚拟机root用户密码,启动时停留在引导界面
0.1进入如下菜单时按e进入编辑模式
0.2光标向下移动,在linux16一行的末尾追加rd.break,打断系统正常进入程序
0.3然后按ctrl+x启动,最终会停留在修复模式
输入指令mount,查看当前sysroot(根目录)的挂载,发现是ro只读的,为了让一会我们执行的修改密码指令能够录入系统,我们需要把此sysroot挂载改为rw
mout -o remount,rw /sysroot/
输入指令chroot /sysroot,修改根目录位置,进入sh指令集功能。
输入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
然后选择Edit a connection
然后Edit编辑eth0接口
光标移动到右下角,选ok,
Quit退出编辑
在bash中输入指令重启网络服务 采用ifconfig命令可以查看ip是否已经修改成功
然后设置主机名 #nmtui
2. 配置SElinux开机默认为Enforcing模式
vim /etc/sysconfig/selinux SELINEX=enforcing setenforce 1 验证:getenforce -> Enforcing
3. 为您的系统配置一个默认的软件仓库,软件仓库的地址以考试实际数据为主。
vim /etc/yum.repos.d/rhel.repo
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
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 命令执行安装即可。重启
后内核自动更新为最新的,并保留以往的内核。
11. 配置你的主机账号和密码验证方式为 LDAP 方式
Basedn:dc=example ,dc=com
Ldapserver: instructor.example.com
通过 ldapuser15可以登录成功,ldapuser15密码为:password。证书可以从以下目录下载:http://instructor.example.com/pub/ EXAMPLE-CA-CERT,用户登录后是没有宿主目录
的,除非你配置了后续题目中的 autofs
然后点击下载 CA 证书
然后点确定
如上图然后点应用
然后用下面命令测试
(也可以使用 id ldapuser15检查是否学习到用户信息)
因为没有做 autofs,所以是没有加目录的。
12. 配置 autofs,实现 ldapuser15登录成功后,有家目录/home/guests/ldapuser15。家目录
在 instructor.example.com 上被 nfs 共享为:/home/guests/ldapuser15。(额外要求,其
它的 ldap 用户登录成功后也能正常使用宿主目录,这条要看考试里问不问)
13. 配置 NTP
方法一:
填写完点击确定
方法二
[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
15. 创建一个 2G 的交换分区,并开机自动生效,但不影响原有的 swap 分区
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; 查看当前数据库使用状态