感谢支持
我们一直在努力

Linux操作系统基础进阶练习题

1)设定eth0网卡地址为192.168.0.11,子网为255.255.255.0,MTU的值为6000
#ifconfig eth0 192.168.0.11 netmask 255.255.255.0 mtu 6000
 
2)用route来增加一个路由,目的网段为192.168.1.0
#route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0
 
3)删除以上建立的路由信息
#route del -net 192.168.1.0 netmask 255.255.255.0 dev eth0
 
4)加入默认网关192.168.0.2
#route add default gw 192.168.0.2
 
5)删除默认网关192.168.0.2
#route del default gw 192.168.0.2
 


6)用ip命令来操作管理网络
6.1)用ip命令显示eth0的介面信息
6.2)关闭eth0网卡
6.3)更改eth0网卡代号为ckhitler,并查看结果
6.4)更改eht0网卡的MAC地址为bb:bb:bb:bb:bb:bb,并查看结果
6.5)开启eth0网卡


#ip link show
#ip -s link show eth0
#ip link set eth0 down
#ip link set eth0 name ckhiler
#ip link show
#ip link set eth0 address bb:bb:bb:bb:bb:bb
#ip link show
#ip link set eth0 up
 
7)启用dhcp的client
#dhclient eth0


8)PING网关地址192.168.0.1,判断MTU包,是否在1000以内
#ping -c 2 -s 1000 -M do 192.168.0.1


9)PING网关地址192.168.0.1,判断MTU包,是否在1000以内
#ping -c 2 -s 2000 -M do 192.168.0.1
 
10)追踪到www.britepic.org的路由表
#traceroute -n www.britepic.org
 
11)用netstat显示端口信息
11.1)显示TCP/UDP端口状态为LISTEN的信息
11.2)显示TCP/UDP端口状态为ESTABLISHED的信息


#netstat -tunl
#netstat -tun


12)用nslookup来查询www.britepic.org域名的正解信息
#nslookup www.britepic.org


13)用nslookup来查询202.108.9.39地址的反解信息
#nslookup 202.108.9.39
 
14)用tcpdump来监视网络数据包信息
14.1)只监视网卡eth0的网络数据包
14.2)只监视网卡eth0及端口25的网络数据包
14.3)只监视网卡eth0及端口25的网络数据包,并用16进程方式显示
14.4)只监视网卡eth0及端口25和源地址为192.168.0.3的网络数据包,并用16进程方式显示
14.5)只监视网卡eth0及端口25和源地址为192.168.0.3而长度为10240的网络数据包
14.6)只监视网卡eth0及端口25和源地址为192.168.0.3的网络数据包,以Snarf的形式抓完整的数据包到/tmp/data.cap文件
 
#tcpdump -i eth0 -nn
#tcpdump -i eth0 -nn port 25
#telnet 192.168.1.12 25
#tcpdump -i lo -nn -X ‘port 25’
#tcpdump -i eth0 -nn ‘port 25 and src host 192.168.0.3’ -X
#tcpdump -i eth0 -s 10240 -nn ‘port 25 and src host 192.168.0.3’ -X
#tcpdump -i eth0 -nn ‘port 25 and src host 192.168.0.3’ -s0 -w /tmp/data.cap


15)用nc命令监视本机地址端口22的信息,并将信息写入test.txt文件
#nc -vv -o test.txt 192.168.0.12 22


16)用nmap扫描192.168.0.12地址的TCP/UDP端口
#nmap -sTU 192.168.0.12


17)用nmap扫描192.168.0.0/24网段活跃的主机
#nmap -sP 192.168.0.0/24


18)用nmap扫描192.168.0.0/24网段的端口,端口范围在1-1024
#nmap -p 1-1024 192.168.0.0/24

linux shell
1).更改Shell
1.1).利用PS1变量改变命令提示,新提示符包括使用者帐号名称(u),主机名(h),完整路径(w),时间(A),历史命令个数(\#)
1.2).更改ls显示目录文件的颜色为白色字体,蓝色背景
参考答案:
PS1='[\u@\h \w \A #\#]\$ ‘
echo $LS_COLORS
declare -x LS_COLORS=$LS_COLORS:”di=00;37;44″
2).显示本SHELL的PID值
参考答案:
echo $$
3).显示上个命令的回传码
参考答案:
echo $?
4).提示使用者 30 秒內输入自己的名字,将该输入字串存储到 named 变量
参考答案:
read -p “Please input your name: ” -t 30 named
5).变量运算
5.1).进行 100+300+50 的加运算,将结果存入数值变量sum
5.2).定义a=3,b=5,输出a+b的和
5.3).显示输出Your cost is $5.00
参考答案:
declare -i sum=100+300+50
echo $sum
a=3
b=5
echo $[$a + $b]
echo Your cost is \$5.00
6).让sum变量变成环境变量
参考答案:
declare -x sum
export|grep sum
7).将sum变量变成只读变量
参考答案:
declare -r sum
sum=love
8).立即将当前的历史命令写到history档案中
参考答案:
history -w
9).显示所有stty的参数,将erase更改为ctrl+h
参考答案:
stty -a
stty erase ^h
10).将erase更改为默认的后退键(backspace)
参考答案:
stty erase ^?
11).打印输出PATH 变量的第五个路径
参考答案:
echo $PATH|cut -d ‘:’ -f 5
12).打印输出PATH变量的第3列与第5列
参考答案:
echo $PATH | cut -d ‘:’ -f 3,5
13).输出export命令的信息,但要求是每行第12字符以后的字串
参考答案:
export | cut -c 12-
14).显示/etc/passwd 內容是以 : 来分隔的,以字符形式来排序第三栏
参考答案:
cat /etc/passwd | sort -t ‘:’ -k 3
15).显示/etc/passwd 內容是以 : 来分隔的,以数字形式来排序第三栏
参考答案:
cat /etc/passwd | sort -t ‘:’ -k 3 -n
16).聚合last命令的帐号一栏
参考答案:
last | cut -d ‘ ‘ -f1 | sort | uniq -c
17).将ls -l /home资料存一份到 ~/homefile ,同时输出到屏幕
参考答案:
ls -l /home | tee ~/homefile | more
18).将ls -l /资料追加一份到~/homefile下,同时输出到屏幕
参考答案:
ls -l / | tee -a ~/homefile | more
19).打印输出/etc/passwd文件,将冒号 (:) 删除
参考答案:
cat /etc/passwd | tr -d ‘:’
20).将 /etc/passwd 与 /etc/shadow 相关资料整合成一栏
参考答案:
join -t ‘:’ /etc/passwd /etc/shadow
21).将 /etc/passwd 与 /etc/group 整合,依据的是/etc/passwd第4列的GID,及/etc/group第3列的GID
参考答案:
join -t ‘:’ -1 4 /etc/passwd -2 3 /etc/group
22).将 /etc/passwd 与 /etc/shadow 同一行贴在一起
参考答案:
paste /etc/passwd /etc/shadow
23).通过ulimit,显示所有当前资源极限
参考答案:
ulimit -a
24).通过ulimit设置创建文件的最大块为1,一块为512字节,拷贝passwd文件进行测试
参考答案:
ulimit -f 1
cp /etc/passwd .
25).通过ulimit设置创建文件的最大块数为无限制
参考答案:
ulimit -f unlimited
26).查看/etc/passwd文件,依据每行的第二个字符进行排序
参考答案:
cat /etc/passwd|sort -k 1.2
27).查看/etc/yp.conf是否有拼写错误
参考答案:
aspell check /etc/yp.conf
28).xargs的用法
28.1).新建三个文件:1.txt,2.txt,3.txt
28.2).用ls -l将三个文件名重定向到delete.txt
28.3).用xargs通过delete.txt将三个文件删除
参考答案:
touch 1.txt 2.txt 3.txt
ls -l 1.txt 2.txt 3.txt|awk ‘{print $9}’>delete.txt
cat delete.txt |xargs rm -f
29).BASH内置的命令集
29.1).查看内置的命令集
29.2).尝试打开BASH下vi属性,按esc键进入vi的命令操作介面,敲i进入插入,敲入hacker,敲esc键,用dd删除当前行
29.3).关闭BASH的vi属性
参考答案:
set -o
set -o vi
set +o vi或用bash命令恢复
30.1).在shell下搜索之前最近输入的以aspell为关键词的命令
30.2).输入aspell check /etc/pnm2ppa.conf,将光标移到行首,再将光标移到行尾
30.3).剪切命令行中光标所在处之前的所有字符(不包括自身),粘贴刚才剪切的命令行
30.4).退到行首,剪切命令行中光标所在处之后的所有字符,包括自身
参考答案:
ctrl+r
输入aspell
Ctrl+a
Ctrl+e
Ctrl+u
Ctrl+y
Ctrl+a
Ctrl+k1)在每行的行首增加字符串HITLER
参考答案:
:g/^/s//HITLER/g
2)在每行的行尾添加LOVE
参考答案:
:g/$/s//LOVE/g
3)从文本的第3行至最后一行的行首全部插入字符串“HACKER”
参考答案:
:3,$s/^/HACKER/
4)在整个文件中的root替换为特定字符串hacker
参考答案:
:%s/root/hacker/g
5)将3到7行的sbin换成xxxx
参考答案:
:3,7s/sbin/xxxx/
6)移动光标,到5行,到行尾,到行首,下移10行,上移7行,到屏幕的底层,到屏幕的顶层,到屏幕的中间
参考答案:
5G,$,0,10+,7-,L,H,M
7)移动到10行,左移10个字符,删除到行首,删除到行尾
参考答案:
10G,10->,d0,d$
8)将1行到5行之间的内容拷贝到第10行下
参考答案:
:1,5 co 10
9)将1行到3行之间的内容移至到第5行下
参考答案:
:1,3 m 5
10)将1行到15行之间的内容删除
参考答案:
:1,15 d
11)执行shell命令ls -l /tmp
参考答案:
:! ls -l /tmp
12)将命令ls -l /root的输出结果放到当前行
参考答案:
!!ls -l /root
13)在打开的文件file中光标所在处读入/etc/passwd
参考答案:
:r /etc/passwd
14)仅仅把第20~59行之间的内容存盘成文件/tmp/1
参考答案:
:20,59w /tmp/1
15)移动到第1行,对当前的行到文件尾的数据进行排序
参考答案:
G
!}sort
16)设置vi中色彩高亮
参考答案:
syntax on
17)显示在vi状态行上的vi状态信息,包括正在编辑的文件名、是否修改过、当前行号、文件的行数以及光标之前的行占整个文件的百分比
参考答案:
ctrl+G1)将/etc/man.config复制到/tmp目录下,用gzip压缩
参考答案:
cd /tmp
cp /etc/man.config .
gzip man.config
2)查看/tmp/man.config.gz文件里的内容
参考答案:
zcat man.config.gz
3)解压缩man.config.gz
参考答案:
gzip -d man.config.gz
4)将man.config.gz用最佳压缩比压缩,且包留副本
参考答案:
gzip -9 -c man.config >man.config.gz
5)将man.config用bzip2压缩
参考答案:
bzip2 -z man.config
6)读man.config.bz2的内容
参考答案:
bzcat man.config.bz2
7)解压缩man.config.bz2
参考答案:
bzip2 -d man.config.bz2
8)用最佳的压缩比例压缩,且保留副本
参考答案:
bzip2 -9 -c man.config>man.config.bz2
9)用tar的gzip压缩打包/etc目录下所有文件
参考答案:
tar -zcvf /tmp/etc.tar.gz /etc
10)查看etc.tar.gz文件里的内容
参考答案:
tar -tzvf /tmp/etc.tar.gz
11)用tar的bzip2压缩打包/etc/目录下的所有文件
参考答案:
tar -jcvf /tmp/etc.tar.bz2 /etc
12)查看etc.tar.bz2文件中的内容
参考答案:
tar -jtvf etc.tar.bz2
13)只解压缩etc.tar.gz包中etc/passwd文件
参考答案:
tar -zxvf /tmp/etc.tar.gz etc/passwd
14)用tar的gzip压缩打包/etc/目录下的文件,并加上权限
参考答案:
tar -zcvpf /tmp/etc.tar.gz /etc
15)用tar的gzip压缩打包/etc/目录下比2007-06-01新的文件
参考答案:
tar -N ‘2007/06/01’ -zcvf etc.tar.gz /etc
16)用tar的gzip压缩打包/etc/所有文件,但不包括/etc/passwd
参考答案:
tar –exclude /etc/passwd -zcvf myfile.tar.gz /etc
17)备份/dev/sda的mbr
参考答案:
dd if=/dev/sda ōf=/tmp/mbr.back bs=512 count=1
18)用cpio备份/etc/目录下所有的普通文件
参考答案:
find /etc -type f | cpio -o > /tmp/etc.cpio
19)用cpio解压缩/tmp/etc.cpio
参考答案:
cpio -idvm < /tmp/etc.cpio

1)读分区/dev/sda1的文件系统详细信息


参考:


dumpe2fs /dev/sda1


2)查看LINUX内核支持的文件系统


参考:


ls -l /lib/modules/`uname -r`/kernel/fs


3)查看已经启用的档案系统


参考:


cat /proc/filesystems


4)将系统内的所有特殊档案格式及名称都列出來


参考:


df -aT


5)用fdisk分割磁盘/dev/sdb.分区如下:


sdb1为主分区1200M


sdb2为扩展分区1200M


sdb5为逻辑分区500M


sdb6为逻辑分区300M


sdb7为逻辑分区400M


其中sdb6为swap,sdb7为vfat32


6)将sdb5格式化为ext3,且名称为logical,block为2048,inode为4096


参考:


mke2fs -j -L logical -b 2048 -i 4096 /dev/sdb5


7)用fsck检查/dev/sdb5,显示进度,指定文件系统为ext3


参考:


fsck -C -t ext3 /dev/sdb5


8)新建/mnt/sdb5目录,挂载/dev/sdb5分区


参考:


mkdir /mnt/sdb5


mount -t ext3 /dev/sdb5 /mnt/sdb5


9)将/dev/sdb5重新挂载,并加入ro


参考:


mount -o remount,ro /mnt/sdb5/


10)将/mnt/sdb5卸载


参考:


umount /mnt/sdb5


11)将label为logical的分区挂载到/mnt/sdb5


参考:


mount -t ext3 -L logical /mnt/sdb5


12)将/home目录挂载到/tmp/home上去


参考:


mkdir /tmp/home


mount –bind /home /tmp/home


13)建立sdc40设备,指定为存储设备,主设备号3,次设备号10


参考:


mknod /dev/sdc40 b 3 10


13)改变/dev/sdb5设备的label为sdb5,并用dumpe2fs查看显示结果


参考:


e2label /dev/sdb5 sdb5


dumpe2fs -h /dev/sdb5|grep “volume name”


14)格式化/dev/sdb7为ext2,用tune2fs -j将其转化为ext3


参考:


mkfs -t ext2 /dev/sdb7


tune2fs -j /dev/sdb7


15)设定/dev/sdb7超级块属性:


15.1)设置每两次进行文件系统完整性检查的最大挂装次数为0,即不检查


15.2)设置每两次进行文件系统完整性检查的时间间隔为0,即不检查


15.3)列出/dev/sdb7的超级块属性


参考:


tune2fs -c 0 -i 0 /dev/sdb7


tune2fs -l /dev/sdb7


16)当本系统第一次使用ext3文件系统时,可能要将ext3模块重新加载进initrd中


参考:


mkinitrd -f -v /boot/initrd-$(uname -r).img $(uname -r)


17)查看主板上IDE接口信息


参考:


lspci -v


18)查看硬盘/dev/sdb的读写效能


参考:


hdparm -Tt /dev/sdb


19)将/dev/sdb6格式化为swap,并用swapon激活,用free查看,最后关闭/dev/sdb6的swap


参考:


mkswap /dev/sdb6


swapon /dev/sdb6


free -m


swapoff /dev/sdb6


free -m


20)用dd建立交换文件,用swapon激活


参考:


dd if=/dev/zero ōf=/tmp/swap bs=4k count=16382


mkswap /tmp/swap


free -m


swapon /tmp/swap


free -m


swapoff /tmp/swap

