练习题

    操作部分




一、网络配置及环境准备,要求如下:(10分)

1、IP地址(静态):10.1.1.x;网关:10.1.1.254;DNS:10.1.1.254  

2、增加一条到192.168.1.0/24网段的路由,并可以ping通192.168.1.1 

3、拒绝所有人ssh你的服务器,除了10.1.1.25410.1.1.1 

4、配置好本地yum源   


二、添加5个用户,用户harry,natasha,sarsh,要求harry,natasha用户的附加组为admin组,sarah用户的登陆shell为非交互式shell;用户test1(UID为2045,并属于组group1)、test2(UID为2046,并属于组group2),密码均为redhat. (5分)


三、新建目录/shared/sysadmin/属于admin组,要求如下:(15分)
1、该目录除了拥有者外其他人没有任何权限
2、harry用户在该目录下创建dir1目录,natasha用户在harry用户新建的dir1目录里创建脚本文件test.sh,内容为:
#!/bin/bash
hostname
echo "My name is Hanmeimei"
daaa
3、该目录下所有的文件只能root和其创建者可以删除,其他人不能删除
4、test1用户执行test.sh文件,并且标准输出和标准错误重定向到文件/tmp/test.log中
5、test2用户对test.sh文件没有任何权限


四、 配置计划任务(5分)

1、让admin用户每天的14:23分,执行test.sh脚本 ,并邮件给admin。

2、系统在周135的上午四点零二分去10.1.1.254上同步系统时间并邮件root


五、将系统中所属用户和属组为sarsh的文件全部找出来,拷贝到/redhat/rhce目录中保存(5分)


六、创建一个100M的交换分区,并开机自动生效,但不影响原有的swap分区。(2分)


七、创建一个逻辑卷lv01,大小为100个PE,格式化为ext3,使用autofs自动挂载在/u01目录下,空闲1分钟自动卸载,属于名vg01卷组,PEsize为8M。(5分)


八、由于业务需要,现需要将/u01目录扩大1G空间。(3分)


九、将ftp服务的日志保存在/var/log/ftp.log,并将该日志文件和web服务的日志按照如下要求进行轮转(10分)

1、保留5天的日志文件

2、每天轮询一次

3、以时间命名

4、创建与原日志同名的新文件



十、搭建FTP服务器要求如下(15分)

1、匿名用户可以下载、上传文件到/ftp/data目录。

2、本地用户只允许test1用户切换目录,并且不能登录操作系统;其他用户不允许切换。拒绝本地用户test2访问ftp,但是test2可以登录操作系统。

3、拒绝10.1.1.0/24网段的所有人访问你的ftp除了10.1.1.254

4、当访问192.168.1.x时,提供匿名下载功能,限速500kbps;当访问192.168.2.x时;提供本地用户zhangsan/123上传下载文件,并且只允许zhangsan访问ftp服务。


十一、配置samba要求如下(10分) 

1、工作组名为RHCE 

2、认证类型为user 

3、共享/samba/storage 目录,共享名称为share 

4、该共享目录允许user1和user2用户有写权限其他用户均为只读,如果需要密码均为redhat




十二、搭建web服务器要求如下(15分)

1、访问http://192.168.1.x时能访问到你本地操作系统的/tmp目录

2、访问http://www.zhangsan.com时访问到/web/virtual目录下的首页文件,从ftp下载

3、只允许admin组里的成员通过用户名密码访问/web/virtal目录的首页文件

4、web服务拒绝10.1.1.0/24网段除了10.1.1.25410.1.1.1主机



十三、编写shell脚本批量创建user1~user30,30个用户。(20分)

要求如下:

1、所有用户的家都在/rhome下(如user1用户的家在/rhome/user1下)

2、所有用户密码均为redhat

3、user1~user15的 shell为/bin/bash;user16~user30的shell为/sbin/nologin

用户的id为1001~1030(即user1的uid为1001,以此类推)



十四、程序命令使用考核(20 分)

说明:user.list和passwd.list文件使用env_cre_userlist.sh脚本创建,在ftp下载。

    1、从文件 user.list 中取出已给定的用户名和用户组,将这些用户和组按规则添加到系统中,所有用户的密码已在passwd.list文件中给定,如果为空则密码为“uplooking”。

    2、user.list 文件是由“空格”分开的两部分组成,第一部分为用户名,第二部分是由“逗号”分开的多列,为用户的候选组(附加组)。如果列表中的组不存在于系统中,请建立它。

    3、user.list 类似

zhangsan adminuser,dbuser,updatauser

lisi dbuser,updatauser

wanger updatauser,wheel


