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/p_w_picpaths/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/sysp_w_picpath
#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