1)建立测试组gtest,测试用户test1,test2,test3以上两个测试用户的初始组为gtest
参考答案:
groupadd gtest
useradd -m -g gtest test1
useradd -m -g gtest test2
useradd -m -g gtest test3
passwd test1
passwd test2
passwd test3
2)让/dev/sdb5支持quota
参考答案:
vi /etc/fstab
/dev/sdb5               /mnt/sdb5               ext3    usrquota,grpquota 1 2
3)重新挂载/dev/sdb5,并检查结果
参考答案:
mount -o remount /dev/sdb5
cat /etc/mtab|grep sdb5
4)扫描磁盘使用者情况,产生aquota.group和aquota.user
参考答案:
quotacheck -avug
ls /mnt/sdb5/* -l
5)启动quota
参考答案:
quotaon -avug
6)编辑用户test1的block软限制为4M,硬限制为5M
参考答案:
edquota -u test1
  /dev/sdb5                         0       4096       5120          0        0        0
7)切换到test1用户,用dd产生三个测试文件,分别是3M,4M,5M,观察结果
参考答案:
chmod 777 /mnt/sdb5
su – test1
cd /mnt/sdb5
dd if=/dev/zero ōf=test3 bs=1024k count=3
dd if=/dev/zero ōf=test3 bs=1024k count=4
dd if=/dev/zero ōf=test3 bs=1024k count=5
8)返回root用户,编辑用户test2的inodes,软限制60,硬限制100
参考答案:
edquota -u test2
/dev/sdb5                         2          0          0          1       60      100
9)写一个测试inodes脚本,要求在/mnt/sdb5上新建200个文件
参考答案:
vi test.sh
#!/bin/bash
declare -i i
for ((i=1; i<=200; i++))
do
        touch file$i;
done
10)将test1的quota复制给test3
参考答案:
edquota -p test1 test3
11)设定限定时间为1天
参考答案:
edquota -t
12)查看test1,test2,test3用户的quota
参考答案:
quota -vu test1 test2 test3
13)编辑组gtest的block的soft为30000,hard为40000,inodes的soft为1000,hard为2000
参考答案:
edquota -g gtest
/dev/sdb5                      3082          30000          40000          2        1000        2000
14)查看gtest组的quota
参考答案:
quota -vg gtest
15)查看系統內所有的具有quota的文件系统信息
参考答案:
repquota -av
16)查看用户和组的quota
参考答案:
repquota -aug
17)关闭系统所有的quota
参考答案:
quotaoff -a
18)测试test1和test2的quota是否已经关闭
参考答案:
su – test1
cd /mnt/sdb5
dd if=/dev/zero ōf=test10 bs=1024k count=10
exit
su – test2
cd /mnt/sdb5
sh -x test.sh
exit1)定制策略
1.1)设定INPUT为ACCEPT
1.2)设定OUTPUT为ACCEPT
1.3)设定FORWARD为ACCEPT
参考答案:
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
2)定制源地址访问策略
2.1)接收来自192.168.0.3的IP访问
2.2)拒绝来自192.168.0.0/24网段的访问
参考答案:
iptables -A INPUT -i eth0 -s 192.168.0.3 -j ACCPET
iptables -A INPUT -i eth0 -s 192.168.0.0/24 -j DROP
3)目标地址192.168.0.3的访问给予记录,并查看/var/log/message
参考答案:
iptables -A INPUT -s 192.168.0.3 -j LOG
4)定制端口访问策略
4.1)拒绝任何地址访问本机的111端口
4.2)拒绝192.168.0.0/24网段的1024-65534的源端口访问SSH
参考答案:
iptables -A INPUT -i eth0 -p tcp –dport 111 -j DROP
iptables -A INPUT -i eth0 -p tcp -s 192.168.0.0/24 –sport 1024:65534 –dport ssh -j DROP
5)定制CLIENT端的防火墙访问状态
5.1)清除所有已经存在的规则;
5.2)设定预设策略,除了INPUT设为DROP,其他为ACCEPT;
5.3)开放本机的lo可以自由访问;
5.4)设定有相关的封包状态可以进入本机;
参考答案:
iptables -F
iptables -X
iptables -Z
iptables -P   INPUT DROP
iptables -P  OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -m state –state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state –state INVALID -j DROP
6)定制防火墙的MAC地址访问策略
6.1)清除所以已经存的规则;
6.2)将INPUT设为DROP
6.3)将目标计算机的MAC设为ACCEPT
参考答案:
iptables -F
iptables -X
iptables -Z
iptables -P   INPUT DROP
iptables -A INPUT -m mac –mac-source 00-C0-9F-79-E1-8A -j ACCEPT
7)设定ICMP包,拒绝除192.168.6.0网段的所有ICMP数据包进入服务器
参考答案:
iptables -A INPUT -s ! 192.168.6.0 -p icmp -j DROP
8)定制防火墙的NAT访问策略
8.1)清除所有策略
8.2)重置ip_forward为1
8.3)通过MASQUERADE设定来源于192.168.6.0网段的IP通过192.168.6.217转发出去
8.4)通过iptables观察转发的数据包
参考答案:
iptables -F
iptables -X
iptables -Z
echo “1” > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.6.0 -o 192.168.6.217 -j MASQUERADE
iptables -L -nv
9)定制防火墙的NAT访问策略
9.1)清除所有NAT策略
9.2)重置ip_forward为1
9.3)通过SNAT设定来源于192.168.6.0网段通过eth1转发出去
9.4)用iptables观察转发的数据包
参考答案:
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat
echo “1” > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j SNAT –to 192.168.6.217
iptables -L -nv
10)端口转发访问策略
10.1)清除所有NAT策略
10.2)重置ip_forward为1
10.3)通过DNAT设定为所有访问192.168.6.217的22端口,都访问到192.168.6.191的22端口
10.4)设定所有到192.168.6.191的22端口的数据包都通过FORWARD转发
10.5)设定回应数据包,即通过NAT的POSTROUTING设定,使通讯正常
参考答案:
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat
echo “1” > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -d 192.168.6.217 -p tcp –dport 22 -j DNAT –to-destination 192.168.6.191:22
iptables -A FORWARD -p tcp -d 192.168.6.191 –dport 22 -j ACCEPT
iptables -t nat -I POSTROUTING -p tcp –dport 22 -j MASQUERADE

1)将/dev/sdb硬盘进行分区,分成两个区,指定类型为LVM


参考答案:


fdisk /dev/sdb


LVM的类型为8e


2)让内核读取最新的分区信息


参考答案:


partprobe


3)扫描pv卷,并将sdb1/sdb2指定为PV格式


参考答案:


pvscan


pvcreate /dev/sdb1


pvcreate /dev/sdb2


pvscan


4)查看PV的详细状态


参考答案:


pvdisplay


5)用sdb1和sdb2建立vg,vg名为ckvg,并指定PE为32MB


参考答案:


vgcreate -s 32M ckvg /dev/sdb1 /dev/sdb2


6)扫描vg


参考答案:


vgscan


7)显示ckvg的详细信息


参考答案:


vgdisplay


8)将sdb2从ckvg中抽除,并查看ckvg的详细信息


参考答案:


vgreduce ckvg /dev/sdb2


9)将sdb2加入到ckvg中,并查看ckvg的详细信息


参考答案:


vgextend ckvg /dev/sdb2


10)在ckvg上创建lv,空间大小为1000M,vl取名为cklv


参考答案:


lvcreate -L 1000M -n cklv ckvg


11)用ls查看新创建的lv


参考答案:


ll /dev/ckvg/cklv


12)搜索并显示lv


参考答案:


lvscan


lvdisplay


13)格式化cklv,新建目录/mnt/lvm,并将cklv挂载到/mnt/lvm


参考答案:


mke2fs -j /dev/ckvg/cklv


mkdir /mnt/lvm


mount -t ext3 /dev/ckvg/cklv /mnt/lvm/


14)扩展空间


@)卸载cklv


@)增加新分区/dev/sdb3


@)将/dev/sdb3做成pv


@)将/dev/sdb3加入到ckvg


@)将cklv再扩展1000M


@)用resize2fs处理cklv


@)从新挂载cklv


参考答案:


umount /mnt/lvm


fdisk /dev/sdb


partprobe


pvcreate /dev/sdb3


vgextend ckvg /dev/sdb3


vgdisplay


pvscan


lvextend -L +1000M /dev/ckvg/cklv


lvdisplay


resize2fs -f /dev/ckvg/cklv


mount -t ext3 /dev/ckvg/cklv /mnt/lvm/


df -h


15)移除LVM


@)先卸载系统上面的 LVM 磁区;


@)使用 lvremove 移除 LV ;


@)使用 vgchange -a n VGname 让 VGname 这个 VG 不具有 Active 的标志;


@)使用 vgremove 移除 VG:


@)使用 pvremove 移除 PV;


@)最后,使用 fdisk 修改 ID 回來啊!


参考答案:


umount /mnt/lvm


lvremove /dev/ckvg/cklv


vgchange -a n ckvg


vgremove ckvg


pvremove /dev/sdb1


pvremove /dev/sdb2


pvremove /dev/sdb3

1)列出logrotate套件所有的目录和文档
参考答案:
rpm -ql logrotate
2)列出logrotate套件的所有资讯
参考答案:
rpm -qi logrotate
3)列出logrotate套件的所有配置文档
参考答案:
rpm -qc logrotate
4)列出zip-2.3-27.i386.rpm包要求的环境
参考答案:
rpm -qpR zip-2.3-27.i386.rpm
5)用RPM校验/etc/crontab有没有被修改过
参考答案:
rpm -Vf /etc/crontab
6)修改/etc/crontab,再校验一下
参考答案:
echo “00 1 * * * root cat /etc/passwd” >> /etc/crontab
rpm -Vf /etc/crontab
7)重建rpm资讯库
参考答案:
rpm –rebuilddb
8)安装coreutils的SRPM包,并生成RPM套件
参考答案:
rpmbuild -ba coreutils.spec
9)承上题,生成SRPM套件
rpmbuild -bb coreutils.spec
10)自己建立一个RPM包
@)在SOURCES下新建一个SHELL
@)将shell,打包成tar.gz包
@)进行SPECS目录,编辑spec文件
@)根据生成的spec,打包成rpm包
@)安装rpm包,并校验
spec文件格式如下:
格式如下:
Summary:   This is a demo RPM package.
Name:      rpmbuild
Version:   1.0
Release:   1
License:   GPL
Group:     rpmbuild
Source:    rpmbuild.tar.gz
Url:       http://ckhitler.lupaworld.com
Packager:  ckhitler
%descrīption
This package is just a demo RPM.
%prep
%setup -c
%install
install -m 755 rpmbuild.sh /usr/local/bin/rpmbuild.sh
%files
/usr/local/bin/rpmbuild.sh
参考答案:
cd /usr/src/RedHat/SOURCES
echo “i love you qiu ming” > rpmbuild.sh
tar cvzf rpmbuild.tar.gz rpmbuild.sh
cd /usr/src/redhat/SPECS
vi rpmbuild.spec
Summary:   This is a demo RPM package.
Name:      rpmbuild
Version:   1.0
Release:   1
License:   GPL
Group:     rpmbuild
Source:    rpmbuild.tar.gz
Url:       http://ckhitler.lupaworld.com
Packager:  ckhitler
%descrīption
This package is just a demo RPM.
%prep
%setup -c
%install
install -m 755 rpmbuild.sh /usr/local/bin/rpmbuild.sh
%files
/usr/local/bin/rpmbuild.sh
rpmbuild -bb rpmbuild.spec
rpm -ivh /usr/src/redhat/RPMS/i386/rpmbuild-1.0-1.i386.rpm
rpm -qi rpmbuild
10)用cpio将rpm包转换cpio文件,再将其导入到新增的目录下
参考答案:
rpm2cpio sysstat-5.0.5-1.i386.rpm>sysstat.cpio
mkdir sysstat
mv sysstat.cpio sysstat
cpio -it<sysstat.cpio

1.1).下载lzo2和openvpn软件包,网址rpmfind.net


1.2).确认是否以加载tun模组,如未加载,手工加载,注:RedHat EL3(U5)以上均以在内核编译完成


1.3).在客户端/服务端安装:lzo2-2.02-2.el3.rf.i386.rpm,lzo2-devel-2.02-2.el3.rf.i386.rpm,openvpn-2.0.9-1.el3.rf.i386.rpm


参考答案:


lsmod|grep tun


modprobe tun


rpm -ivh lzo2-2.02-2.el3.rf.i386.rpm


rpm -ivh lzo2-devel-2.02-2.el3.rf.i386.rpm


rpm -ivh openvpn-2.0.9-1.el3.rf.i386.rpm


2.1).更新rpm资料库


2.2).查看OpenVPN的所有相关文档


参考答案:


updatedb


locate openvpn


3).服务端操作:


3.1).将模版中的easy-rsa的目录链接到/etc/openvpn/的路径下


3.2).查看/etc/openvpn/easy-rsa/目录下所有文件


3.3).进入/etc/openvpn/easy-rsa/目录,更改所有脚本为可执行


3.4).执行vars脚本建立环境变量,之后执行clean-all脚本清空从前的认证


3.5).执行build-ca脚本生成根证书CA,Common Name指定为主机名,其余直接按回车,默认为vars中的设置


3.6).查看生成的根证书


3.7).执行build-dh脚本生成Diffie-Hellman参数文件(dh-pem文件),用作SSL/TLS连接


3.8).查看产生的dh-pem文件


参考答案:


服务器端:


ln -s  /usr/share/doc/openvpn-2.0.9/easy-rsa/ /etc/openvpn


ll /etc/openvpn/easy-rsa/


cd /etc/openvpn/easy-rsa/


chmod 755 *


. ./vars


./clean-all—清空从前的认证


./build-ca


输入上面的命令后,会输入一长串字符,对于Country Name、State or Province Name等等参数都在vars文件中设置,可直接回车。


但Common Name (eg, your name or your server’s hostname) []:必须输入你的服务器名字(你想取的任意名字)。


这里输入的是主机名(pmg)


ll keys/


./build-dh


ll keys/


4.1).生成服务器的ca证书,提示your name or your server’s hostname:时,输入server,其余回答均为默认


4.2).查看生成的服务器证书文件


4.3).生成客户端的ca证书,提示your name or your server’s hostname:时,输入client,其余回答均为默认


4.4).查看生成的客户端证书文件


参考答案:


./build-key-server server


your name or your server’s hostname:输入的是server


ll keys/


./build-key client


注意:这里你输入的your name or your server’s hostname:名,一定是client(证书名)


不能写错,否则就会出现SSL验证失败


ll keys/


5.1).为防止恶意攻击(如DOS、UDP port flooding),生成一个”HMAC firewall”


5.2).查看生成的ta文件


参考答案:


openvpn –genkey –secret /etc/openvpn/easy-rsa/keys/ta.key


ll keys/


6.1).执行脚本make-crl生成吊销证书链文件


6.2).查看生成的吊销证书链文件


参考答案:


./make-crl vpncrl.pem


ll keys/


7.1).将模版配置文件复制到/etc/openvpn目录下


7.2).将/etc/openvpn/easy-rsa/keys目录下证书复制到/etc/openvpn


7.3).编辑/etc/openvpn/server.conf文件


7.4).监听所有本机上的网络接口(默认)


7.5).设定的监听端口,默认是1194,修改为8205


7.6).设定在传输层使用的协议,设定UDP协议(默认)


7.7).设定传输设备节点为tun(三层设备),tap为二层设备,要加入IP路由所以选择tun(默认)


7.8).设定根证书CA、服务器证书、以及服务器密钥文件的位置为/etc/openvpn/keys(默认)


7.9).设定Server端虚拟出来的VPN网段,更改为server 10.88.99.0 255.255.255.0


7.10).设定虚拟地址租约文件,用于记录某个Client获得的IP地址(默认)


7.11).设定本机的虚拟地址为10.88.99.1,子网掩码为255.255.255.0


7.12).设定接入的Client之间能够被允许互相访问


7.13).设定允许单证书多连接,Client使用的CA的Common Name有重复也可连接


7.14).设定每10秒通过ping来确定Client存活,超过120秒无反馈为失效(默认)


7.15).设定ta密钥的路径,server端后面的数字肯定使用0,client使用1


7.16).使用Lzo功能对虚拟链路进行压缩,服务端/客户端要同时开启(默认)


7.17).设定状态记录日志路径为/var/log/openvpn-status.log


7.18).设定OpenVPN的服务日志路径/var/log/openvpn.log


7.19).每次重新启动openvpn后保留原有的log信息,新信息追加到文件最后


7.20).设定OpenVPN的dubug等级,使用默认3级(默认)


7.21).保存退出


参考答案:


cp /usr/share/doc/openvpn-2.0.9/sample-config-files/server.conf /etc/openvpn


cp /etc/openvpn/easy-rsa/keys /etc/openvpn -a


vi /etc/openvpn/server.conf


port 8205


proto udp


dev tun


ca /etc/openvpn/keys/ca.crt


cert /etc/openvpn/keys/server.crt


key /etc/openvpn/keys/server.key


dh /etc/openvpn/keys/dh1024.pem


server 10.88.99.0 255.255.255.0


ifconfig-pool-persist ipp.txt


ifconfig 10.88.99.1 255.255.255.0


client-to-client


duplicate-cn


keepalive 10 120


tls-auth /etc/openvpn/keys/ta.key 0


comp-lzo


status /var/log/openvpn-status.log


log  /var/log/openvpn.log


log-append  /var/log/openvpn.log


verb 3


保存退出


8.1).启动VPN服务端


8.2).查看openvpn.log


8.3).查看VPN的端口号


8.4).查看VPN虚拟的IP地址及路由


参考答案:


服务端:


openvpn –config /etc/openvpn/server.conf


tail -f /var/log/openvpn.log


netstat -anp|grep 8205


ifconfig


route


9).客户端操作


9.1).将客户端的配置模板COPY到/etc/openvpn


9.2).新建/etc/openvpn/keys目录,用于存放客户端的CA证书


参考答案:


客户端:


cp /usr/share/doc/openvpn-2.0.9/sample-config-files/client.conf /etc/openvpn/


#ln -s  /usr/share/doc/openvpn-2.0.9/easy-rsa/ /etc/openvpn


mkdir /etc/openvpn/keys


10).服务端操作


10.1).将服务端生成的CA根证书COPY到客户端keys目录下


10.2).将服务端生成的客户端CA证书COPY到客户端keys目录下


10.3).将服务端生成的ta证书COPY到客户端keys目录下


参考答案:


服务端:


cd /etc/openvpn/keys/


scp ca.* 192.168.6.217:/etc/openvpn/keys


scp client.* 192.168.6.217:/etc/openvpn/keys


scp ta.* 192.168.6.217:/etc/openvpn/keys


11).配置client.conf


11.1).设定远程Server的IP地址和端口


11.2).始终重新解析Server的IP地址,无需人为重新启动,即可重新接入VPN


11.3).Client的不绑定特定的监听端口


参考答案:


客户端:


vi /etc/openvpn/client.conf


remote 192.168.6.220 8205


resolv-retry infinite


nobind


ca /etc/openvpn/keys/ca.crt


cert /etc/openvpn/keys/client.crt


key /etc/openvpn/keys/client.key


tls-auth /etc/openvpn/keys/ta.key 1


12.1).启动客户端vpn


12.2).查看客户端的IP地址


12.3).测试客户端与服务端VPN的连通性


12.4).查看服务端的openvpn.log


参考答案:


客户端:


openvpn –config /etc/openvpn/client.conf


ifconfig


ping 10.88.99.1


服务端:


ping 10.88.99.6


tail -f /var/log/openvpn.log


13.1).关闭VPN服务端于客户端


13.1).以daemon方式运行服务端与客户端程序


参考答案:


客户端/服务端:


kill -9 `ps -ef|grep vpn|awk ‘{print $2}’`


服务端:


openvpn –daemon –config /etc/openvpn/server.conf


客户端:


openvpn –daemon –config /etc/openvpn/client.conf

1)打印所有的服务列表状态


参考答案:


chkconfig –list


2)将atd服务在init3,init5的运行级别下设为开


参考答案:


chkconfig –level 35 atd on


3)启动atd服务,并用at设定在5分钟之后,将passwd文件输出到/tmp/hacker文件


参考答案:


service atd restart


at now +5 minutes


more /etc/passwd>/tmp/hacker


4)用at在2007年8月26日执行命令,将shadow文件输出到/tmp/kkk文件


参考答案:


at 10:00 2007-08-26


more /etc/shadow>/tmp/kkk


5)查询系统是否有at例行任务,查到后删除该任务


参考答案:


atq


atrm 3


atq


6)显示所用的kill信号,并用man查询signal的详细信息


参考答案:


kill -l


man 7 signal


7)打印当前进程,包括CPU,内存等信息


参考答案:


ps aux


8)打印当前进程,以扩展格式显示输出


参考答案:


ps -ef


9)打印当前进程,以树状格式显示输出


参考答案:


ps axjf


10)打印当前进程,并显示所有命令参数信息


参考答案:


ps auxeww


11)用top命令显示当前系统进程状态,每隔2秒更新一次


参考答案:


top -d 2


12)用top命令将显示两次的结果输出到top.txt文件里


参考答案:


top -b -n 2 >top.txt


13)用top命令监控sshd进程,并用top命令将该进程的优先级更改为10


参考答案:


top -d 2 -p `pgrep sshd|sed -n 1p`


r


输入进程号


10


14)用killall命令,重载syslogd进程,强制杀死httpd进程


参考答案:


ps -ef|grep syslogd


killall -1 syslogd


ps -ef|grep syslogd


killall -9 httpd


15)显示当前网络中tcp/udp协议的连接IP和端口号及对映的PID


参考答案:


netstat -tulnp


16)用sar显示当前CPU的利用率,共显示三次,一秒更新一次


参考答案:


sar -u 1 3


17)用sar显示当前内存的利用率,共显示三次,一秒更新一次


参考答案:


sar -r 1 3


18)用sar显示物理磁盘的利用率,共显示三次,一秒更新一次


参考答案:


sar -d 1 3


19)用sar显示系统进程资源的利用率,共显示1万次,一秒更新一次


参考答案:


sar -v 1 1000


18)在proc里查看sshd进程的详细信息,比如maps,status等


参考答案:


cd /proc/


ps aux|grep sshd


cd 1700


more maps


19)进入/root目录,用fuser查出/root/的进程,并杀掉/root进程


参考答案:


cd


fuser -v /root


fuser -k /root


20)用lsof查出系统中用到/lib/tls/libc-2.3.2.so文件的进程


参考答案:


lsof /lib/tls/libc-2.3.2.so


21)用lsof列出关于root用户的所有程序开启的socket


参考答案:


lsof -u root -a -U


22)用lsof列出有哪些进程在对/root目录进行操作


参考答案:


lsof /root/


23)用lsof查看有哪些进程在用网络


参考答案:


lsof -i


24)用lsof查看sshd服务用了哪些文件


参考答案:


lsof -c sshd


25)用lsof查看用户root所开启的进程中用了哪些文件


参考答案:


lsof -u root


26)用lsof查看除用户root外,其它用户所开启的进程中用了哪些文件


参考答案:


lsof -u^root


27)用lsof查看目前系统上面所有的被启动的设备


参考答案:


lsof +d /dev


28)用watch来监控free,每1秒更新一次


参考答案:


watch -n  1 -d free


29)用watch来监控Oracle进程所用的CPU利用率等,间隔时间为45秒


参考答案:


watch –interval=45 “ps auxw|grep oracle”


30)列出树状的进程


参考答案:


pstree


31)列出init和syslogd服务的PID


参考答案:


pidof init syslogd


32)找出 bash即以bash为PPID的几个主要的PID


参考答案:


pidof -x bash


33)用root给一个nice值为-5,用于执行vi,并观察该进程


参考答案:


nice -n -5 vi &


ps -l


34)更改vi进程的优先级,给nice值加10


参考答案:


renice 10 18852


35)用pgrep列出mingetty的进程号


参考答案:


pgrep -l mingetty


1)编写内核态程序,hello.c,功能:插入时打印输出Hello,world,退出时打印输出Goodbye, world
参考答案:
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE(“Dual BSD/GPL”);
static int hello_init(void)
{
    printk(KERN_EMERG “Hello, world\n”);
    return 0;
}
static void hello_exit(void)
{
    printk(KERN_EMERG”Goodbye, world\n”);
}
module_init(hello_init);
module_exit(hello_exit);
2)编写对映的Makefile,执行后生成ko模块,文件存放目录与hello.c一致
参考答案:
obj-m := hello.o
KERNELDIR := /lib/modules/2.6.9-42.EL/build
PWD := $(shell pwd)
modules:
 $(MAKE) -C $(KERNELDIR) M=$(PWD) modules
modules_install:
 $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
clean:
 rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions
3)编译hello.c为内核模块程序,并将内核模块插入到modules中,观察结果
参考答案:
make
insmod hello.ko
4)用lsmod查看目前的模块
参考答案:
lsmod
5)用modinfo查看hello模块
参考答案:
modinfo hello.ko
6)列出所有的模块文件
参考答案:
modprobe -l
7)列出所有的模块信息
参考答案:
modprobe -c
8)升级内核RedHat es4(2.6.9)–>2.6.23
8.1)删除以前留下的.o文件
8.2)以菜单方式进行内核方式选择
8.3)清除掉以前的.o文件
8.4)制作出核心文件
8.5)制作出模组相关的文件
8.6)安装模组
8.7)产生initrd文件
8.8)安装核心到boot
8.9)编辑menu.lst,加入新核心选项
参考答案:
cd linux-2.6.23/
make mrproper
make menuconfig
保存退出
vi .config
make clean
make bzImage
make modules
make modules_install
mkinitrd /boot/initrd-2.6.23.img 2.6.23
make install
/boot/grub/menu.lst加入以下内容:
title ckhitler Kernel (2.6.23)
root (hd0,1)
kernel /boot/bzImage-2.6.23 ro root=LABEL=/
initrd /boot/initrd-2.6.23.img
1)编写内核态程序,hello.c,功能:插入时打印输出Hello,world,退出时打印输出Goodbye, world
参考答案:
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE(“Dual BSD/GPL”);
static int hello_init(void)
{
    printk(KERN_EMERG “Hello, world\n”);
    return 0;
}
static void hello_exit(void)
{
    printk(KERN_EMERG”Goodbye, world\n”);
}
module_init(hello_init);
module_exit(hello_exit);
2)编写对映的Makefile,执行后生成ko模块,文件存放目录与hello.c一致
参考答案:
obj-m := hello.o
KERNELDIR := /lib/modules/2.6.9-42.EL/build
PWD := $(shell pwd)
modules:
 $(MAKE) -C $(KERNELDIR) M=$(PWD) modules
modules_install:
 $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
clean:
 rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions
3)编译hello.c为内核模块程序,并将内核模块插入到modules中,观察结果
参考答案:
make
insmod hello.ko
4)用lsmod查看目前的模块
参考答案:
lsmod
5)用modinfo查看hello模块
参考答案:
modinfo hello.ko
6)列出所有的模块文件
参考答案:
modprobe -l
7)列出所有的模块信息
参考答案:
modprobe -c
8)升级内核redhat es4(2.6.9)–>2.6.23
8.1)删除以前留下的.o文件
8.2)以菜单方式进行内核方式选择
8.3)清除掉以前的.o文件
8.4)制作出核心文件
8.5)制作出模组相关的文件
8.6)安装模组
8.7)产生initrd文件
8.8)安装核心到boot
8.9)编辑menu.lst,加入新核心选项
参考答案:
cd linux-2.6.23/
make mrproper
make menuconfig
保存退出
vi .config
make clean
make bzImage
make modules
make modules_install
mkinitrd /boot/initrd-2.6.23.img 2.6.23
make install
/boot/grub/menu.lst加入以下内容:
title ckhitler Kernel (2.6.23)
root (hd0,1)
kernel /boot/bzImage-2.6.23 ro root=LABEL=/
initrd /boot/initrd-2.6.23.img
9)安装grub软件到/dev/sda
参考答案:
grub-install /dev/sda
10)进入grub的shell
10.1)先设定/boot目录的那个 partition
10.2)搜索stage1
10.3)搜索内核文件
10.4)安装grub到mbr
参考答案:
grub
root (hd0,0)
find /boot/grub/stage1
find /boot/vmlinuz-2.6.9-42.EL
setup (hd0)1)新建一个组group1,新建一个系统组group2
参考答案:
groupadd group1
groupadd -r group2
cat /etc/group /etc/gshadow|grep group[1-2]
2)更改组group2的GID为103,更改组名为grouptest
参考答案:
groupmod -g 103 -n grouptest group2
cat /etc/group /etc/gshadow|grep group*
3)删除组grouptest
参考答案:
groupdel grouptest
4)新建用户user1,指定UID为777,目录为/home/user1,初始组为group1,有效组为root,指定shell为/bin/bash
参考答案:
useradd -u 777 -d /home/user1 -g group1 -G root -s /bin/bash user1
cat /etc/passwd /etc/group|grep user1
5)新建一个系统用户user2
参考答案:
useradd -r user2
grep user2 /etc/passwd
6)查看用户user1的组群,切换到user1,在主目录下新建文件test1,再切换有效组为root,再新建文件test2
参考答案:
groups user1
su – user1
touch test1
newgrp root
touch test2
ls -l test[1-2]
7)修改用户user1的个人说明为This is a test
参考答案:
usermod -c “This is a test” user1
8)修改用户密码过期时间为2008-07-27
参考答案:
usermod -e “2008-07-27” user1
9)更改用户user1的密码为111111,加锁用户user1并查看/etc/shadow,用户user1通过ssh登录127.0.0.1,
解锁用户user1,再通过ssh登录.
参考答案:
passwd user1
usermod -L user1|grep user1 /etc/shadow
ssh user1@127.0.0.1
usermod -U user1|grep user1 /etc/shadow
ssh user1@127.0.0.1
10)更改用户主目录/home/user1为/home/user11
参考答案:
usermod -d /home/user11 -m user1|ls /home
11)查看所有支持的shell,将root更改为csh,并查看结果,并将root改为bash
参考答案:
chsh -l
chsh -s /bin/csh; grep root /etc/passwd;chsh -s /bin/bash
12)更改自己的相关信息,如电话号码等
参考答案:
chfn
grep root /etc/passwd|sed -n 1p
13)查看自己的相关信息
参考答案:
finger root
14)列出用户user1的UID,GID等
参考答案:
id user1
15)增加用户user3,user4,增加组testgroup,给组testgroup设定密码,将组testgroup管理权授予user1,并同时将root,user1,user3加入到testgroup,检查结果,切换到user1,将user4加入到testgroup组
参考答案:
useradd user3;useradd user4
groupadd testgroup;gpasswd testgroup
gpasswd -A user1 -M root,user1,user3 testgroup
grep testgroup /etc/group /etc/gshadow
su – user1
gpasswd -a user4 testgroup
16)使用passwd给user1用户密码冻结,用passwd查看user1相关信息,最后用passwd给用户user1解冻
参考答案:
passwd -l user1
passwd -S user1
passwd -u user1
17)切换user1用户,用su加命令行直接查看shadow的头3行
参考答案:
su – user1
su – -c “head -n 3 /etc/shadow”
18)将user1加入sudoer,权限为可登入所有主机,可变换所有用户,可执行所有命令,切换到user1,用sudo在root下建立user1目录用sudo以user3的身份在/tmp/下新建文件user3
参考答案:
visudo
加入以下内容:
user1   ALL=(ALL) ALL
退出
sudo mkdir /root/user1
sudo -u user3 touch /tmp/user3
19)将testgroup组加入sudoer,权限为可登入所有主机,可变换所有用户,可执行所有命令,且不用输入密码,切换到user4,用sudo在查看/etc/shadow内容.
参考答案:
visudo
加入以下内容:
%testgroup      ALL=(ALL)       NOPASSWD: ALL
退出
sudo more /etc/shadow
20)在user1用户下面,用sudo切换到root
参考答案:
sudo su –
21)用user2登录tty3,用user1登录tty1,用user1向user2发送消息i love you
参考答案:
write user2
i love you
ctrl+d
22)user2将接收消息关闭
参考答案:
mesg n
23)在root,向所有人发消息
参考答案:
wall i love qiuming
25)用chpasswd更改user1口令为111111
参考答案:
echo “user1:111111″|chpasswd
26)通过root向user1发送邮件,切换到user1进行校对
参考答案:
mail user1
Subject: i love you
i ‘m chenkuo
qiuming me like you
.
Cc:
su – usre1
mail
27)比对passwd和shadow是否一致
参考答案:
pwck
28.1)用chage显示用户test密码资料
28.2)用chage变更密码更改日期
28.3)用chage变更策略,密码最少要用1天才能变更密码
28.4)用chage变更策略,即每隔一个星期就要变更一次密码
28.5)用chage变更策略,即密码过期3天后,还没有变更密码,就锁定帐户
28.6)用chage变更策略,即帐号到期日为2008-05-01
参考答案:
chage -l test
chage -d 2005-07-25 test
chage -m 1 test
chage -M 7 test
chage -I 3 test
chage -E 2008-05-01 test
29.1)激活accton的详细日志记录功能,可以记录各用户的所有操作
29.2)等待3分钟后,查看root用户的所有动作
29.3)关闭accton
参考答案:
accton /var/account/pacct
lastcomm |grep root
accton
30.1)用ac命令查看每个用户登录系统的时间,会列出当天一个个用户的时间总和
30.2)用户登录系统的每天总时间,会列出一天一天的时间总和
参考答案:
ac -p
ac -d

准备测试环境:


cat > test.txt


“Open Source” is a good mechanism to develop programs.


apple is my favorite food.


Football game is not use feet only.


this dress doesn’t fit me.


However, this dress is about $ 3183 dollars.


GNU is free air not free beer.


Her hair is very beauty.


I can’t finish the test.


Oh! The soup taste good.


motorcycle is cheap than car.


This window is clear.


the symbol ‘*’ is represented as start.


Oh! My god!


The gd software is a library for drafting programs.


You are the best is mean you are the no. 1.


The world is the same with “glad”.


I like dog.


google is the best tools for search keyword.


goooooogle yes!


go! go! Let’s go.


# I am VBird


1)在test.txt文件中搜索the字符串,并显示行号


参考答案:


grep -n ‘the’ test.txt


2)在test.txt文件中反向搜索the字符串,并显示行号


参考答案:


grep -vn ‘the’ test.txt


3)在test.txt文件中搜索the字符串,显示行号并忽略大小写


参考答案:


grep -in ‘the’ test.txt


4)在test.txt文件中搜索oo字符串,但排除goo


参考答案:


grep -n ‘[^g]oo’ test.txt


5)在test.txt文件中搜索oo字符串,但排除oo之前的小写字母


参考答案:


grep -n ‘[^a-z]oo’ test.txt


6)在test.txt文件中搜索有数字的一行


参考答案:


grep -n [0-9] test.txt


7)在test.txt文件中只列出行首的the,并忽略大小写


参考答案:


grep -ni ^the test.txt


8)在test.txt文件中搜索开头不是英文字母的语句


参考答案:


grep -n ^[^a-zA-Z] test.txt


9)在test.txt文件中找到结尾为.的一行


参考答案:


grep -n ‘\.$’ test.txt


10)在test.txt文件中查找空白行


参考答案:


grep -n ‘^$’ test.txt


11)在test.txt文件中查找两个以上的o


参考答案:


grep -n ‘ooo*’ test.txt


12)在test.txt文件中查找以g开头,并且以g结尾的字符串


参考答案:


grep -n ‘g.*g’ test.txt


13)显示/etc/passwd文件,并且打印行号,同时去掉2至5行


参考答案:


nl /etc/passwd|sed ‘2,5d’


14)显示/etc/passwd文件,并且打印行号,在第二行后面加上drink tea


参考答案:


nl /etc/passwd | sed ‘2a drink tea’


15)显示/etc/passwd文件,并且打印行号,将2-5行替换为No 2-5 number


参考答案:


nl /etc/passwd | sed ‘2,5c No 2-5 number’


16)显示/etc/passwd文件的5-7行,打印地号


参考答案:


nl /etc/passwd | sed -n ‘5,7p’


17)显示/etc/passwd文件内容,将所有的sbin换成love


参考答案:


nl /etc/passwd|sed ‘s/sbin/love/g’


18)显示/etc/passwd文件内容,将只显示5-10行,并将5-10行的sbin换成love


参考答案:


nl /etc/passwd|sed ‘5,10 s/sbin/love/’|sed  -n ‘5,10p’


19)显示/etc/目录下所有文件的属性和文件名


如:attr=-rwxrwxrwx filename=passwd


参考答案:


ls -l /etc/|awk ‘{print “attr=” $1 “\t\tfilename=” $9}’|sed ‘1’d


20)显示所有登录用户,并显示登录用户的所在行数和列数


参考答案:


last | awk ‘{print $1 “\t lines: ” NR “\t columes: ” NF}’


21)只显示/etc/passwd文件的用户名和UID,且UID小于10


参考答案:


cat /etc/passwd|awk ‘BEGIN {FS=”:”} $3 < 10 {print $1 “\t ” $3}’


22)根据使用频率列举 Shell 历史记录中的命令


参考答案:


history|awk ‘{print $2}’|awk ‘BEGIN{FS=”|”}{print $1}’|sort|uniq -c|sort -n

1)显示日期格式
例如:
2007-06-10 18:08:29
参考:
date +%Y-%m-%d\ %H:%M:%S
2)在/tmp/下新建目录testqq,并指定权限711
参考:
mkdir -m 711 /tmp/testqq
3)显示环境变量path,但将/root加入到$PATH中
参考:
echo $PATH
PATH=”$PATH”:/root
4)用cat显示/etc/passwd,并打印出行号
参考:
cat -n /etc/passwd
5)显示/etc/passwd文件中的11-20行
参考:
head -n 20 /etc/passwd|tail -n 10
6)用whereis列出二进制文档passwd
参考:
whereis -b passwd
7)用whereis列出man page所在目录
参考:
whereis -m passwd
8)显示出/etc/目录下所有文件的ctime时间
参考:
ls -lc
9)显示出/etc/目录下所有文件的atime时间
参考:
ls -lu
10)显示出/etc/目录下所有文件夹的mtime时间
参考:
ls -l
11)寻找/etc/目录下一天前新增的目录或档案
参考:
find /etc -ctime +1
12)寻找/etc/目录下二十四小时更动过的目录或档案
参考:
find /etc -mtime 0
13)寻找/etc/目录下比/etc/passwd日期新的文件或目录
参考:
find /etc -newer /etc/passwd
14)寻找/home目录下所有test用户的文件或目录
参考:
find /home -user test
15)搜索/home下档案属性为f(普通文件)的文档
参考:
find /home -type f
16)搜索/目录下所有的特殊位(suid,sgid,sbit)
参考:
find / -perm +7000
17)搜索/目录下所有的特殊位文件,并显示详细信息
参考:
find / -perm +7000 -exec ls -l {} \;
18)搜索/目录下所有大于1M的文件
参考:
find / -size +1000k
19)查询/etc目录下一个小时之前更改的文件,不包括目录
参考答案:
find /etc/ -mmin +60 \! -type d
20)查询/etc目录下一个小时之后更改的文件,不包括目录
参考答案:
find /etc/ -mmin -60 \! -type d
21.1)查询/etc/目录下没用owner授权的文件
21.2)将/etc/目录下没有owner的文件授权为root用户的文件
参考答案:
find /etc -nouser
find /etc -nouser -exec chown root.root {} \;
22)copy文件/etc/passwd到/tmp目录下,保持时间戳
参考答案:
cp -p /etc/passwd /tmp/passwd
23)查看/tmp/目录的使用空间
参考答案:
du -sh /tmp/1)新建用户test
useradd -s /bin/bash test
2)将bin sbin等目录COPY到/home/test目录下
cd /home/test
cp -Rf /bin /sbin /usr/sbin /etc /home/test
3)新建lib目录,将需要的lib库文件COPY到lib目录下
mkdir lib
ldd bin/sh|awk ‘{print “cp -p “,$(NF-1),”lib”}’|sh
ldd bin/ls|awk ‘{print “cp -p “,$(NF-1),”lib”}’|sh
ldd bin/clear|awk ‘{print “cp -p “,$(NF-1),”lib”}’|sh
4)赋权限
chown -R test:test /home/test
5)建立shtest.c源文件
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
int main(int argc, char **argv)
{
        int i;
        chdir(“/home/test/”);
        i=chroot(“/home/test”);
        if(i!=0)
        {
                perror(“chroot”);
        }
        if(argc>1&&strcmp(argv[1],”root”)==0)
        {
                system(“/bin/sh”);
        }
        else
        {
                seteuid(getuid());
                system(“/bin/sh”);
        }
}
6)编译shtest.c,生成shtest
gcc /tmp/shtest.c -o shtest
7)将shtest复制到/bin目录下
cp shtest /bin/shtest
8)编辑/etc/passwd,将默认的SHELL改为shtest
vi /etc/passwd
test:x:1819:1819::/home/test:/bin/shtest
9)测试
su – test1)打开telnet服务,让root有权限直接登入
参考答案:
vi /etc/xinetd.d/telnet
将disable改为no
disable         = no
vi /etc/pam.d/login
注释掉:
#auth       required    pam_securetty.so
2)设置XINETD/TELNET服务,绑定172.16.128.128,设定只允许从172.16.128.0网段访问
,但不允许172.16.128.10访问,允许访问的时间为9:00-18:00,最多可以有10个连接,登入后的umask为022,nice为10
参考答案:
service telnet
{
        bind            = 172.16.128.128
        only_from       = 172.16.128.0/24
        no_access       = 172.16.128.10
        access_times    = 9:00-18:00
        instance        = 10
        log_on_failure  += USERID
        umask           = 022
        nice            = 10
        flags           = REUSE
        socket_type     = stream       
        wait            = no
        user            = root
        server          = /usr/sbin/in.telnetd
        disable         = no
}
3)通过防火墙限制对telnet服务的连接请求
1)对源地址:172.16.128.1开放对telnet服务的连接请求
2)拒绝172.16.128.0/24网段对127.16.128.1的连接请求
参考答案:
iptables -A INPUT -p tcp -i eth0 -s 172.16.128.1 –dport 23 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 -s 172.16.128.0/24 –dport 23 -j DROP
4)利用TCP_Wrappers
1)允许172.16.128.1访问
2)拒绝所有地址
参考答案:
vi /etc/hosts.allow
in.telnetd: 172.16.128.2
vi /etc/hosts.deny
in.telnetd: ALL
5)SSH无验证登录
参考答案:
client:
ssh-keygen -t rsa
cd ~/.ssh
scp id_rsa.pub 172.16.128.128:~/
server:
mkdir ~/.ssh
cd ~
cat id_rsa.pub >>~/.ssh/authorized_keys
6)通过编辑sshd_config,只允许IP地址为172.16.128.1,及用户为root的可以访问
参考答案:
编辑sshd_config
vi /etc/ssh/sshd_config
加入以下的配置信息
AllowUsers root@172.16.128.1
重启服务
service sshd restart
7)用ssh做遂道端口转发,将对本地的777端口的连接,转发到172.16.128.128的22端口上
参考答案:
ssh -L 777:127.0.0.1:22 test@220.200.95.239
ssh -p 777 test@127.0.0.1
8)启动vnc,设定为kde文件启动
参考答案:
vncserver
cd .vnc/
vi xstartup
#xterm -geometry 80×24+10+10 -ls -title “$VNCDESKTOP Desktop” &
#twm &
startkde&
vncserver -kill :1
vncserver
9)RSH服务
9.1)启用rsh服务
9.2)编辑hosts及.rhosts文件,授权172.16.128.1访问
9.3)允许root访问
9.4)客户端连接测试date,ls -l /tmp命令
9.5)客户端测试文件COPY命令,将文件拷到服务器端,将服务器端文件拷到本地
参考答案:
服务器端:
vi /etc/xinetd.d/rsh
更改disable 为no
disable                 = no
service xinetd restart
vi /etc/hosts
加入
172.16.128.1 pc1
172.16.128.128 pc2
vi /root/.rhosts
加入
pc1 root
vi /etc/pam.d/rsh
注释掉pam_securetty.so
如下:
#auth       required    pam_securetty.so
客户端:
vi /etc/hosts
加入
172.16.128.1 pc1
172.16.128.128 pc2
rsh pc2 date
rsh pc2 ‘ls -l /tmp/’
rcp -r root@pmea:~/rsh* .
rcp -r smg-3.* root@pmea:~/
10)rlogin服务
10.1)允许root访问
10.2)开启rlogin服务
10.3)编辑hosts及.rhosts文件,授权172.16.128.1访问
10.4)客户端测试rlogin连接pc2
参考答案:
服务端:
vi /etc/pam.d/rlogin
注释掉pam_securetty.so
如下:
#auth       required    pam_securetty.so
vi /etc/xinetd.d/rlogin
将disable置为no
disable                 = no
vi /root/.rhosts
加入
pc1 root
客户端:
rlogin -l root pc2
11)rsync
11.1)将/etc/目录所有文件同步到/tmp目录下,注意是本级目录,如/etc/passwd—->/tmp/passwd
11.2)将/etc/目录所有文件同步到/tmp目录下,注意是下级目录,如/etc/passwd—–>/tmp/etc/passwd
11.3)通过ssh,将root用户目录下的资料同步到本地的/tmp目录
参考答案:
rsync -av /etc/ /tmp
rsync -av /etc /tmp
rsync -av -e ssh root@172.16.128.128:~ /tmp 1)试验1
1.1)将/tmp做为NFS服务共享
1.2)充许所有客户端访问
1.3)充许客户读写
1.4)客户端如果以ROOT用户身份访问,挂载后即有ROOT权限
1.5)将服务端:/tmp挂载到客户端的/temp
1.6)在/temp目录新建一个测试文件,并查看属性
参考答案:
服务端:
service portmap restart
vi /etc/exports
/tmp *(rw,no_root_squash)
service nfs restart
客户端:
mkdir /temp
mount -t nfs 192.168.6.202:/tmp /temp
cd /temp
touch test
ls -l test
2)试验2
2.1)将/share做为NFS服务共享
2.2)允许192.168.7.0网段进行读
2.3)允许192.168.6.217主机进行读写
2.4)允许192.168.7.0/192.168.6.217以ROOT用户身份访问,挂载后即有root权限
2.5)重新加载nfs
2.6)在客户端测试服务器是否已提供nfs各目录服务
2.7)在192.168.6.217中将服务端的share目录挂到本地的/nfsmount下面
2.8)在192.168.7.179中将服务端的share目录挂到本地的/nfsmount下面
2.9)测试两个客户端的读写情况
参考答案:
服务端:
vi /etc/exports
/share 192.168.7.0/24(ro,no_root_squash)
/share 192.168.6.217(rw,no_root_squash)
exportfs -arv
客户端(192.168.6.217):
showmount -e 192.168.7.180
mount -t nfs 192.168.7.180:/share /nfsmount
touch /nfsmount/test
客户端(192.168.7.179):
showmount -e 192.168.7.180
mount -t nfs 192.168.7.179:/share /nfsmount
touch /nfsmount/test
3)试验3
3.1)启用NFS一致性服务
3.2)查看RPC服务的注册状态
3.3)观察message/etab
3.4)卸掉所有客户端的连接
3.5)卸掉服务端的NFS
3.6)重新挂载NFS
3.7)客户端用以下nfs挂载参数挂载192.168.6.180:share到/nfsmount上
3.7.1)加入nosuid,noexec,nodev
3.7.2)加入rw
3.7.3)加入bg,rsize=32768,wsize=32768
3.7.4)加入soft,intr解决NFS挂死的问题
参考答案:
service nfslock start
rpcinfo -p 127.0.0.1
tail -f /var/log/messages
tail -f /var/lib/nfs/etab
客户端:
umount /nfsmount
服务端:
exportfs -auv
客户端:
showmount -e 192.168.6.180
服务端:
exportfs -arv
mount -t nfs -o nosuid,noexec,nodev,rw,bg,soft,intr,rsize=32768,wsize=32768 192.168.7.180:/share/ /nfsmount/

1)查看内核是否支持ext3文件系统


参考答案:


cat /boot/config-2.4.21-40.EL |grep -i ext3


2.1)用dd命令读取/dev/zero输出到/opt/testptn,大小为128MB


2.2)用losetup指定/opt/testptn为循环设备/dev/loop0


2.3)格式化/dev/loop0,指定ext3分区


2.4)挂载/dev/loop0到/mnt/acltest


参考答案:


dd if=/dev/zero ōf=/opt/testptn bs=2048 count=65535


losetup /dev/loop0 /opt/testptn


mkfs -t ext3 /dev/loop0


mount -t ext3 -o rw,acl /dev/loop0 /mnt/acltest/


3)新建test1,test2,test3三个用户


参考答案:


useradd test1;useradd test2;useradd test3


passwd test1;passwd test2;passwd test3


4)设定/mnt/acltest/目录的粘滞位,参照/tmp/目录


参考答案:


chmod 1777 /mnt/acltest/


5.1)切换到test1用户,将test1字符串输出到文件/mnt/acltest/test1.txt


5.2)切换到test2用户,将test2字符串输出到文件/mnt/acltest/test1.txt,测试是否可写


5.3)切换到test1用户,设定/mnt/acltest/test1.txt的ACL为test2用户可读写,查看此文件的ACL


5.4)切换到test2用户,将test2字符串输出到文件/mnt/acltest/test1.txt,测试是否可写


参考答案:


su – test1


echo “test1” > /mnt/acltest/test1.txt


su – test2


echo “test2” >>/mnt/acltest/test1.txt


su – test1


setfacl -m u:test2:rw,g:test2:r /mnt/acltest/test1.txt


ls -l /mnt/acltest/test1.txt


getfacl /mnt/acltest/test1.txt


su – test2


cat /mnt/acltest/test1.txt


echo  test2>>/mnt/acltest/test1.txt


6.1)去掉/mnt/acltest/test1.txt文件的test2组ACL权限,并查看此文件的ACL权限


6.2)去掉/mnt/acltest/test1.txt文件的ACL所有权限,并查看此文件的ACL权限


6.3)覆盖/mnt/acltest/test1.txt文件的ACL权限,重至为本用户可读写,组用户可读,test2用户可以读写,其余权限均关闭


6.4)最后查看此文件的ACL权限


参考答案:


setfacl -x g:test2 /mnt/acltest/test1.txt


getfacl /mnt/acltest/test1.txt


setfacl -b /mnt/acltest/test1.txt


getfacl /mnt/acltest/test1.txt


setfacl –set u::rw,u:test2:rw,g::r,o::- /mnt/acltest/test1.txt


getfacl /mnt/acltest/test1.txt


7.1)新建/mnt/acltest/testdir目录


7.2)重至/mnt/acltest/testdir目录的权限,使其在此目录新建的文件具有g:test2:rwx的ACL权限


7.3)新建/mnt/acltest/testdir/testfile文件,查看其ACL权限是否继承


参考答案:


mkdir /mnt/acltest/testdir


setfacl -d –set g:test2:rwx /mnt/acltest/testdir


touch /mnt/acltest/testdir/testfile


getfacl /mnt/acltest/testdir/testfile


8.1)导出/mnt/acltest/testdir的ACL权限到/tmp/dir1.acl文件


8.2)查看/tmp/dir1.acl的文件内容


8.3)去掉/mnt/acltest/testdir目录的ACL权限,并查看/mnt/acltest/testdir目录的权限


8.4)回到根目录,恢复/mnt/acltest/testdir目录在dir.acl中的ACL权限


参考答案:


getfacl -R /mnt/acltest/testdir/ > /tmp/dir1.acl


cat /tmp/dir1.acl


setfacl -R -b /mnt/acltest/testdir


getfacl -R /mnt/acltest/testdir/


cd /


setfacl –restore /tmp/dir1.acl


getfacl -R /mnt/acltest/testdir/


9.1)卸载/mnt/acltest目录


9.2)卸载/dev/loop0设备


参考答案:


umount /mnt/acltest/


losetup -d /dev/loop0

1)配置snmp,编辑/etc/snmp/snmpd.conf
1.1)首选是定义一个共同体名(community),这里是public,及可以访问这个public的用户名(sec name),这里是notConfigUser。Public相当于用户notConfigUser的密码
1.2)定义一个组名(groupName)这里是notConfigGroup,及组的安全级别,把notConfigUser这个用户加到这个组中。
1.3)定义一个可操作的范围(view)名, 这里是all,范围是 .1
1.4)定义notConfigUser这个组在all这个view范围内可做的操作,这时定义了notConfigUser组的成员可对.1这个范围做只读操作。
1.5)重启snmpd服务
1.6)列出snmpd开放端口
参考答案:
vi /etc/snmp/snmpd.conf
做如下修改:
#       sec.name  source          community
com2sec notConfigUser  default       public
#            groupName      securityModel securityName
group   notConfigGroup   v1           notConfigUser
group   notConfigGroup   v2c           notConfigUser
#       name           incl/excl     subtree         mask(optional)
view  all             included     .1
#       group          context sec.model sec.level prefix read   write  notif
access  notConfigGroup “”      any       noauth    exact  all  none none
保存退出
service snmpd restart
netstat -anp|grep snmp
2.1)查看阅读mib-2所管理的信息类别的MIB文件
参考答案:
more /usr/share/snmp/mibs/RFC1213-MIB.txt
3)用snmpbulkwalk命令连接snmp服务器(192.168.6.53),获取snmp服务器的mib-2各种资讯
3.1)snmpbulkwalk用于通过SNMPv2 的SNMP GET BULK请求命令与其它网络实体通信,只能用于snmpv2,速度快于snmpwalk
3.2)指定共同体为public,协议为snmp2c
3.3)获取mib-2的system的数据,即.1.3.6.1.2.1.1(iso->identified organization->dod->internet->mgmt2->mib-2->system)
3.4)获取mib-2的interface的数据,即.1.3.6.1.2.1.2(iso->identified organization->dod->internet->mgmt2->mib-2->interface)
3.5)获取mib-2的address translation的数据,即.1.3.6.1.2.1.3(iso->identified organization->dod->internet->mgmt2->mib-2->address translation)
3.6)获取mib-2库的ip的数据,即.1.3.6.1.2.1.4(iso->identified organization->dod->internet->mgmt2->mib-2->ip)
3.7)获取mib-2库的icmp的数据,即.1.3.6.1.2.1.5(iso->identified organization->dod->internet->mgmt2->mib-2->icmp)
3.8)获取mib-2库的tcp的数据,即.1.3.6.1.2.1.6(iso->identified organization->dod->internet->mgmt2->mib-2->tcp)
3.9)获取mib-2库的udp的数据,即.1.3.6.1.2.1.7(iso->identified organization->dod->internet->mgmt2->mib-2->udp)
3.10)获取mib-2库的snmp的数据,即.1.3.6.1.2.1.11(iso->identified organization->dod->internet->mgmt2->mib-2->snmp)
参考答案:
snmpbulkwalk -v 2c 192.168.6.53 -c public .1.3.6.1.2.1.1
snmpbulkwalk -v 2c 192.168.6.53 -c public .1.3.6.1.2.1.2
snmpbulkwalk -v 2c 192.168.6.53 -c public .1.3.6.1.2.1.3
snmpbulkwalk -v 2c 192.168.6.53 -c public .1.3.6.1.2.1.4
snmpbulkwalk -v 2c 192.168.6.53 -c public .1.3.6.1.2.1.5
snmpbulkwalk -v 2c 192.168.6.53 -c public .1.3.6.1.2.1.6
snmpbulkwalk -v 2c 192.168.6.53 -c public .1.3.6.1.2.1.7
snmpbulkwalk -v 2c 192.168.6.53 -c public .1.3.6.1.2.1.11
4)查看阅读HOST-RESOURCES的MIB文件
参考答案:
more /usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt
5)查用snmpwalk命令连接snmp服务器(192.168.6.53),获取snmp服务器的HOST-RESOURCES的各种资讯
5.1)指定共同体为public,协议为snmpv1
5.2)获取HOST-RESOURCES的host(所有资源)
5.3)获取HOST-RESOURCES的hrSystem(系统日期/时间,初始化设备,内核引导参数,系统当前的登录用户数,当前的进程数,支持的最大进程数)
5.4)获取HOST-RESOURCES的hrStorage(内存大小,磁盘大小,使用情况等)
5.5)获取HOST-RESOURCES的hrDevice(设备ID,设备类型,对设备的描述,引导盘,挂载分区等)
5.6)获取HOST-RESOURCES的hrSWRun(线上系统的进程ID,进程名,涉及的参数,运行状态等)
5.7)获取HOST-RESOURCES的hrSWRunPerf(线上系统进程占用CPU的时间,占用内存的大小)
5.8)获取HOST-RESOURCES的hrSWInstalledName(已安装的软件包名)和hrSWInstalledDate(已安装的软件包时间)
参考答案:
snmpwalk -v 1 192.168.6.53 -c public HOST-RESOURCES-MIB::host
snmpwalk -v 1 192.168.6.53 -c public HOST-RESOURCES-MIB::hrSystem
snmpwalk -v 1 192.168.6.53 -c public HOST-RESOURCES-MIB::hrStorage
snmpwalk -v 1 192.168.6.53 -c public HOST-RESOURCES-MIB::hrDevice
snmpwalk -v 1 192.168.6.53 -c public HOST-RESOURCES-MIB::hrSWRun
snmpwalk -v 1 192.168.6.53 -c public HOST-RESOURCES-MIB::hrSWRunPerf
snmpwalk -v 1 192.168.6.53 -c public HOST-RESOURCES-MIB::hrSWInstalledName
snmpwalk -v 1 192.168.6.53 -c public HOST-RESOURCES-MIB::hrSWInstalledDate
6)查看阅读IF-MIB的MIB文件
参考答案:
more /usr/share/snmp/mibs/IF-MIB.txt
7)用snmpdelta命令连接snmp服务器(192.168.6.53),监控网卡流量等信息
7.1)指定共同体为public,协议为snmpv1,以表格的方式输出结果,显示时间戳
7.2)监控IF-MIB::ifInUcastPkts(输入流量),IF-MIB::ifOutUcastPkts(输出流量),格式为<object>.<instance>,如监控本地的第二块网卡instance为2
7.3)监控ifInDiscards(已经丢弃的收到的数据包的总数),格式同上
参考答案:
snmpdelta -c public -v 1 -Cs -CT 192.168.6.53 IF-MIB::ifInUcastPkts.2 IF-MIB::ifOutUcastPkts.2
snmpdelta -c public -v 1 -Cs -CT 192.168.6.53 ifInDiscards.2
8)用snmpnetstat命令连接snmp服务器(192.168.6.53),查看snmp服务器的端口连接信息
8.1)指定共同体为public,协议为snmp2c
8.2)获取192.168.6.53的所有开放端口状态
8.3)获取192.168.6.53的网络接口状态
8.4)获取192.168.6.53的TCP协议的开放端口状态
参考答案:
snmpnetstat -v 2c -c public -a 192.168.6.53
snmpnetstat -v 2c -c public -i 192.168.6.53
snmpnetstat -v 2c -c public -P tcp 192.168.6.53
9)用snmptranslate 命令在 MIB OID 在数字和文字名称之间进行转换
9.1)用snmptranslate把symbol 格式的HOST-RESOURCES-MIB::hrSystem 转换为 numberic 格式的oid,用-On(输出数字格式的oid),使用 -IR(允许“随机”访问 MIB)
9.2)用snmptranslate把symbol 格式的HOST-RESOURCES-MIB::hrSystem 转换为symbol 格式的 oid,用-Onf(输出符号格式的oid)
9.3)用snmptranslate输出该对象(iso.org.dod.internet.mgmt.mib-2)的详细定义,用-Td(包括文字名称、所属 MIB、类型、状态、读写权限、描述信息,数字格式的 OID)
9.4)用snmptranslate打印从指定OID(.1.3.6.1.2.1)开始一直到该OID(.1.3.6.1.2.1)所属的 MIB 子树末端的树型结构信息
9.5)用snmptranslate导出所有已经加载的 MIB 的数据,每个对象一行
9.6)用snmptranslate导出所有已经加载的 MIB 的对象,并且输出完整的 oid 路径
9.7)用snmptranslate导出已经加载的所有 MIB 的数字格式的 oid ,不含值和类型,仅仅有 oid 而已
9.8)用snmptranslate只输出文字格式的 OID 名称而已
参考答案:
snmptranslate -On -IR  HOST-RESOURCES-MIB::hrSystem
snmptranslate -Onf -IR  HOST-RESOURCES-MIB::hrSystem
snmptranslate -Td iso.org.dod.internet.mgmt.mib-2
snmptranslate -Tp iso.org.dod.internet.mgmt.mib-2
snmptranslate -Ta
snmptranslate -Tl
snmptranslate -To
snmptranslate -Ts
10.1)用snmptranslate查询MID OID的数字为1.3.6.1.4.1.2021的详细信息
10.2)用snmptranslate列出1.3.6.1.4.1.2021树型结构
10.3)用snmpwalk连接192.168.6.53的snmp,通过UCD-SNMP-MIB列出proc的信息
10.4)用ps -e找过三个进程,写入到/etc/snmp/snmpd.conf配置文件中,如:keventd,nfsd,bdflush
10.5)重启snmpd服务
10.6)再用snmpwalk连接192.168.6.53的snmp,列出proc的信息
参考答案:
snmptranslate -Td 1.3.6.1.4.1.2021
snmptranslate -Tp 1.3.6.1.4.1.2021
snmpwalk -v 1 192.168.6.53 -c public .1.3.6.1.4.1.2021.2
打开snmpd.conf文件
vi /etc/snmp/snmpd.conf
找到# Process checks
加入:
proc keventd
proc nfsd
proc bdflush
service snmpd restart
snmpwalk -v 1 192.168.6.53 -c public .1.3.6.1.4.1.2021.2
11.1)用snmpwalk连接192.168.6.53的snmp,通过UCD-SNMP-MIB列出shell脚本的输出信息
11.2)编辑/etc/snmp/snmpd.conf文件,加入:exec echotest /bin/echo hello world和exec shelltest /bin/sh /tmp/shtest
11.3)编写脚本shtest,输出hello world
11.4)重启服务
11.5)用snmpwalk连接192.168.6.53的snmp,列出shell脚本的输出信息
参考答案:
snmpwalk -v 1 192.168.6.53 -c public .1.3.6.1.4.1.2021.8
编辑/etc/snmp/snmpd.conf文件
vi /etc/snmp/snmpd.conf
找到:# Executables/scrīpts
在后面加入:
exec echotest /bin/echo hello world
exec shelltest /bin/sh /tmp/shtest
保存退出
cd /tmp/
cat > shtest
#!/bin/sh
echo hello world
echo hi there
exit 35
service snmpd restart
snmpwalk -v 1 192.168.6.53 -c public .1.3.6.1.4.1.2021.8
12.1)用snmpwalk连接192.168.6.53的snmp,通过UCD-SNMP-MIB列出磁盘信息
12.2)编辑/etc/snmp/snmpd.conf文件,加入根分区和/boot分区
12.3)用kill的方式重新读取配置
12.4)用snmpwalk连接192.168.6.53的snmp,列出磁盘信息
参考答案:
snmpwalk -v 1 192.168.6.53 -c public .1.3.6.1.4.1.2021.9
编辑/etc/snmp/snmpd.conf文件
vi /etc/snmp/snmpd.conf
找到:disk checks
加入:
disk / 10000
disk /boot 10000
保存退出
kill -HUP `ps -e|grep snmpd|awk ‘{print $1}’`
snmpwalk -v 1 192.168.6.53 -c public .1.3.6.1.4.1.2021.9
13.1)用snmpwalk连接192.168.6.53的snmp,通过UCD-SNMP-MIB列出所有的系统进程
13.2)编辑/etc/snmp/snmpd.conf文件,加入:exec .1.3.6.1.4.1.2021.51 ps /bin/ps
13.3)用kill的方式重新读取配置
13.4)用snmpwalk连接192.168.6.53的snmp,列出系统信息
参考答案:
snmpwalk -v 1 192.168.6.53 -c public .1.3.6.1.4.1.2021.50
编辑/etc/snmp/snmpd.conf文件
vi /etc/snmp/snmpd.conf
加入:
exec .1.3.6.1.4.1.2021.51 ps /bin/ps
保存退出
kill -HUP `ps -e|grep snmpd|awk ‘{print $1}’`
snmpwalk -v 1 192.168.6.53 -c public .1.3.6.1.4.1.2021.50

1)新建用户alice及bob,同时建两用户的主目录


参考答案:


useradd -m alice;useradd -m bob


passwd alice


passwd bob


2.1)切换到alice


2.2)执行gpg建立初始化的用户文件


2.3)生成密钥对,指定加密算法为DSA and ElGamal


2.4)密钥位数为2048,密钥永久有效,指定用户名为chenkuo


参考答案:


su – alice


gpg


gpg –gen-key


输入用户名为chenkuo


3.1)切换到bob


3.2)执行gpg建立初始化的用户文件


3.3)生成密钥对,指定加密算法为DSA and ElGamal


3.4)密钥位数为2048,密钥永久有效,指定用户名为qiuming


参考答案:


su – bob


gpg


gpg –gen-key


输入用户名为qiuming


4.1)向alice用户的gpg.conf文件追加no-secmem-warning,关掉警告信息


4.2)查看alice用户的公钥及私钥信息


参考答案:


su – alice


echo no-secmem-warning >> .gnupg/gpg.conf


gpg –list-keys


gpg –list-secret-key


5.1)向bob用户的gpg.conf文件追加no-secmem-warning,关掉警告信息


5.2)查看bob用户的公钥及私钥信息


参考答案:


su – bob


echo no-secmem-warning >> .gnupg/gpg.conf


gpg –list-keys


gpg –list-secret-key


6.1)导出bob用户的公钥


6.2)查看/tmp/bob.key文件


参考答案:


gpg –export –armor qiuming >/tmp/bob.key


cat /tmp/bob.key


7.1)切换到alice用户


7.2)导入刚才bob用户导出的公钥


7.3)查看是否成功导入公钥


7.4)将/etc/passwd拷到用户目录中,用bob用户的公钥给passwd文件加密


7.5)查看加密后的passwd文件并拷贝到/tmp目录下


参考答案:


su – alice


gpg –import /tmp/bob.key


gpg –list-keys


cp /etc/passwd .


gpg –encrypt –armor –recipient qiuming passwd


cat passwd.asc


cp passwd.asc /tmp


8)切换到bob用户,拷贝passwd.asc文件到用户目录,解密此文件,最后查看解密后的passwd文件


参考答案:


su – bob


cp /tmp/passwd.asc


gpg passwd.asc


输入bob用户的私钥密码


cat passwd

1)查看本系统是否支持mdstat


参考答案:


cat /proc/mdstat
或lsmod | grep md



2)在/dev/md0上创建raid1,指定每个条带单元的大小为32,设备为sdb1和sdb2


参考答案:
mdadm -C /dev/md0 -l 0 -c 32 -n 2 /dev/sdb1 /dev/sdb2



3)查看创建的结果


参考答案:
cat /proc/mdstat



4)格式化md0,在根目录建立raiddata目录,并将md0挂载到raiddata目录下


参考答案:
mkfs -t ext3 /dev/md0
mkdir -p /raiddata/
mount /dev/md0 /raiddata/
df -h



5)查看md0的详细资讯


参考答案:
mdadm -D /dev/md0



6)查看sdb1和sdb2的详细资讯


参考答案:
mdadm -E /dev/sdb1
mdadm -E /dev/sdb2



7.1)停止md0
7.2)查看/proc/mdstat
7.3)再次启动md0,并查看/proc/mdstat
7.4)卸载/raiddata目录,并停止md0


参考答案:
mdadm -S /dev/md0
cat /proc/mdstat
mdadm -A /dev/md0 /dev/sdb1 /dev/sdb2
cat /proc/mdstat
umount /dev/md0
mdadm -S /dev/md0



8.1)用fdisk增加一个磁盘分区
8.2)在md0上将sdb1,sdb2做成raid1,用sdb3做hotspace盘,指定每个条带单元的大小为128
8.3)重新格式化md0,并将其挂载到/raiddata目录上,用df查看空间及设备


参考答案:
fdisk /dev/sdb
mdadm -C /dev/md0 -l1 -c 128 -n2 -x1 /dev/sdb1 /dev/sdb2 /dev/sdb3
mkfs -t ext3 /dev/md0
mount /dev/md0 /raiddata



9.1)将md0中的sdb1重置成fail
9.2)将md0中的sdb1移除
9.3)在md0中的添加一块磁盘分区sdb1
9.4)卸载/raiddata目录,并停止md0


参考答案:
mdadm /dev/md0 -f /dev/sdb1
cat /proc/mdstat
mdadm /dev/md0 -r /dev/sdb1
mdadm /dev/md0 -a /dev/sdb1
umount /dev/md0
mdadm -S /dev/md0



10.1)增加一个磁盘分区
10.2)同步分区表
10.3)在md0上创建由三个磁盘和一个hotspace组成的raid5,
10.4)格式化md0,并挂载md0到/raiddata目录


参考答案:
fdisk /dev/sdb
partprobe
mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb5
mkfs -t ext3 /dev/md0
mount /dev/md0 /raiddata
df -h
umount /dev/md0
mdadm -S /dev/md0



11.1)在md0上用sdb1和sdb2做raid1
11.2)在md1上用sdb3和sdb5做raid1
11.3)在md2上用md0和md1做raid0
11.4)格式化md2,并挂载md2到/raiddata目录,最后查看分区空间


mdadm -C /dev/md0 -l1 -n2 /dev/sdb1 /dev/sdb2
mdadm -C /dev/md1 -l1 -n2 /dev/sdb3 /dev/sdb5
mdadm -C /dev/md2 -l0 -n2 /dev/md0 /dev/md1
mkfs -t ext3 /dev/md2
mount /dev/md2 /raiddate

1.1)查询是否安装DNS软体
1.2)安装bind_chroot
1.3)编辑/etc/sysconfig/named,查看chroot的路径
1.4)注释掉/etc/resolv.conf中其它DNS的解析


参考答案:
rpm -qa|grep bind
rpm -ivh bind-chroot-9.2.4-21.el3.i386.rpm
vi /etc/sysconfig/named
ROOTDIR=/var/named/chroot
vi /etc/resolv.conf
保存退出 


2)设定具有Forwarding 的 cache-only DNS
2.1)设定zonefile的directory绝对系统路径为:/var/named
2.2)设定DNS的cache绝对系统路径为/var/named/data/cache_dump.db
2.3)设定DNS的统计文件绝对系统路径为/var/named/data/named_stats.txt
2.4)只允許 forward
2.5)指定forward寻找合法的DNS为210.22.70.3和202.96.209.5
2.6)指定PID文件到绝对系统路径为:/var/run/named/named.pid
2.7)重启DNS服务,观察53端口
2.8)观察DNS日志信息
2.9)登入客户端,更改/etc/resolv.conf的nameserver为192.168.6.217
2.10)用host连接www.avnads.cn测试能否解析正确的IP地址
2.11)用ping命令测试www.avnads.cn域名,测试是否能返回正确的IP地址


参考答案:
vi /etc/named.conf
options {
        directory “/var/named”;
        dump-file “/var/named/data/cache_dump.db”;
        statistics-file “/var/named/data/named_stats.txt”;
        pid-file “/var/run/named/named.pid”;
        forward only;
        forwarders {
            210.22.70.3;
            202.96.209.5;
        };
};
include “/etc/rndc.key”;


service named restart
netstat -utln|grep 53
tail -n 15 /var/log/messages | grep named


测试:
vi /etc/resolv.conf
nameserver 192.168.6.217
host www.avnads.cn
ping www.avnads.cn


 


3)配置DNS服务器,域名为britepic.org,包括反解析,本机的localhost 和最上层的root
3.1)设定/etc/named.conf,全局配置,要求如下:
3.2)设定zonefile的directory绝对系统路径为:/var/named/
3.3)设定DNS的cache绝对系统路径为/var/named/data/cache_dump.db
3.4)设定DNS的统计文件绝对系统路径为/var/named/data/named_stats.txt
3.5)指定forward寻找合法的DNS为210.22.70.3和202.96.209.5
3.6)指定PID文件到绝对系统路径为:/var/run/named/named.pid
3.7)设定最上层的DNS(root),文件名为named.root
3.8)设定本机localhost的正反解,正解的文件名为named.localhost,反解的文件名为named.127.0.0
3.9)设定域名britepic.org的正反解,正解的文件名为named.britepic.org,反解的文件名为named.192.168.6


参考答案:
options {
        directory “/var/named”;
        dump-file “/var/named/data/cache_dump.db”;
        statistics-file “/var/named/data/named_stats.txt”;
        pid-file “/var/run/named/named.pid”;
        forwarders {
            210.22.70.3;
            202.96.209.5;
        };
        allow-query { any; };
        allow-transfer { none; };
};
include “/etc/rndc.key”;


zone “.” {
        type hint;
        file “named.root”;
};


zone “localhost” {
        type master;
        file “named.localhost”;
};


zone “0.0.127.in-addr.arpa” {
        type master;
        file “named.127.0.0”;
};


zone “britepic.org” {
        type master;
        file “named.britepic.org”;
};


zone “6.168.192.in-addr.arpa” {
        type master;
        file “named.192.168.6”;
};



4设定DNS(root),配置named.root,要求如下:
4.1)设定TTL值为3600000,名称服务器为A.ROOT-SERVERS.NET
4.2)设定名称服务器的IP为198.41.0.4


参考答案:
vi /var/named/chroot/var/named/named.root
.                      3600000  IN  NS  A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.    3600000      A   198.41.0.4


保存退出



5设定DNS(localhost)的正解析,配置文件named.localhost,要求如下:
5.1)设定TTL值为600
5.2)Serial的序号为2008030101
5.3)Refresh slave 服务器的更新时间为28800
5.4)Retry当slave主机更新失败,多久再重新更新一次,设定值为14400
5.5)Expire重复retry多久后就不再更新,设定值为720000
5.6)最小的TTL值为86400
5.7)本域的名称服务器为localhost,IP为127.0.0.1


参考答案:
vi /var/named/chroot/var/named/named.localhost
$TTL 600


@       IN      SOA     localhost.      root.localhost. (
                        2008030101
                        28800
                        14400
                        720000
                        86400 )


@       IN      NS      localhost.
localhost.      IN      A       127.0.0.1
保存退出



6设定DNS(localhost)的反解析,配置文件named.127.0.0,要求如下:
6.1)设定TTL值为600
6.2)Serial的序号为2008030101
6.3)Refresh slave 服务器的更新时间,设定值为28800
6.4)Retry当slave主机更新失败,多久再重新更新一次,设定值为14400
6.5)Expire重复retry多久后就不再更新,设定值为720000
6.6)最小的TTL值为86400
6.7)配置本域反解析,名称服务器为localhost,IP为127.0.0.1


参考答案:
$TTL 600
vi /var/named/chroot/var/named/named.127.0.0
@       IN      SOA     localhost.      root.localhost. (
                        2008030101
                        28800
                        14400
                        720000
                        86400 )
@       IN      NS      localhost.
1       IN      PTR     localhost.



7)设定DNS(britepic.org)的正解析,配置文件为named.britepic.org,要求如下:
7.1)设定TTL值为600
7.2)Serial的序号为2008030101
7.3)Refresh slave 服务器的更新时间,设定值为28800
7.4)Retry当slave主机更新失败,多久再重新更新一次,设定值为14400
7.5)Expire重复retry多久后就不再更新,设定值为720000
7.6)最小的TTL值为86400
7.7)配置britepic.org的正解析,名称服务器为t1.britepic.org(t1为本机名),IP地址为:192.168.6.217
7.8)配置MX地址指向本机名
7.9)配置t1.britepic.org的别名为www.britepic.org
7.10)配置t1.britepic.org的别名为ftp.britepic.org


参考答案:
vi /var/named/chroot/var/named/named.britepic.org


$TTL 600


@       IN      SOA     t1.britepic.org.      root.t1 (
                        2008030101
                        28800
                        14400
                        720000
                        86400 )


@       IN      NS      t1.britepic.org.
t1      IN      A       192.168.6.217
@       IN      MX 10   t1


www     IN      CNAME   t1
ftp     IN      CNAME   t1



8)设定DNS(192.168.6.217)的反解析,配置文件为named.192.168.6,要求如下:
8.1)设定TTL值为600
8.2)Serial的序号为2008030101
8.3)Refresh slave 服务器的更新时间,设定值为28800
8.4)Retry当slave主机更新失败,多久再重新更新一次,设定值为14400
8.5)Expire重复retry多久后就不再更新,设定值为720000
8.6)最小的TTL值为86400
8.7)配置192.168.6.217的反解主机名为t1.britepic.org
8.8)对/var/named/chroot/var/named下所有文件的owner授权为named用户
8.9)对重启dns服务,并观察日志信息


参考答案:
$TTL 600


@       IN      SOA     localhost.      root.localhost. (
                        2008030101
                        28800
                        14400
                        720000
                        86400 )
@       IN      NS      t1.britepic.org.
217     IN      PTR     t1.britepic.org.


chown -R named:named /var/named/chroot/var/named
service named restart
tail -n 20 /var/log/messages | grep named



9.1)用host命令测试t1.britepic.org
9.2)用host命令测试www.britepic.org
9.3)用host命令并指定192.168.6.217为解析DNS来测试ftp.britepic.org
9.4)用host命令测试192.168.6.217的反向解析
参考答案:
host t1.britepic.org
host www.britepic.org 192.168.6.217
host ftp.britepic.org 192.168.6.217
host 192.168.6.217



10.1)用nslookup直接搜寻t1.britepic.org的IP
10.2)用nslookup直接搜寻t1.britepic.org的IP,但要指定DNS解析服务器为192.168.6.217
10.3)进入到nslookup的操作介面,搜寻正解的www.britepic.org,搜寻反解的192.168.6.217
10.4)进入到nslookup的操作介面,搜寻t1.britepic.org的全部信息
参考答案:
nslookup t1.britepic.org
nslookup t1.britepic.org 192.168.6.217
nslookup
www.britepic.org
192.168.6.217
set type=any
t1.britepic.org



11.1)用dig查询t1.britepic.org
11.2)用dig查询t1.britepic.org,但要指定DNS解析服务器为192.168.6.217
11.3)用dig查询t1.britepic.org的MX记录
11.4)用dig查询RedHat.com,并且用grep去掉多余的信息
参考答案:
dig t1.britepic.org
dig @192.168.6.217 t1.britepic.org
dig t1.britepic.org mx
dig redhat.com mx|grep ^[^\;]



12.1)用whois查询redhat.com的详细资料
参考答案:
whois redhat.com


13)检测DNS配置的语法错误
13.1)检测DNS配置文件/var/named/chroot/etc/named.conf的语法错误
13.2)检测DNS配置文件/var/named/chroot/var/named/named.britepic.org 的语法错误,指定zonename为britepic.org


参考答案:
named-checkconf
named-checkzone britepic.org /var/named/chroot/var/named/named.britepic.org

1)关闭sendmail服务,安装postfix,启动postfix


参考答案:


service sendmail stop


rpm -ivh postfix-2.0.11-4.i386.rpm


service postfix restart


2.1)配置/etc/postfix/main.cf,设定主机名称为t1.britepic.org


2.2)发信时显示出”发信源主机”项目,即邮件上面的mail from的那个位址


2.3)监控postfix的所有网卡


2.4)设定能收信的主机名称,为t1.britepic.org,localhost


2.5)规定信任的用户端为127.0.0.0/8,192.168.6.0/24


2.6)规范relay的下一部MTA主机位址,指定为$mydestination


2.7)设定邮件别名(alias_maps,alias_database),指定别名文件为/etc/postfix/aliases


2.8)重启服务


2.9)测试邮件收发


参考答案:


vi /etc/postfix/main.cf


myhostname = t1.britepic.org


myorigin = $myhostname


inet_interfaces = all


mydestination = $myhostname,localhost


mynetworks = 127.0.0.0/8, 192.168.6.0/24


relay_domains = $mydestination


alias_maps = hash:/etc/postfix/aliases


alias_database = hash:/etc/postfix/aliases


保存退出


service postfix restart


发送邮件给root


echo “testing…”|mail -s “from britepic” root


检查邮件


mail


3)检查 postfix 的设定


参考答案:


postconf -n


4)检查 postfix 相关的档案、权限等是否正确


参考答案:


postfix check


5)强制将目前正在邮件队列的邮件发出


参考答案:


postfix flush


6)重新读入设定档,/etc/postfix/main.cf


参考答案:


postfix reload


7)查看队列


参考答案:


postqueue -p


8.1)设定邮件主机使用权限与过滤机制/etc/postfix/access,允许192.168.6.0/24发送relay


8.2)拒绝192.168.7.0/24发送relay


8.3)重建资料库


8.4)在main.cf中的mynetworks中加入access的设定


8.5)重新读入main.cf配置,并测试邮件发送


参考答案:


vi /etc/postfix/access


192.168.6               ACCEPT


192.168.7               REJECT


postmap hash:/etc/postfix/access


vi /etc/postfix/main.cf


mynetworks = 127.0.0.0/8, 192.168.6.0/24, hash:/etc/postfix/access


postfix reload


echo “testing…”|mail -s “from second” root


9.1)新建用户test


9.2)设定邮件别名,使发给root的邮件也发给用户test一份


9.3)重建aliases资料库


9.4)发送邮件给root,查看test用户是否收到邮件


参考答案:


vi /etc/postfix/aliases


root:           root,postfix,test


保存退出


postalias hash:/etc/postfix/aliases


echo “testing…”|mail -s “from thired” root


mail


10.1)邮件转发 ~/.forward,转发给kchen@ceno.cnt和root@t1.britepic.org


10.2)设定forward为644权限


10.3)查看kchen@ceno.cn和root@t1.britepic.org的邮箱


参考答案:


cd


vi .forward


kchen@ceno.cn


保存退出


chmod 644 .forward


echo “testing…”|mail -s “from fourth” root@t1.britepic.org


11)查看postfix的邮件队列


参考答案:


postqueue -p


mailq


12.1)关闭postfix服务


12.2)给root用户发一封测试邮件,


12.3)查看队列


12.4)到/var/spool/postfix/maildrop目录下,查看队列文件


参考答案:


service postfix stop


echo “test” |mail -s “testing queue” root


postqueue -p


cd /var/spool/postfix/maildrop


cat 418E91A2A86


13.1)重启postfix服务


13.2)强制将队列中的邮件发出


参考答案:


service postfix restart


postfix flush


14.1)安装mysql-devel包,安装dovecot服务


14.2)编辑dovecot.conf文档,加入pop3协议,并所有IP地址的监听


14.3)重启dovecot服务,观察110端口


参考答案:


rpm -ivh mysql-devel-3.23.58-16.RHEL3.1.i386.rpm


wget ftp://194.199.20.114/linux/dag/redhat/el3/en/i386/dag/RPMS/dovecot-0.99.13-1.1.el3.rf.i386.rpm


rpm -ivh dovecot-0.99.13-1.1.el3.rf.i386.rpm


vi /etc/dovecot.conf


protocols = pop3


pop3_listen = *


service dovecot start


netstat -anp|grep 110


15.1)测试邮件收发,发给root一封邮件


15.2)查看是否收到测试邮件


15.3)查看~/mbox的邮件


15.4)用uuencode发送以/etc/passwd文件的附件给root用户


15.5)查看root用户邮件,下载passwd文件,并解码


参考答案:


mail root@t1.britepic.org


mail


mail -f ~/mbox


uuencode /etc/passwd passwd|mail -s “passwd” root@t1.britepic.org


mail


s 2 encode


uudecode encode -o passwd

1)查看seLinux是否启用


参考答案:


sestatus


2)启用seLinux


参考答案:


vi /etc/sysconfig/seLinux


SELinux=enforcing


存盘退出


reboot


sestatus


3)启动httpd测试SELinux是否保护了httpd


参考答案:


service httpd restart


4.1)将seLinux的当前模式置为permissive


4.2)查看seLinux的当前模式


4.3)重启httpd


参考答案:


setenforce 0


sestatus


service httpd restart


5)将seLinux的当前模式置为enforcing


参考答案:


setenforce 1


6)查看httpd_disable_trans的设定


参考答案:


getsebool httpd_disable_trans


7.1)将httpd_disable_trans设定为永久不受seLinux保护


7.2)查看httpd_disable_trans的设定


7.3)重启httpd服务


参考答案:


setsebool -P httpd_disable_trans=1


getsebool httpd_disable_trans


service httpd restart


8)查看seLinux的booleans值


参考答案:


cat /etc/seLinux/targeted/booleans


9)显示当前系统进程的contexts


参考答案:


ps -Z


10)显示当前系统的/etc/目录下的所有文件的contexts


参考答案:


ls -Z


11.1)在/tmp/目录下新建一个名为user的文件


11.2)查看user文件的contexts


11.3)改变user文件的contexts为user_home_t


11.4)查看user文件的contexts


参考答案:


touch /tmp/user


ls -Z /tmp/user


chcon -t user_home_t user


ls -Z /tmp/user


12)查看目前使用者身份的contexts屬性


参考答案:


id -Z


13)用httpd_t的contexts查看是否有权限访问/etc/passwd


参考答案:


runcon -t httpd_t cat /etc/passwd

1)查看是否安装了ntp包


参考答案:


rpm -qa|grep ntp


2.1)配置ntp.conf


2.2)开放本地地址的ntp访问权限


2.3)开放192.168.6.0网段和192.168.7.0网段的访问权限,用户端不能更改 NTP 服务器的时间参数


2.4)设定上层的ntp服务器202.112.26.38,202.112.26.37,并且开放这两台服务器的权限


参考答案:


vi /etc/ntp.conf


restrict 127.0.0.1


restrict 202.112.26.38 mask 255.255.255.255 nomodify notrap noquery


restrict 202.112.26.37 mask 255.255.255.255 nomodify notrap noquery


restrict 192.168.6.0 mask 255.255.255.0 nomodify


restrict 192.168.7.0 mask 255.255.255.0 nomodify


server 202.112.26.38    version 3


server 202.112.26.37    version 3


server  127.127.1.0     version 3


fudge   127.127.1.0     stratum 10


3)将sync_hwclock即同步BIOS的时间设为YES,并重启ntp服务


参考答案:


vi /etc/sysconfig/ntpd


SYNC_HWCLOCK=yes


service ntpd restart


4)查看ntp是否开放了123端口


参考答案:


netstat -tlunp|grep 123


5)列出我们的 NTP 服务器有跟上层连接


参考答案:


ntpstat


6)NTP 服务器与上层 NTP 服务器彼此之间的关系


参考答案:


ntptrace -n 127.0.0.1


7)列出目前我们的 NTP 与相关的上层 NTP 的状态


参考答案:


ntpq -p


8)修改本地时区为中国上海


参考答案:


rm /etc/localtime


cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime


vi /etc/sysconfig/clock


ZONE=”Asia/Shanghai”


9)更改客户端时间,为2007-05-02,20:40


参考答案:


date -s 20070502


date -s 20:40


10.1)查看BIOS时间


10.2)将当前时间写入到BIOS


参考答案:


clock -r


clock -w


11)在客户端与上面的ntp服务器连接时间同步,并查看时间


参考答案:


ntpdate 192.168.6.217


date


date

1.1)基础的SAMBA设定


1.2)配置工作群组(workgroup)为:ckgroup


1.3)Linux 主机的 NetBIOS 名称为:ckhitler


1.4)使用者登入层级设定为:share


1.5)共享 /tmp 目录,取名为:temp


1.6)指定Linux 主机的编码格式为简体中文,显示为简体中文


参考答案:


cd /etc/samba


cp smb.conf smb.conf.raw


编辑smb.conf


vi smb.conf


[global]


# workgroup = NT-Domain-Name or Workgroup-Name


   workgroup = ckgroup


   netbios name = ckhitler


# server string is the equivalent of the NT Descrīption field


   server string = A test of Samba Server


unix charset    = gb2312


   display charset = gb2312


   dos charset     = cp950


security = share


[temp]


        comment   = Temporary file space


        path      = /tmp


        read ōnly = no


        public    = yes


保存退出


service smb restart


2.1)用 testparm 查看 smb.conf 的语法的正确性


2.2)查看开放的端口号


2.3)用smbclient对本机进行连接测试


参考答案:


testparm


netstat -tlunp


smbclient -L //127.0.0.1


3.1)安全等级为使用者的工作组设定,前一個免密码时的 smb.conf 设定继续保留


3.2)针对 NetBIOS name 的解析方式依序由 lmhosts, broadcast 及 host 来进行解析


3.3)安全等级提升为 user 等级


3.4)每个可使用 samba 的使用者拥有自己的家目录之外, users 这个群组的使用者可以进入 /home/public 目录中, 且在该目录下 users,这个群组的所有人可具有写入的权限


3.5)新建/home/public目录,授权为774


3.6)新建test用户,对test用户设定samba密码


3.7)禁止test用户在samba上的应用


3.8)激活test用户在samba上的应用


3.9)用testparm测试smb.conf正确性


参考答案:


编辑smb.conf


vi smb.conf


security = user


        encrypt passwords = yes


        smb passwd file = /etc/samba/smbpasswd


name resolve ōrder = lmhosts bcast host


[homes]


        comment = Home directories


        browseable = no


        writable = yes


        valid users = %S


        create mode = 0664


        directory mode = 0775


[public]


        comment = the user groups work directory


        path = /home/public


        public = yes


        writable = yes


        valid users = @users


保存退出


mkdir /home/public


chmod 774 -R /home/public


useradd test;passwd test


smbpasswd -a test


cat /etc/samba/smbpasswd


smbpasswd -d test


cat /etc/samba/smbpasswd


smbpasswd -e test


testparm


service smb restart


4.1)用smbclient列出127.0.0.1的共享


4.2)在test用户上用smbclient列出127.0.0.1能够访问的共享


4.3)在test用户上用smbclient查询127.0.0.1的test目录下的文件


参考答案:


smbclient -L //127.0.0.1


smbclient -L //127.0.0.1 -U test


smbclient ‘//127.0.0.1/test’ -U test


5)用smbmount挂载192.168.1.101的temp目录到/mnt/samba目录,用户指定为administrator密码为111111,字符编码为cp950


参考答案:


smbmount //192.168.1.101/temp /mnt/samba/ -o username=administrator,password=111111,codepage=cp950


6)用smbstatus查询挂载


参考答案:


smbstatus


7)用nmblookup查询刚才用smbstatus得到的netbios名


参考答案:


nmblookup -S  z22bt2l01wu7nik


8)将//192.168.1.101/temp目录挂载到/mnt/samba的事项加入到/etc/fstab中


参考答案:


vi /etc/fstab


加入以下内容:


//192.168.1.101/temp /mnt/samba  smbfs defaults,username=administrator%111111 0 0

1)查看是否安装有vsftpd软体


参考答案:


rpm -qa|grep vsftpd


2.1)手工安装vsftpd,下载vsftpd的SRPM包


2.2)安装SRPM包


2.3)用rpmbuild重建rpm包


2.4)安装vsftpd


参考答案:


wget ftp://194.199.20.114/Linux/redhat/enterprise/4/en/os/i386/SRPMS/vsftpd-2.0.1-5.src.rpm


rpm -ivh vsftpd-2.0.1-5.src.rpm


cd /usr/src/RedHat/SPECS


rpmbuild -ba vsftpd.spec


cd /usr/src/redhat/RPMS/i386


rpm -ivh vsftpd-2.0.1-5.i386.rpm


3.1)简易设定vsftpd,取消匿名用户登陆本系统


3.2)使用者登入时显示一些欢迎讯息的资讯


3.3)系统帐号不可登入主机


3.4)一般用户可以进行上传、下载、建立目录及修改档案等动作


3.5)使用者新增的档案、目录的 umask 設定为 002;


3.6)其他主机设定值保留预设值即可


3.7)重启vsftpd服务


参考答案:


vi /etc/vsftpd/vsftpd.conf


更改如下的配置:


anonymous_enable=no


local_umask=002


banner_file=/etc/vsftpd/welcome.txt


保存退出


cat > /etc/vsftpd/welcome.txt


i love you qiu ming!


service vsftpd restart


4.1)增加chroot功能


4.2)用chroot限制用户test1


4.3)重启vsftpd服务


参考答案:


cat >/etc/vsftpd.chroot_list


test1


vi /etc/vsftpd/vsftpd.conf


更改如下的配置:


chroot_list_enable=YES


chroot_list_file=/etc/vsftpd.chroot_list


保存退出


service vsftpd restart


5.1)所有使用者预设为 chroot ,但某些使用者可不受限制的


参考答案:


vi /etc/vsftpd/vsftpd.conf


更改如下的配置:


chroot_local_user=YES


保存退出


service vsftpd restart


6.1)限制所有使用者的传输频宽最大为 100KBytes/秒


6.2)多只有 10 个人同时使用你的 FTP 的话,并且每个 IP 来源最多只能建立一条 FTP 的连线


参考答案:


vi /etc/vsftpd/vsftpd.conf


更改如下的配置:


local_max_rate=100000


max_clients=10


max_per_ip=1


保存退出


service vsftpd restart


7)只让某些人可以使用 FTP 而已,即是新增的使用者预期不可使用 FTP


参考答案:


vi /etc/vsftpd/vsftpd.conf


更改如下的配置:


userlist_deny=NO


保存退出


service vsftpd restart


cat >> /etc/vsftpd.user_list


test1


8)开放 root 使用 FTP 传输档案


参考答案:


vi /etc/vsftpd/vsftpd.conf


更改如下的配置:


#userlist_deny=no


保存退出


service vsftpd restart


vi /etc/vsftpd.user_list


去掉root


vi /etc/vsftpd.ftpusers


去掉root


9.1)匿名登入的相关设定,新建/var/ftp/Linux目录和/var/ftp/gnu目录


9.2)目录的权限为可读可写可执行


9.3)开放匿名访问,密码为空


9.4)禁止本地用户登录


9.5)资料连接的过程,只要超过 60 秒沒有回应,就强制 Client 继线


9.6)只要 anonymous 超过十分钟沒有动作,就予以继线;


9.7)最大同時上线人数限制为 50 人,且同一 IP 来源最大连线数量为 5 人


9.8)文件传输的速限为 30 Kbytes/second


参考答案:


mkdir /var/ftp/Linux


mkdir /var/ftp/gnu


chmod -R 777 /var/ftp/*


vi /etc/vsftpd/vsftpd.conf


更改如下的配置:


anonymous_enable=yes


no_anon_password=YES


local_enable=no


data_connection_timeout=60


idle_session_timeout=600


max_clients=50


max_per_ip=5


anon_max_rate=30000


anon_upload_enable=YES


anon_mkdir_write_enable=YES


anon_other_write_enable=YES


保存退出


service vsftpd restart

1)查看本系统是否安装DHCP服务软体


参考答案:


rpm -qa |grep dhcp


2.1)手工安装dhcp,下载SRPMS包


2.2)进行SOURCES目录,解开tar包


2.3)编译安装dhcp服务端


参考答案:


wget ftp://195.220.108.108/Linux/Fedora/updates/7/SRPMS/dhcp-3.0.5-42.fc7.src.rpm


cd /usr/src/RedHat/SOURCES


tar xvzf dhcp-3.0.5.tar.gz


cd dhcp-3.0.5


./configure;make;make install


3.1)在SOURCES目录下拷贝dhcpd.conf.sample到/etc,并更名为dhcpd.conf


3.2)在SOURCES目录下拷贝dhcpd.init到/etc/init.d,并更名为dhcpd


3.3)向/etc/sysconfig/dhcpd文件中写入DHCPDARGS=”eth0″


3.4)新建/var/state/dhcp/dhcpd.leases文件


参考答案:


cp ../dhcpd.conf.sample /etc/dhcpd.conf


cp ../dhcpd.init /etc/init.d/dhcpd


cat > /etc/sysconfig/dhcpd


DHCPDARGS=”eth0″


touch /var/state/dhcp/dhcpd.leases


4.1)打开/etc/dhcpd.conf文件


4.2)內部网段设定为 192.168.2.0/24 这一段


4.3)router 为 192.168.2.1


4.4)DNS主机的 IP 为黑龙江网通的202.97.224.68


4.5)DNS的search为ckhitler.org


4.6)动态分配给客户端的IP地址为192.168.2.128到192.168.2.254


4.7)默认的租约为3天,最大为6天


参考答案:


vi /etc/dhcpd.conf


ddns-update-style interim;


ignore client-updates;


subnet 192.168.2.0 netmask 255.255.255.0 {


# — default gateway


        option routers                  192.168.2.1;


        option subnet-mask              255.255.255.0;


option nis-domain               “ckhitler.org”;


        option domain-name              “ckhitler.org”;


        option domain-name-servers      202.97.224.68;


option time-offset              -18000; # Eastern Standard Time


#       option ntp-servers              192.168.1.1;


#       option netbios-name-servers     192.168.1.1;


# — Selects point-to-point node (default is hybrid). Don’t change this unless


# — you understand Netbios very well


#       option netbios-node-type 2;


range dynamic-bootp 192.168.2.128 192.168.2.254;


        default-lease-time 259200;


        max-lease-time 518400;


# we want the nameserver to appear at a fixed address


        host ns {


                next-server marvin.redhat.com;


                hardware ethernet 12:34:56:78:AB:CD;


                fixed-address 207.175.42.254;


        }


}


5.1)启动dhcpd服务


5.2)查看/var/log/messages文件


5.3)查看监听的端口


参考答案:


service dhcpd restart


tail -n 30 /var/log/messages


netstat -tlunp


6.1)在客户端配置eth0为动态获取IP地址


6.2)重启网络


6.3)查看resolv.conf文件


6.4)查看路由


6.5)查看端口连接


6.6)查看dhclient-eth0.leases文件


6.7)查看服务端的dhcpd.leases文件


参考答案:


vi /etc/sysconfig/network-scrīpts/ifcfg-eth0


BOOTPROTO=dhcp


service network restart


cat /etc/resolv.conf


route -n


netstat -tlunp


cat /var/lib/dhcp/dhclient-eth0.leases


cat /var/lib/dhcp/dhcpd.leases

1)安装snmp,apache,mrtg


rpm -qa|grep snmp


rpm -qa|grep httpd


rpm -qa|grep mrtg


rpm  -ivh mrtg-2.9.29-4.ent.i386.rpm


 


2.1)编辑snmpd.conf,加入mib的支持,以配合mrtg
2.2)重启snmpd服务


参考答案:
vi /etc/snmp/snmpd.conf


把下面的#号去掉
#view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc


把下面的语句
access notConfigGroup “” any noauth exact systemview none none
改成:
access notConfigGroup “” any noauth exact mib2 none none



service snmpd restart


 


3)新建/var/www/mrtg/net目录,并在其目录下生成mrtg.cfg,指定监控的IP为192.168.6.53(本地IP)


参考答案:
mkdir /var/www/mrtg/net/


cfgmaker –output=/var/www/mrtg/net/mrtg.cfg public@192.168.6.53


 


4.1)编辑mrtg.cfg文件,更改WorkDir为/var/www/mrtg/net
4.2)加入中文支持


参考答案:
WorkDir: /var/www/mrtg/net


Language:Chinese


 


5.1)


Alias /mrtg “/var/www/mrtg/net/”
<Directory “/var/www/mrtg/net/”>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>



找到这行:


AddDefaultCharset ISO-8859-1


更改为:


AddDefaultCharset GB2312


 


6.1)查找mrtg命令的路径,并跟据路径进入此目录
6.2)执行env LANG=C ./mrtg /var/www/mrtg/net/mrtg.cfg,执行三遍


参考答案:
which mrtg
cd /usr/bin/
env LANG=C ./mrtg /var/www/mrtg/net/mrtg.cfg
env LANG=C ./mrtg /var/www/mrtg/net/mrtg.cfg
env LANG=C ./mrtg /var/www/mrtg/net/mrtg.cfg


 


7)用indexmaker 制作index.html首页,存放路径为/var/www/mrtg/net/,title为ckhitler


参考答案:
indexmaker –output=/var/www/mrtg/net/index.html –title=ckhitler /var/www/mrtg/net/mrtg.cfg


 


8)去除掉mrtg在安装时给apache做的默认配置,此配置会自动加载到apache中,导致除本地外,其它机器都不能访问


参考答案:
cd /etc/httpd/conf.d
mv mrtg.conf /tmp


 


9)重启httpd和snmp服务


参考答案:
service httpd restart
service smpd restart


 


10)在crontab中加入在网卡流量的监控,每5分钟执行一次


参考答案:
vi /etc/crontab


*/5 * * * * root env LANG=C /usr/bin/mrtg /var/www/mrtg/net/mrtg.cfg


 


