RH131的考试题
前提:
一、每位同学的IP地址为172.16.X.1, 子网掩码为255.255.0.0,网关为172.16.0.1,DNS服务器为172.16.0.1,主机名为stuX.magedu.com,其中X为你的座位号;
二、yum源为http://172.16.0.1/yum/{Server,Cluster,ClusterStorage,VT,errata};
1、安装操作系统,要求:
1)新建一个虚拟机,要求内存大于等于512M,虚拟SCSI磁盘大小为320G,有两块网卡:第一块网卡为桥接模式,第二块网卡为仅主机模式;
2)下载ftp://172.16.0.1/pub/images/boot.iso文件至物理机,并以之作为启动盘启动安装过程;
3)在安装启动界面boot:提示符后面输入(引号里面的内容):"linux ip=172.16.X.1 netmask=255.255.0.0 gateway=172.16.0.1 dns=172.16.0.1 ks=http://172.16.0.1/exam.cfg"
4)安装完成后需在事先排除系统故障,而后继续后面的题目;
a) root用户密码未知,需要修改为你所需要的密码;
b) grub损坏;
c) 系统会莫名其妙地重启;
排除故障的过程:
1、在boot:后输入linux rescue 进去救援模式
2、之后就是一些命令
#chroot /mnt/sysimage
#vim /etc/inittab 把级别3后面改为对应的3 级别5改为对应的5
#vim /etc/rc.local 中的 把里面的shutdown -r now 注释掉或者直接删掉
# passwd
#vim /etc/grub.conf
#cp /etc/grub.conf /boot/grub/grub.conf
#grub 进入grub
#root (hd0,0)
#setup (hd0)
退出grub
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
2、创建一个空间大小为10G的RAID5设备;其chuck大小为32k;要求此设备开机时可以自动挂载至/backup目录;
[root@stu19 ~]# fdisk /dev/sda 4个5G的 fd 格式
[root@stu19 ~]# partprobe
[root@stu19 ~]# mdadm -C /dev/md1 -a yes -l 5 -n 3 -x 1 -c 32 /dev/sda{5,6,7,8}
[root@stu19 ~]# mdadm --detail /dev/md1 查看raid 详细信息
[root@stu19 ~]# mke2fs -j -L RIAD5 /dev/md1
[root@stu19 ~]# mkdir /backup
[root@stu19 ~]# vim /etc/fstab
LABEL=RAID5 /backup ext3 defaults 0 0
[root@stu19 ~]# mount -a
[root@stu19 ~]# mount
3、创建一个由两个物理卷组成的大小为8G的卷组myvg,要求其PE大小为8M;而后在此卷组中创建一个大小为4G的逻辑卷lv1,此逻辑卷要能在开机后自动挂载至/users目录;
[root@stu19 ~]# fdisk /dev/sda 2个4G的 8e 格式
[root@stu19 ~]# partprobe
[root@stu19 ~]# pvcreate /dev/sda{9,10}
[root@stu19 ~]# vgcreate myvg -s 8M /dev/sda{9,10}
[root@stu19 ~]# lvcreate -n lv1 -L 4G -p rw myvg
[root@stu19 ~]# mke2fs -j -L lv1 /dev/myvg/lv1
[root@stu19 ~]# mkdir /users
[root@stu19 ~]# vim /etc/fstab
LABEL=lv1 /users ext3 defaults 0 0
4、完成以下任务:
(1)新建系统组mysql;新建系统用户mysql,要求其没有家目录且shell为/sbin/nologin;
(2)新建GID为600的组magedu;新建用户gentoo,要求其家目录为/users/gentoo,密码同用户名;
(3)新建用户centos,其家目录为/users/centos,密码同用户名;
(4)新建用户www,其家目录为/users/www;
(5)用户gentoo和centos均以magedu为其附加组;
[root@stu19 ~]# vim useradd.sh
#!/bin/bash
useradd -s /sbin/nologin -M mysql
groupadd -g 600 magedu
useradd -d /users/gentoo gentoo
echo gentoo | passwd --stdin gentoo
useradd -d /users/centos centos
echo centos | passwd --stdin centos
useradd -d /users/www www
usermod -a -G magedu gentoo
usermod -a -G magedu centos
5、创建一个2G的分区,文件系统为ext3,卷标为DATA,块大小为1024,预留管理空间为磁盘分区的3%,要求开机后可以自动挂载至/data目录,并且自动挂载的设备要使用卷标进行引用;
[root@stu19 ~]# fdisk /dev/sda
[root@stu19 ~]# partprobe
[root@stu19 ~]# mke2fs -j -L DATA -b 1024 -m 3 /dev/sda11
[root@stu19 ~]# mkdir /data
[root@stu19 ~]# vim /etc/fstab
LABEL=DATA /data ext3 defaults 0 0
6、缩减前面创建的逻辑卷lv1的大小至2G;要求gentoo的家目录等不能丢失;缩减完成后以gentoo用户下载http://172.16.0.1/pub/Sources/new_lamp/httpd-2.2.19.tar.bz2至gentoo自己的
家目录;
[root@stu19 ~]# umount /users/
[root@stu19 ~]# e2fsck -f /dev/myvg/lv1
[root@stu19 ~]# resize2fs /dev/myvg/lv1 2G
[root@stu19 ~]# lvreduce -L 2G /dev/myvg/lv1
[root@stu19 ~]# lftp 172.16.0.1
# cd /pub/Sources/new_lamp/
#get httpd-2.2.19.tar.bz2
[root@stu19 ~]# mv httpd-2.2.19.tar.bz2 /users/gentoo
7、复制文件/etc/rc.d/rc.sysinit至/data目录,其属主为root用户,属组为root组;要求此文件可以被任何人读取,可以被gentoo用户和magedu组读写,但centos没有任何访问权限;
[root@stu19 ~]# cp /etc/rc.d/rc.sysinit /data
[root@stu19 ~]# chown -R root:root /data/rc.sysinit
[root@stu19 ~]# chmod o+r /data/rc.sysinit
[root@stu19 ~]# setfacl -m g:magedu:rw- /data/rc.sysinit
[root@stu19 ~]# setfacl -m u:gentoo:rw- /data/rc.sysinit
[root@stu19 ~]# setfacl -m u:centos:--- /data/rc.sysinit
8、配置centos用户能以root用户的身份执行useradd,userdel、usermod和passwd命令(但不能修改root用户的密码)且命令执行时不需要输入密码;而后以centos的身份删除用户www,但不要删除其家目录;
[root@stu19 ~]# visudo
centos ALL=(root) NOPASSWD:/usr/sbin/useradd, /usr/sbin/userdel, /usr/sbin/usermod, /usr/bin/passwd, !/usr/bin/passwd root
[centos@stu19 ~]$ sudo /usr/sbin/userdel www
9、配置本地的yum源指向,而后安装mysql-server和httpd软件包;
[root@stu19 ~]# mkdir /feng
[root@stu19 ~]# mount /dev/cdrom feng
[root@stu19 ~]# vim /etc/yum.repos.d/feng.repo
[bash]
name=Server
baseurl=file:///feng/Server
gpgcheck=0
enabled=1
[VT]
name=VT
baseurl=file:///feng/VT
gpgcheck=0
enabled=1
[CS]
name=ClusterStorage
baseurl=file:///feng/ClusterStorage
gpgcheck=0
enabled=1
[Cluster]
name=Cluster
baseurl=file:///feng/Cluster
gpgcheck=0
enabled=1
~
[root@stu19 ~]# yum install mysql-server
[root@stu19 ~]# yum install httpd
10、下载并编译安装axel;软件包所在的地址:ftp://172.16.0.1/pub/Sources/downloader;要求:
1)软件的默认安装目录为/usr/local/axel;
2)安装完成以后,所有用户可以直接执行axel命令,而且不用输入命令的完整的路径;
[root@stu19 ~]# lftp 172.16.0.1
# cd /pub/Sources/downloader
#get axel
#bye
#tar xvf axel
#cd axel
#./configure --prefix=/usr/local/axel
#make
#make install
#vim /etc/profile
添加 PATH=$PATH:/usr/local/axel/bin
12、新建目录/backup/test,其属组为magedu,且此组具有读写权限,其它用户没有任何权限;magedu组成员在此目录中创建的文件的属组都需要是magedu,且magedu组中每个成员在此目录中只能删除自己的文件;
[root@stu19 ~]# mkdir /backup/test
[root@stu19 ~]# cd /backup/
[root@stu19 backup]# chown :magedu test/
[root@stu19 backup]# chmod o= test/
[root@stu19 backup]# chmod g+w test/
[root@stu19 backup]# chmod g+s,o+t test/
13、配置当前主机内核参数,以允许在不同的网络接口间转发数据包;要求此项配置即刻生效并且在重新启动系统后不会失效。
[root@stu19 ~]# vim /etc/sysctl.conf
把里面的net.ipv4.ip_forwark= 后面这个值改为1
[root@stu19 ~]# sysctl -p
14、启用本机的VNC服务,并确保root可用可以使用redhat作为密码登录系统;
[root@stu19 ~]# vncpasswd
Password:
Verify:
[root@stu19 ~]# vncserver &
[root@stu19 ~]# cd .vnc/
[root@stu19 ~]# vim xstartup
把里面最后的那个twn改为gnome-session
[root@stu19 ~]# vncserver -kill :1
15、配置本机每隔两天在凌晨3点20备份一次/etc目录,备份文件存放至/backup目录,文件名形如:etc-2011-11-20.tar.bz2;
[root@stu19 ~]# which tar
/bin/tar
[root@stu19 ~]# crontab -e
20 3 */3 * * /bin/tar jcf /backup/etc-`date +%F`.tar.bz2 /etc
16、使用find命令完成如下任务:
(1)找到/etc目录下属于root用户且至少7分钟没有访问过的普通文件,并将它们复制到/tmp/test目录;
要求:/tmp/test目录需要自己事先创建,并且为其创建符号链/users/test;
[root@stu19 ~]# mkdir /tmp/test
[root@stu19 ~]# ln -sv /tmp/test/ /users/
[root@stu19 ~]# find /etc/ -user root -amin +7 -type f -exec cp {} /tmp/test/ \;
(2)找到/users目录下所有没有属主且没有属组的文件,并将其属组修改为gentoo,将其属组修改为magedu;
[root@stu19 ~]# find /users/ -nouser -nogroup -exec chown gentoo:magedu {} \;
17、为centos用户的家目录创建磁盘使用限额,要求其能够使用的磁盘空间最大为100M,软限制为120M;要求完成后验正其有效性;
[root@stu19 ~]# vim /etc/fstab
在gentoo的家目录默认类型里输入usrquota
[root@stu19 ~]# mount -o remount /users/
[root@stu19 ~]# quotacheck -cmu /users/
[root@stu19 ~]# quotaon /users
[root@stu19 ~]#edquata -u centos
在soft下122880 这个是软限制
后面hard下102400 这个是硬限制
可以通过:
[root@stu19 ~]#su - centos
[root@stu19 ~]#dd if=/dev/zero of=./feng bs=1M count=30 这个命令创建大文件来验证一下
18、为逻辑卷lv1创建快照卷lv1_snap,要求此卷只读,且大小为1G;而后通过此卷将数据备份至/backup目录归档压缩存放;
[root@stu19 ~]# lvcreate -s -L 1G -p r -n lv1_snap /dev/myvg/lv1
[root@stu19 ~]# mkdir /jun
[root@stu19 ~]# mount /dev/myvg/lv1_snap /jun
[root@stu19 ~]# tar jcf /backup/feng.tar.bz2 /jun/*
19、写一个脚本analyzelog.sh,完成日志分析:
说明:此脚本可以接受选项(i,d,t,a),使用格式:analyzelog <-i IP|-d DATE|-t TYPE|-a> LOG_FILE :
(1)当用户使用选项-i时,统计出LOG_FILE文件中指定IP地址的访问次数(通常每一行为一次);
(2)当用户使用选项-d时,统计出LOG_FILE文件中指定日期(某一天,如:16/Feb/2012)内每个IP地址访问的次数;如:
192.168.0.1:33
192.168.0.195:17
...
(3)当用户使用选项-t时,统计出LOG_FILE文件中以后缀后指定类型的文件(如.png表示png格式的图片)被访问的次数;
(4)当用户使用选项-a时,统计出LOG_FILE文件中每个IP地址访问的次数;
样例日志文件为access_log、access_log.1、access_log.2,下载地址为:ftp://172.16.0.1/pub/docs
[root@stu19 ~]# vim analyzelog.sh
#!/bin/bash
USAGE (){
echo "analyzelog.sh <-i IP | -d DATE | -t TYPE | -a> LOG_FILE"
}
IP (){
if ! grep -o "$OPTARG" $FILE &> /dev/null; then
return 11
fi
echo -n "${OPTARG}: "
grep -o "$OPTARG" $FILE | wc -l
}
DATE(){
if ! grep "\[$OPTARG\/" $FILE &> /dev/null;then
return 12
fi
grep "\[$OPTARG\/" $FILE | cut -d " " -f1 | sort | uniq -c | sort -n | sed '1,$s@\(.*\)[[:space:]]\{1\}\(.*\)@\2:\1@g'}
TYPE(){
if ! grep -o "\.$OPTARG " $FILE &> /dev/null;then
return 13
fi
grep "\.$OPTARG " $FILE | wc -l
}
ALLIP( ){
if ! cat $FILE &>/dev/null;then
return 14
fi
cat $FILE |cut -d " " -f1 | sort | uniq -c | sort -n | sed '1,$s@\(.*\)[[:space:]]\{1\}\(.*\)@\2:\1@g'}
while getopts ":i:d:t:a" SWITCH ;do
shift $[$OPTIND-1]
FILE=$1
if [ -z $FILE ]; then
USAGE
exit 0
fi
case $SWITCH in
i)
IP $OPTARG
[ $? -eq 11 ] && echo "Wrong IP..";;
d)
DATE
[ $? -eq 12 ] && echo "Wrong DATE ..";;
t)
TYPE $OPTARG
[ $? -eq 13 ] && echo "Wrong YYPE .." ;;
a)
ALLIP
[ $? -eq 14 ] && echo "Wrong FILE..";;
\?)
USAGE;;
esac
done