十五、写一个脚本checkipadd.sh,判断所输入的参数是否为正确的IP地址,如果是就输出"This is ip address";如果不是就输出"This isn't ip address" (10分)
测试如下输入值:
192.168.0.199
95.0.0.1
24.234.2345.1
192.a1.123.0

1a2.1.1.0

01.1.1.1
123

 #!/bin/bash
checkip()
{
 read -p "input you ip:" ip
 echo $ip|grep "^[0-9]\{1,3\}\.\([0-9]\{1,3\}\.\)\{2\}[0-9]\{1,3\}$" > /dev/null 
 if [ $? -ne 0 ];then
   echo "the ip is error"
   exit
 fi
 a=`echo $ip|awk -F. '{print $1}'`
 b=`echo $ip|awk -F. '{print $2}'`
 c=`echo $ip|awk -F. '{print $3}'`
 d=`echo $ip|awk -F. '{print $4}'`
 for i in $a
   do
    if [ "$i" -le 0 ] || [ "$i" -ge 255 ];then
       echo "the ip is error" 
       exit;
    fi
   done
  echo "the ip is normal"
}



答案

一、网络配置及环境准备,要求如下:(10分)1、IP地址(静态):10.1.1.x;网关:10.1.1.254;DNS:10.1.1.254

#cd /etc/sysconfig/network-scripts/
#vim ifcfg-eth0 
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
IPADDR=10.1.1.1
NETMASK=255.255.255.0
GATEWAY=10.1.1.254
DNS=10.1.1.254
  2、增加一条到192.168.1.0/24网段的路由,并可以ping通192.168.1.1 

# route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0
或者
# route add -net 192.168.1.0/24 dev eth0
# ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.846 ms
3、拒绝所有人ssh你的服务器,除了10.1.1.25410.1.1.1 1> vim /etc/hosts.deny
sshd:ALL EXCPET 10.1.1.254 10.1.1.1
或者
2>托管给xinetd服务管理
vim /etc/xinetd.d/ssh
service ssh
{
  disable = no
  server_arg = -i
  ....
  only_from = 10.1.1.254 10.1.1.1

}



4、配置好本地yum源   

mkdir /yum
拷贝ISO文件至/yum目录
# cd /etc/yum.repos.d/
#vim vim my_yum.repo
[myfirstyum]
name=my_test_yum
baseurl=file:///yum
enabled=1
gpgchek=0

# yum clean all
# yum makecache
....
Metadata Cache Created
二、添加5个用户,用户harry,natasha,sarsh,要求harry,natasha用户的附加组为admin组,sarsh用户的登陆shell为非交互式shell;用户test1(UID为2045,并属于

组group1)、test2(UID为2046,并属于组group2),密码均为redhat. (5分)
groupadd admin
groupadd group1
groupadd group2

useradd -G admin harry
useradd -G admin natasha
useradd -s /sbin/nologin sarsh
useradd -u 2045 -G group1 test1
useradd -u 2046 -G group2 test2

echo redhat|passwd --stdin harry
echo redhat|passwd --stdin natasha
echo redhat|passwd --stdin sarsh
echo redhat|passwd --stdin test1
echo redhat|passwd --stdin test2
三、新建目录/shared/sysadmin/属于admin组,要求如下:(15分)
mkdir /shared/sysadmin -p
chown :admin /shared/sysadmin

1、该目录除了拥有者外其他人没有任何权限
chmod 700 /shared/sysadmin

2、harry用户在该目录下创建dir1目录,natasha用户在harry用户新建的dir1目录里创建脚本文件test.sh,内容为:
#!/bin/bash
hostname
echo "My name is Hanmeimei"
daaa

chmod 770 /shared/sysadmin
# su - harry
$cd /shared/sysadmin
$ mkdir dir1
$ cd dir1
[harry@vm1 dir1]$ pwd
/shared/sysadmin/dir1
$ exit

cd /shared/sysadmin
chmod o+w dir1
su - natasha
$ cd /shared/sysadmin/dir1/
$ vim test.sh
$ ls
test.sh
$ cat test.sh
#!/bin/bash
hostname
echo "My name is Hanmeimei"
daaa
$exit

3、该目录下所有的文件只能root和其创建者可以删除,其他人不能删除
chmod 1777 /shared/sysadmin/dir1

4、test1用户执行test.sh文件,并且标准输出和标准错误重定向到文件/tmp/test.log中
chmod u+x test.sh
# setfacl -m u:test1:rwx test.sh
#chmod o+rx ./sysadmin
#chmod o+x  ./dir1
#su - test1
$ cd /shared/sysadmin/dir1
$ ./test.sh &>/tmp/test.log
$ cat /tmp/test.log
vm1.uplook.com
My name is Hanmeimei
./test.sh: line 4: daaa: command not found