11.1)在mrtg中加入对cpu的监控设定,加入:Target[cpu],即mrtg执行时运行/var/www/mrtg/mrtg.cpu脚本
11.2)加入:MaxBytes[cpu],即图表纵向数值的最大上限为100
11.3)加入:Options[cpu]: gauge, nopercent, growright,即图表向右延展
11.4)加入:YLegend[cpu],即图表纵向显示的标题为CPU loading(%)
11.5)加入:ShortLegend[cpu],即在图标中数值后面所跟的单位
11.6)加入:LegendI[cpu]和LegendO[cpu],即从脚本读取的第一个值和第二个值,第一个值统计CPU SYSTEM,第二个值统计CPU USER
11.7)加入:Title[cpu]:即网页的标题,设定为CPU
11.8)加入:PageTop[cpu]:即网页显示的名称,设定为CPU loading
11.9)在网页名称下面显示系统的版本号



参考答案:
Target[cpu]: `/var/www/mrtg/mrtg.cpu`
MaxBytes[cpu]: 100
Options[cpu]: gauge, nopercent, growright
YLegend[cpu]: CPU loading (%)
ShortLegend[cpu]: %
LegendO[cpu]:  CPU SYSTEM;
LegendI[cpu]:  CPU USER;
Title[cpu]: CPU
PageTop[cpu]: <H1>CPU loading</H1>
 <TABLE>
   <TR><TD>System:</TD>     <TD>Red Hat Enterprise Linux ES release 3 (Taroon Up
date 7)</TD></TR>
 </TABLE>


 


12.1)编写统计CPU的脚本,要求第一组输出数据(LegendI)为系统占CPU百分比
12.2)第二组数据输出数据(LegendO)为用户占CPU百分比
12.3)第三组数据为系统运行天数及时间,例如: 1day,5:05,
12.4)第四组数据为主机名


参考答案:
#!/bin/bash
cpuusr=`/usr/bin/sar -u 1 3 | grep Average | awk ‘{print $3}’`
cpusys=`/usr/bin/sar -u 1 3 | grep Average | awk ‘{print $5}’`
UPtime=`/usr/bin/uptime | awk ‘{print $3″”$4″”$5}’`
echo $cpuusr
echo $cpusys
echo $UPtime
hostname



13.1)在mrtg中加入对磁盘空间的监控,加入:Target[disk],即mrtg执行时运行/var/www/mrtg/df.sh脚本
13.2)加入:MaxBytes[disk],即图表纵向数值的最大上限为465247550
13.3)加入:Options[disk]: gauge, nopercent, growright,即图表向右延展
13.4)加入:YLegend[disk],即图表纵向显示的标题为Megabytes
13.5)加入:ShortLegend[disk],即在图标中数值后面所跟的单位
13.6)加入:LegendI[disk]和LegendO[disk],即从脚本读取的第一个值和第二个值,第一个值统计磁盘总空间,第二个值统计已用空间
13.7)加入:Title[disk]:即网页的标题,设定为Disk Space
13.8)加入:PageTop[disk]:即网页显示的名称,设定为Disk Space
13.9)加入:Unscaled[disk]:不让 MRTG 自动调制 Y 轴,为每个Target生成4个图片,分别是天,周,月,年
13.10)加入:kmg[disk]:KB,MB,GB
13.11)加入:kilo[disk]:即以1000=1KB来计算