5、test2用户对test.sh文件没有任何权限
chmod o-r test.sh
# ll
total 8
-rwxrwx---+ 1 natasha natasha 54 May  9 22:01 test.sh

四、 配置计划任务(5分)1、让admin用户每天的14:23分,执行test.sh脚本 ,并邮件给admin。
useradd -g xxx admin
su - admin
23 14 * * * /shared/sysadmin/dir1/test.sh >/dev/null 2>&1 |mail admin

vim /etc/cron.d/test
23 14 * * * admin /shared/sysadmin/dir1/test.sh >/dev/null 2>&1 |mail admin
2、系统在周135的上午四点零二分去10.1.1.254上同步系统时间并邮件root
crontab -e

2 4 * * 1,3,5 rdate -s 10.1.1.254|mail root

2 4 * * 1,3,5 ntpdate 10.1.1.254|mail root
五、将系统中所属用户和属组为sarsh的文件全部找出来,拷贝到/redhat/rhce目录中保存(5分)
mkdir -p /redhat/rhce
find / -user sarsh -group sarsh -type f  -exec cp /redhat/rhce/ {} \;

六、创建一个100M的交换分区,并开机自动生效,但不影响原有的swap分区。(2分)
fdisk 
dd if=/dev/zero of=/swapfile bs=1M count=100
mkswap /swapfile
swapon /swapfile
vim /etc/fstab
/swapfile swap swap defaults 0 0

七、创建一个逻辑卷lv01,大小为100个PE,格式化为ext3,使用autofs自动挂载在/u01目录下,空闲1分钟自动卸载,属于名vg01卷组,PEsize为8M。(5分)
pvcreate /dev/sdb1 /dev/sdb2
vgcreate -s 8M vg01 /dev/sdb1
lvcreate -n lv01  -L 100  vg01 
mkfs.ext3  /dev/vg01/lv01
mkdir /u01
vim autofs.master
/- /etc/auto.test --timeout 60

vim /etc/auto.test
/u01  -fstype=ext3 :/dev/vg01/lv01

service autofs restart




八、由于业务需要,现需要将/u01目录扩大1G空间。(3分)
vgs
情况1:卷组空间不够
vgextend vg01 /dev/sdb2
lvextend -L +1G /dev/vg01/lv01
resize2fs /dev/vg01/lv01

情况2:卷组空间足够
lvextend -L +1G /dev/vg01/lv01
resize2fs /dev/vg01/lv01


九、将ftp服务的日志保存在/var/log/ftp.log,并将该日志文件和web服务的日志按照如下要求进行轮转(10分)1、保留5天的日志文件2、每天轮询一次3、以时间命

名4、创建与原日志同名的新文件
参考答案:
步骤:
1、安装vsftpd软件,启动服务
2、通过修改配置文件来指定日志文件的路径
xferlog_enable=YES
#xferlog_std_format=YES
#dual_log_enable=YES
vsftpd_log_file=/var/log/ftp.log
#xferlog_file

3、日志轮转
# cat vsftpd 
/var/log/ftp.log {
    # ftpd doesn't handle SIGHUP properly
    daily
    rotate 5
    create
    nocompress
    missingok
}

/var/log/xferlog {
    # ftpd doesn't handle SIGHUP properly
    daily
    rotate 5
    create
    nocompress
    missingok
}