参考答案:
Target[disk]: `/var/www/mrtg/df.sh`
Title[disk]: Disk Space
Unscaled[disk]: dwym
MaxBytes[disk]: 465247550
kmg[disk]: KB,MB,GB
kilo[disk]: 1000
LegendI[disk]: Total Disk Space
LegendO[disk]: Used Disk Space
YLegend[disk]:  Megabytes
ShortLegend[disk]:
Options[disk]: growright,gauge,nopercent
PageTop[disk]: <H1>Disk Space </H1>


 


14.1)编写df.sh脚本,要求第一组输出数据(LegendI)为系统总空间以(KB)为单位
14.2)第二组数据输出数据(LegendO)为以使用空间以(KB)为单位
14.3)第三组数据为系统运行天数及时间,例如: 1day,5:05,
14.4)第四组数据为主机名


参考答案:
declare -i disknum
declare -i initnum
declare -i sizenum
declare -i disktotal
declare -i usednum
declare -i diskused
declare -i diskavai
disknum=`df -kl|grep -v “Filesystem”|wc -l|awk ‘{print $1}’`


for ((initnum=1;initnum<disknum;initnum++))
do
    sizenum=`df -kl|grep -v “Filesystem”|awk ‘{print $2}’|sed -n “$initnum”p`
    usednum=`df -kl|grep -v “Filesystem”|awk ‘{print $3}’|sed -n “$initnum”p`
    avainum=`df -kl|grep -v “Filesystem”|awk ‘{print $4}’|sed -n “$initnum”p`


    disktotal=sizenum+disktotal
    diskused=usednum+diskused
    diskavai=avainum+diskavai
done
echo $disktotal
echo $diskused
echo $diskavai
UPtime=`/usr/bin/uptime | awk ‘{print $3″”$4″”$5}’`
echo $UPtime
hostname



15.1)生成mrtg.cfg
15.2)用indexmaker 制作index.html首页


参考答案:
env LANG=C mrtg /var/www/mrtg/net/mrtg.cfg
env LANG=C mrtg /var/www/mrtg/net/mrtg.cfg
env LANG=C mrtg /var/www/mrtg/net/mrtg.cfg


indexmaker –output=/var/www/mrtg/net/index.html –title=ckhitler /var/www/mrtg/net/mrtg.cfg

1)查看本系统是否安装有服务端所需的nis包,即ypbind,yp-tools和ypserv,如没有预安装,则要安装上


参考答案:


rpm -qa | grep ‘^yp’


wget ftp://rpmfind.net/linux/fedora/core/4/i386/os/Fedora/RPMS/ypserv-2.13-6.i386.rpm


2)新建/nishome目录,在服务端建立测试用户,指定UID为5001,指定家目录为/nishome/test


参考答案:


mkdir /nishome


useradd -u 5001 -d /nishome/test test


passwd test


3)在服务端设定nis的域名为ckhitler,并加入到/etc/sysconfig/network档案中