/var/log/httpd/*log {
    daily
    rotate 5
    create
    missingok
    notifempty
    sharedscripts
    delaycompress
    postrotate
        /sbin/service httpd reload > /dev/null 2>/dev/null || true
    endscript
}
十、搭建FTP服务器要求如下(15分)1、匿名用户可以下载、上传文件到/ftp/data目录。  3
vim /etc/vsftpd/vsftpd.conf

anon_root=/ftp/data
anon_other_write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES

2、本地用户只允许test1用户切换目录,并且不能登录操作系统;其他用户不允许切换。拒绝本地用户test2访问ftp,但是test2可以登录操作系统。  4

usermod -s /sbin/nologin test1

vim vsftpd.conf
chroot_list_enable=YES
chroot_local_user=YES
chroot_list_file=/etc/vsftpd/chroot_list

echo test1 >> /etc/vsftpd/chroot_list

echo test2 >> ftpusers
3、拒绝10.1.1.0/24网段的所有人访问你的ftp除了10.1.1.254  3
vim /etc/hosts.deny
vsftpd:10.1.1.0/255.255.255.0 EXCPET 10.1.1.254
4、当访问192.168.1.x时,提供匿名下载功能,限速500kbps;当访问192.168.2.x时;提供本地用户zhangsan/123上传下载文件,并且只允许zhangsan访问ftp服务。
思路:
1、配置多个ip
ifconfig eth0:1 192.168.1.1/24 dev eth0
ifconfig eth0:2 10.1.1.1/24 dev eth0
2、创建2个不同的配置文件
vim vsftpd1.conf
...
anon_max_rate=500000
listen_address=10.1.1.1

vim vsftpd2.conf
...
listen_address=192.168.1.1
anonymous_enable=NO
userlist_deny=NO

useradd zhangsan
echo zhangsan >>/etc/vsftpd/user_list
3、测试验证
service vsftpd restart

十一、配置samba要求如下(10分) 1、工作组名为RHCE 
vim smb.conf

workgroup = RHCE
2、认证类型为user 

3、共享/samba/storage 目录,共享名称为share 

[share]
    comment =public user share
    path = /samba/storage
    public = yes|no
    write list = user1,user2
        read only = yes



4、该共享目录允许user1和user2用户有写权限其他用户均为只读,如果需要密码均为redhat

smbpasswd -a user1
smbpasswd -a user2十二、搭建web服务器要求如下(15分)1、访问http://192.168.1.x时能访问到你本地操作系统的/tmp目录
ln -s /tmp /var/www/html/tmp
vim /etc/httpd/conf/httpd.conf
Alias /tmp "/tmp"
<Directory /tmp>
xxx
</Directory>2、访问http://www.zhangsan.com时访问到/web/virtual目录下的首页文件,从ftp下载
思路:
1>搭建DNS服务器
2>定义基于域名的虚拟主机
NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /web/virtual
    ServerName www.zhangsan.com
    ErrorLog logs/dummy-host.example.com-error_log
    CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>

mkdir /web/virtual
lftp 10.1.1.254
cd notes/ule_exam/
lcd /web/virtual
get index.html

service httpd restart
3、只允许admin组里的成员通过用户名密码访问/web/virtal目录的首页文件
<Directory /web/virtal>
    Options FollowSymLinks Indexes
    AllowOverride None
    AuthType Basic
    AuthName "input your username&password:"
    AuthBasicProvider file
    AuthGroupFile /etc/httpd/conf/groups
    AuthUserFile /etc/httpd/conf/htpassword
    Require group admin
</Directory>

vim /etc/httpd/conf/groups
admin:user1 user2
htpasswd -cmb /etc/httpd/conf/htpassword user1 123
htpasswd -mb /etc/httpd/conf/htpassword user2 123
4、web服务拒绝10.1.1.0/24网段除了10.1.1.25410.1.1.1主机
Order deny,allow
Deny from 10.1.1.0/24
Allow from 10.1.1.254 10.1.1.1

vim /etc/hosts.deny
httpd:10.1.1.0/255.255.255.0 EXCPET 10.1.1.254 10.1.1.1

十三、编写shell脚本批量创建user1~user30,30个用户。(20分)要求如下:1、所有用户的家都在/rhome下(如user1用户的家在/rhome/user1下)2、所有用户密码均

为redhat3、user1~user15的 shell为/bin/bash;user16~user30的shell为/sbin/nologin用户的id为1001~1030(即user1的uid为1001,以此类推)
#!/bin/bash
dir=/rhome
[! -d $dir ] && mkdir /rhome
for (i=1,i++,i<=30)
 do
 u=$[1000+$i]
 if [ $i >15 ] ;then 
     useradd -s /sbin/nologin -u $u -d $dir/user$i user$i;
   else 
    useradd -u $u -d $dir/user$i user$i;   
  fi
echo redhat|passwd --stdin user$i
done

十四、程序命令使用考核(20 分)说明:user.list和passwd.list文件使用env_cre_userlist.sh脚本创建,在ftp下载。    1、从文件 user.list 中取出已给定的

用户名和用户组,将这些用户和组按规则添加到系统中,所有用户的密码已在passwd.list文件中给定,如果为空则密码为“uplooking”。 2、user.list 文件是

由“空格”分开的两部分组成,第一部分为用户名,第二部分是由“逗号”分开的多列,为用户的候选组(附加组)。如果列表中的组不存在于系统中,请建立它。    3、

user.list 类似zhangsan adminuser,dbuser,updatauserlisi dbuser,updatauserwanger updatauser,wheel
vim user.sh
#!/bin/bash
for i in `cat user.list |cut -d' ' -f2|sed 's/,/\n/g'|sort -u`
 do
   groupadd $i
 done

while read u_user u_group u_dir
do
  u_home=$(dirname $u_dir)
  mkdir -p u_home
  useradd -G $u_group -d $u_home/$u_user $u_user
done < ./user.list

while read u_user u_pass
do
 if [ -z $pass ];then
   echo uplooking |passwd --stdin $u_user
 else
   echo $u_pass |passwd --stdin $u_user
fi
done < ./passwd.list

©️2020 CSDN 皮肤主题: 技术工厂 设计师:CSDN官方博客 返回首页