参考答案:


nisdomainname ckhitler


nisdomainname


vi /etc/sysconfig/network


NISDOMAIN=ckhitler


4)设定服务端的/etc/hosts文件,增加服务端/客户端的IP与主机名,例如服务端为master.nis,客户端为client.nis


参考答案:


vi /etc/hosts


192.168.1.103           master.nis


192.168.1.102           client.nis


5)设定服务端的当前的主机名为master.nis


参考答案:


hostname master.nis


6)在服务端新建/etc/netgroup空文件


参考答案:


touch /etc/netgroup


7)在服务端启动portmap/ypserv,yppasswdd服务


参考答案:


service portmap start


service ypserv start


service yppasswdd start


8)查看服务端的RPC端口和ypserv的端口


参考答案:


rpcinfo -p localhost


rpcinfo -u localhost ypserv


9)在服务端建立nis的资料库,编辑Makefile文件,并指定UID为5001之后的用户


参考答案:


vi /var/yp/Makefile


更改MINUID和MINGID为5001


如下:


MINUID=5001


MINGID=5001


/usr/lib/yp/ypinit -m


10)在客户端设定NIS域名为ckhitler


参考答案:


nisdomainname ckhitler


vi /etc/sysconfig/network


NISDOMAIN=ckhitler


11)在客户端设定主机名与服务端一致


参考答案:


vi /etc/hosts


192.168.1.103           master.nis


192.168.1.102           client.nis


12)在客户端用authconfig启动ypbind 连接 NIS server,选择NIS,添加NIS的域名和服务器主机名


参考答案:


authconfig


13)在客户端启用NIS连接服务及RPC服务


参考答案:


service portmap start


service ypbind start


14)在客户端测试资料库是否正确


参考答案:


yptest


15)在客户端测试资料库数量


参考答案:


ypwhich -x


16)读取资料库passwd.byname的内容


参考答案:


ypcat passwd.byname


17)在客户端测试用户的登录


参考答案:


su – test


18)在服务端查看nis 的资料库目录


参考答案:


cd /var/yp


ls


19)在客户端更新test用户的密码,并与服务端同步,并测试登录


参考答案:


yppasswd test


su – tset


su – test


20)在服务端查看test用户是否更改


参考答案:


su – test


su – test

1)打开HTTPD的持续性连接,即KeepAlive,该指令决定当处理完用户发起的 HTTP 请求后是否立即关闭 TCP 连接,该次连接能够传输的最大传输数量为500


参考答案:


修改以下的文件:


vi /etc/httpd/conf/httpd.conf


修改如下内容:


KeepAlive On


MaxKeepAliveRequests 500


保存退出


service httpd restart


2)查看当前apache的应用模式


参考答案:


httpd -l


3)调整httpd最大的同時连接数量为10000个


参考答案:


修改以下的文件:


vi /etc/httpd/conf/httpd.conf


修改如下内容:


ServerLimit   10000


MaxClients 10000


保存退出


service httpd restart


4)启动httpd进程的用户为apache


参考答案:


修改以下的文件:


vi /etc/httpd/conf/httpd.conf


修改如下内容:


User apache


Group apache


保存退出


service httpd restart


5)用中文 GB2312 编码


参考答案:


修改以下的文件:


vi /etc/httpd/conf/httpd.conf


修改如下内容:


AddDefaultCharset GB2312


保存退出


service httpd restart


6.1)首頁权限相关设定,更改默认的WEB目录为/web


6.2)增加default.html为默认的索引文件


6.3)在default.html网页中增加”I love China”


参考答案:


修改以下的文件:


vi /etc/httpd/conf/httpd.conf


修改如下内容:


DocumentRoot “/web”


<Directory “/web”>


    Options Indexes FollowSymLinks


    AllowOverride None


    Order allow,deny


    Allow from all


</Directory>


DirectoryIndex default.html index.html index.html.var


保存退出


mkdir /web


cat > default.html


I love China!


service httpd restart


7.1)启动用户的个人网站,用户为test


7.2)用户目录为/home/test/html


7.3)在用户目录下新建index.html文件


7.4)设定目录别名,即访问http://ip/test,即可浏览页面


参考答案:


mkdir /home/test/html


chmod 755 /home/test/ -R


echo “Test your home”>>/home/test/html/index.html


修改以下的文件:


vi /etc/httpd/conf/httpd.conf


<IfModule mod_userdir.c>


    #UserDir disable


    UserDir public_html


</IfModule>


Alias /test/ “/home/test/html/”


<Directory “/home/test/html”>


    Options FollowSymLinks


    AllowOverride None


    Order allow,deny


    Allow from all


</Directory>


保存退出


service httpd restart


8)只让 192.168.1.0/24 这个网段可以浏览


参考答案:


修改以下的文件:


vi /etc/httpd/conf/httpd.conf


<Directory “/home/test/html”>


    Options FollowSymLinks


    AllowOverride None


    Order deny,allow


    Deny from all


    allow from 192.168.1.0/24


</Directory>


保存退出


service httpd restart


9)主机状态说明网页,只让 192.168.1.0/24和127.0.0.1可以浏览


参考答案:


修改以下的文件:


vi /etc/httpd/conf/httpd.conf


ExtendedStatus On


<Location /server-status>


    SetHandler server-status


    Order deny,allow


    Deny from all


    Allow from 192.168.1.0/24


    Allow from 127.0.0.1


</Location>


保存退出


service httpd restart


http://192.168.1.103/server-status


10.1).htaccess 与认证网页设定,认证目录为/web


10.2)认证的用户名test密码qiuming


参考答案:


修改以下的文件:


vi /etc/httpd/conf/httpd.conf


<Directory />


    Options FollowSymLinks


    AllowOverride AuthConfig


</Directory>


<Directory “/web”>


    Options Indexes FollowSymLinks


    AllowOverride AuthConfig


    Order allow,deny


    Allow from all


</Directory>


保存退出


修改以下的文件:


vi /web/.htaccess


AuthName     “Protect test by .htaccess”


Authtype     Basic


AuthUserFile /var/www/apache.passwd


require user test


保存退出


htpasswd -c /var/www/apache.passwd test


service httpd restart


11)建立 SSL (https) 网站,ssl访问的目录为/var/www/html


参考答案:


cd /etc/httpd/conf/ssl.key


mv server.key server.key.raw


openssl genrsa -out server.key 1024


cd /etc/httpd/conf/ssl.crt


mv server.crt server.crt.raw


openssl req -new -x509 -key ../ssl.key/server.key -out server.crt


修改以下的文件:


vi /etc/httpd/conf.d/ssl.conf


DocumentRoot “/var/www/html”


ServerName *:443


保存退出


service httpd restart

1)配置服务器的NFS挂载目录


1.1)新建/pub/Linux和/pub/solaris目录


1.2)配置nfs,使客户端可以挂载以上两个目录,开放写权限


参考答案:


mkdir -p /pub/Linux


mkdir -p /pub/solaris


vi /etc/exports


/pub/Linux *(rw,no_root_squash)


/pub/solaris *(rw,no_root_squash)


serivce portmap restart


service nfs restart


showmount -e 127.0.0.1


2.1)配置客户端的auto.master,指定挂载点为misc,指定misc的map文件为/etc/auto.misc


2.2)配置/etc/auto.misc文件,要求进入/misc/Linux目录,即挂载NFS的192.168.6.220:/pub/Linux


2.3)挂载后为只读,加入soft(当client的请求得不到回应,重试后返回错误),加入intr(当正在进行 NFS 请求时,允许用键盘中断)


2.4)配置/etc/auto.misc文件,要求进入/misc/solaris目录,即挂载NFS的192.168.6.220:/pub/solaris


2.5)挂载后为可读可写,加入soft和intr


2.6)重启autofs服务


参考答案:


vi /etc/auto.master


加入:


/misc   /etc/auto.misc –timeout=60


vi /etc/auto.misc


加入:


Linux           -ro,soft,intr           192.168.6.220:/pub/Linux


solaris         -rw,soft,intr           192.168.6.220:/pub/solaris


service autofs restart


3.1)测试,进入/misc/Linux,用mount查看挂载情况


3.2)进入/misc/solaris,用mount查看挂载情况


3.3)在NFS服务端,将/etc/hosts 拷到/pub/Linux目录,在客户端的/misc/Linux目录下查看文件


3.4)在客户端的/misc/solaris目录,新建一个目录test


3.5)在服务端查看/pub/solaris


参考答案:


客户端:


cd /misc/Linux


mount


cd /misc/solaris


mount


服务端:


cd /pub/Linux


cp /etc/hosts .


客户端:


cd /misc/Linux


cat hosts


cd /misc/solaris


mkdir test


服务端:


ls -l /pub/solaris

1.1)查看是否安装squid


1.2)安装squid-2.5,软体在es3的光盘第三张


1.3)查看安装后的squid


参考答案:


rpm -qa|grep squid


rpm -ivh squid-2.5.STABLE3-6.3E.16.i386.rpm


rpm -qa|grep squid


2)修改squid.conf配置文档


2.1)设定标准的代理端口为3128,查询封包的端口为3130


2.2)定义squid的cache目录为/var/spool/squid,而大小为1G,这个目录下可以有16个目录,而每個目录中又有256个目录


2.3)定义squid的cache_access_log为/var/log/squid/access.log


2.4)定义squid的cache_log为/var/log/squid/cache.log


2.5)定义squid的cache_store_log为/var/log/squid/store.log


2.6)定义squid的pid_filename为 /var/run/squid.pid


2.7)将 http_access deny all改为 http_access allow all


2.8)定义visible_hostname为citiz,并保存退出


参考答案:


vi /etc/squid/squid.conf


http_port 3128


icp_port  3130


cache_dir ufs /var/spool/squid 1000 16 256


cache_access_log /var/log/squid/access.log


cache_log /var/log/squid/cache.log


cache_store_log /var/log/squid/store.log


http_access allow all


visible_hostname citiz


3)建立 cache_dir


参考答案:


squid -z


4)启动squid服务


参考答案:


service squid start


5)查看3128端口号


参考答案:


netstat -tln | grep 3128


6.1)设定cache_mem为64M


6.2)设定cache_swap_low为90%,设定cache_swap_high 95


6.3)保持与内存资料有关(maximum_object_size_in_memory)的设定为8KB


6.4)重启squid服务


参考答案:


cache_mem 64 MB


cache_swap_low 90


cache_swap_high 95


maximum_object_size_in_memory 8 KB


service squid restart


7.1)配置客户端的WEB浏览器,指定PROXY的IP地址和端口号(3128)


7.2)观察cache_access_log日志


参考答案:


FIREFOX—-编辑—-首选项—-高级—-网络—-设置—-手动配置代理—-HTTP代理—IP地址:X.X.X.X,端口为3128


tail -f /var/log/squid/access.log


8.1)更改access权限,注释掉acl all src 0.0.0.0/0.0.0.0


8.2)增加192.168.6.0网段的定义


8.3)配置192.168.6.0网段可以通过proxy访问web服务


8.4)重启squid服务


8.5)测试是否还可以用WEB浏览器访问web服务,修改IP为非192.168.6.0的网段,再测试是否能访问WEB服务


参考答案:


vi /etc/squid/squid.conf


注释掉:


#acl all src 0.0.0.0/0.0.0.0


增加:


acl all src 192.168.6.0/24


查看或修改:


http_access allow all


保存退出


service squid restart

1).安装mysql


参考答案:


rpm -ivh MySQL-client-community-5.0.45-0.rhel3.i386.rpm


rpm -ivh MySQL-server-community-5.0.45-0.rhel3.i386.rpm


2.1).停止mysql数据库


2.2).启动mysql


参考答案:


mysqladmin shutdown


mysqld_safe &


3.1).显示出所有的数据库


3.2).显示数据库test里表的信息


3.3).新建数据库menagerie


3.4).新建menagerie数据库,新建表(pet表),字段为”名字、主人、种类,性别、出生和死亡日期”


3.5).显示menagerie数据库表的信息,并查看pet表的表结构


参考答案:


show databases;


use test;


show tables;


create database menagerie;


use menagerie;


CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),


species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);


show tables;


describe pet;


4.1).将以下的信息导入到pet表中,注意各记录之间用回车符分隔,各字段值用空格键分隔


Fluffy Harold cat f 1993-02-04


Claws Gwen cat m 1994-03-17


Buffy Harold dog f 1989-05-13


Fang Benny dog m 1990-08-27


Bowser Diane dog m 1998-08-30 1995-07-29


Chirpy Gwen bird f 1998-09-11


Whistler Gwen bird m 1997-12-09


Slim Benny snake m 1996-04-29


参考答案:


load data local infile “/tmp/pet.txt” into table pet fields terminated by ‘ ‘;


5.1).查看mysql的环境变量,及最大连接数


5.2).编辑/usr/bin/safe_mysqld,找到mysqld启动的那两行,在后面加上参数 :-O max_connections=1500


5.3).重启mysql服务


参考答案:


mysqladmin variables


vi /usr/bin/safe_mysqld


修改为以下的内容:


then $NOHUP_NICENESS $ledir/$MYSQLD


$defaults –basedir=$MY_BASEDIR_VERSION


–datadir=$DATADIR $USER_OPTION


–pid-file=$pid_file


–skip-external-locking


-O max_connections=1500


>> $err_log 2>&1 else


“$NOHUP_NICENESS $ledir/$MYSQLD


$defaults –basedir=$MY_BASEDIR_VERSION


–datadir=$DATADIR $USER_OPTION


–pid-file=$pid_file


–skip-external-locking $args


-O max_connections=1500 >>


$err_log 2>&1″


mysqladmin shutdown


mysqld_safe &


mysqladmin variables|grep 1500


6.1).修改MYSQL的客户端/服务端的字符编码为utf8


6.2).拷贝/usr/share/mysql/my-large.cnf到/etc/,改名为my.cnf


6.3).在client和mysald段中加入default-character-set = utf8


6.4).重启mysqld服务


6.5).登入mysql,查看环境变量中的字符编码


6.6).创建数据库study,指定utf8字符编码


6.7).进入study数据库,查询数据库编码


参考答案:


cp /usr/share/mysql/my-large.cnf /etc/my.cnf


编辑my.cnf,加入utf8编码


vi /etc/my.cnf


[client]


default-character-set = utf8


[mysqld]


default-character-set = utf8


mysqladmin shutdown


mysqld_safe &


mysql


show variables like ‘character_set_%’;


show variables like ‘collation_%’;


create database study character set utf8;


use study


status


7.1).查看MYSQL系统的用户


7.2).新建一个用户pmg51,密码为pmg51,有所有数据库操作权限 ,所有IP登录的权限,并且有grant的权限


7.3).执行一个FLUSH PRIVILEGES语句告诉服务器再装载授权表


7.4).再查看MYSQL系统的用户


7.5).用pmg51登录系统,指定登入的数据库为menagerie


7.6).显示当前pmg51用户连接的数据库


参考答案:


mysql -u root mysql -p


select host,user,password from user;


GRANT ALL PRIVILEGES ON *.* TO ‘pmg51’@’localhost’ IDENTIFIED BY ‘imeg’ WITH GRANT OPTION;


GRANT ALL PRIVILEGES ON *.* TO ‘pmg51’@’%’ IDENTIFIED BY ‘pmg51’ WITH GRANT OPTION;


FLUSH PRIVILEGES;


select host,user,password from user;


mysql -u pmg51 menagerie -p


select database();


8.1).备份menagerie数据库到/tmp/menagerie.sql文件,指定utf8编码


8.2).备份menagerie数据库的pet表到/tmp/pet.sql文件,指定utf8编码


8.3).备份menagerie数据库中的pet表sex字段为f的数据到/tmp/sex.sql文件,同样指定utf8编码


8.4).在mysql命令指示下用outfile的方式导出pet表,限定birth字段的内容为大于1995-01-01的宠物


8.5).导出menagerie数据库的pet表结构到/tmp/struct.txt文件


参考答案:


mysqldump -u pmg51 -p –default-character-set=utf8 menagerie>/tmp/menagerie.sql


mysqldump -u pmg51 -p –default-character-set=utf8 menagerie pet >/tmp/pet.sql


mysqldump -u pmg51 -p –where “sex=’f'” menagerie pet –default-character-set=utf8>/tmp/sex.sql


select * into outfile ‘/tmp/outfile.txt’ FIELDS TERMINATED BY ‘,’ from pet where birth>=’1995-01-01′;


mysqldump -u pmg51 -p -d –add-drop-table menagerie >/tmp/struct.sql


9.1).删除pet表


9.2).导入/tmp/pet.sql数据到pet表


参考答案:


drop table pet;


source /tmp/pet.sql


10.1).在MYSQL环境下清除屏幕


10.2).显示/tmp/目录下的所有文件,及详细内容


参考答案:


system clear


system ls /tmp/ -l


11.1).查询MYSQL的物理数据文件路径


参考答案:


mysqladmin variables|grep datadir


12.1).显示mysql下数字为:126 127 132 134 135 136 141 144 145的错误代码


12.2).进入/var/lib/mysql/menagerie目录,组合pet表的碎片记录并且消除由于删除或更新记录而浪费的空间


参考答案:


perror 126 127 132 134 135 136 141 144 145


cd /var/lib/mysql/menagerie


myisamchk -r pet


13.1).获得关于pet表的描述或统计


13.2).继续前面的操作,加上-v告诉它以冗长模式运行


13.3).继续前面的操作,显示表的最重要的信息


13.4).继续前面的操作,显示表现在的操作信息


参考答案:


cd /var/lib/mysql/menagerie


myisamchk -d pet


myisamchk -d -v pet


myisamchk -eis pet


myisamchk -eiv pet


14).用mysqladmin的ping选项检测mysqld的状态


参考答案:


mysqladmin ping

赞(0) 打赏
转载请注明出处:服务器评测 » Linux操作系统基础进阶练习题
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