LINUX系统管理与自动化运维(参考答案)

1、Linux简介与环境搭建

一、填空题

1、Linus Torvalds(林纳斯·托瓦兹)

2、多任务  多用户

3、服务器领域  桌面应用领域  嵌入式应用领域

4、桥接模式  仅主机模式  NAT模式

5、ping

6、SSH(Secure Shell,安全Shell协议)  SFTP(Secure File Transfer Protocol,安全文件传送协议)

7、BIOS加电自检  MBR系统引导  加载内核

二、判断题

1、√   2、√   3、×   4、√   5、×   6、√   7、√   8、×

解析:

1、略

2、略

3、VMware提供的虚拟网络功能有3种网络模式,分别为:桥接模式、NAT(网络地址转换)模式和仅主机模式。

4、略

5、SSH即安全Shell协议,是在远程访问Linux系统时使用的协议;SFTP即安全文件传送协议,用于远程文件管理。

6、略

7、略

8、Linux系统与Windows系统不同,只有一棵文件树,且根目录“/”是唯一的根结点。

三、选择题

1、C    2、D   3、A    4、B   5、A

解析:

1、Linux操作系统是一个多用户、多线程、多CPU的分时复用系统。

2、略

3、VMware提供的虚拟网络功能有3种网络模式,分别为:桥接模式、NAT(网络地址转换)模式和仅主机模式。

4、XShell是基于SSH服务的远程访问工具,而非服务。

5、略

四、简答题

1、Linux是一个多用户、多任务、多CPU的操作系统,它安全、稳定,兼容POSIX1.0标准,具有强大的网络功能,且可支持大量的硬件平台。

2、ifconfig命令用于查看系统中的网卡,也可与选项-a一起使用,表示查看所有的网卡。ping命令用于测试网络连通状态,其常用格式为“ping IP地址”。

3、Linux系统启动过程中,BIOS首先获取系统启动控制权,在BIOS读取MBR中的引导加载程序后,系统启动控制权由BIOS移交到MBR,之后MBR中的引导加载程序Boot Loader获取操作系统对应的内核,将内核加载到内存中,systemed进程启动,引导过程结束。

2、基本命令与开发工具

一、填空题

1、长选项  短选项

2、ls  cd  pwd  touch  mkdir  cp  mv  rm  rmdir(注:写出5个即可)

3、命令模式  插入模式

4、mkfs –t ext2 /dev/sda5 或 mkfs.ext2 /dev/sda5

5、就绪态  运行态  睡眠态

6、RPM  YUM  rpm –ivh telent  yum install telnet

二、判断题

1、√   2、×   3、×   4、√   5、√

解析:

1、略

2、Vi编辑器的插入模式和底行模式不能直接切换。

3、chmod命令用于更改文件或目录的权限,chown用于更改文件或目录的所有者,chgrp用于更改文件或目录的所属组。

4、略。

5、使用“gzip -s”命令或“gunzip”命令,皆可解压.gz格式的压缩包。

三、选择题

1、C    2、D   3、D    4、A   5、D   6、B

解析:

1、选项A、B、D中的命令都用于打印当前目录中文件的相关信息,但不包括隐藏文件;只有选项C中的命令“ls -a”会打印当前路径下所有文件的文件名。

2、更改文件权限的命令为“chmod”,排除选项A;使用选项B中格式为文件所属组提升权限时,第二个数字应为5或7;选项C中为其它人添加了执行文件的权限;选项D为所有人添加了执行文件的权限,包括文件所属组用户,因此选项D正确。

3、选项A中用vi命令打开或创建一个文件newfile,若该文件不存在,该文件将会被创建;选项B中touch命令用于更改文件时间戳,若文件newfile不存在,touch命令将会创建新文件newfile;选项C中的cp命令用于复制一个文件到/itheima路径下,并命名为newfile,也会有新文件产生;选项D中的cd命令只用于切换目录。

4、Vi编辑器的工作模式有3种,分别为命令模式、插入模式和底行模式。

5、GCC编译器的编译流程依次为:预处理、编译、汇编、链接。

6、Vi编辑器的插入模式和底行模式不能直接切换。

四、简答题

1、Vi编辑器的工作模式分为命令模式、插入模式和底行模式,其中命令模式可执行光标移动、删除、复制、粘贴等操作;插入模式可实现文本编辑操作;底行模式可实现退出、查找等功能。Vi编辑器各模式之间的转换方式如图所示。

LINUX系统管理与自动化运维(参考答案)_第1张图片

2、systemctl命令的功能有:开启服务、关闭服务、设置服务开机自启、禁止服务开机自启、查看服务状态、重启服务、重新加载服务的配置文件。以httpd服务为例,具体命令如下:

  1. 开启服务:systemctl start httpd
  2. 关闭服务:systemctl stop httpd
  3. 设置服务开机自启:systemctl enable httpd
  4. 禁止服务开机自启:systemctl disable httpd
  5. 查看服务状态:systemctl status httpd
  6. 重启服务:systemctl restart httpd
  7. 重新加载服务:systemctl reload httpd

3、shell

一、填空题

1、/bin/bash

2、PATH

3、||

4、^

5、egrep

6、BEGIN   END

7、break

8、# 

9、!  &&  ||

10、export

二、判断题

1、×   2、×   3、×   4、×   5、√   6、√   7、√   8、√

解析:

1、略

2、单引号可以屏蔽所有功能,双引号不可以

3、略

4、可以搜索,使用转义字符\

5、略

6、略

7、略

8、略

三、单选题

1、A   2、D   3、C   4、A   5、C   6、D   7、B

解析:

1、略

2、略

3、略

4、“*”符号表示匹配0个或多个字符

5、略

6、略

7、略

四、简答题

1、请简述一下你对Shell的理解。

答:Shell是一种具备特殊功能的程序,处于用户与内核之间,提供用户与内核进行交互的接口。它可接收用户输入的命令,将命令送入内核中执行。内核接收到用户的命令后调度硬件资源完成操作,再将结果返回给用户。Shell在帮助用户与内核完成交互的过程中还提供了解释功能:传递命令时,Shell将命令解释为二进制形式;返回结果时,Shell将结果解释为字符形式,因此Shell又被称为命令解释器。Shell拥有内建的命令集,第二章中介绍的多种命令,实际上都是Shell命令集中的命令。

此外,Shell还是一个解释型程序设计语言,使用Shell语言编写的程序称为Shell脚本。Shell脚本中支持定义变量、数组,可使用一些应用在高级语言中的控制结构(如选择结构、循环结构等),也支持Shell命令。

2、请简要描述一下Shell中几种引号的作用。

答:Shell中引号有三种:单引号('')、双引号("")与反引号(``)。

   (1)单引号:单引号可以将它中间的字符还原为字面意义,实现屏蔽Shell元字符的功能。引号里的字符串就是一个单纯的字符串,没有任何含义。在使用单引号时,单引号必须要成对出现,不能在两个单引号之间单独插入一个单引号。

   (2)双引号:双引号也具有屏蔽作用,但它不会屏蔽$符号、\符号和``符号。双引号也可以屏蔽单引号的作用。

   (3)反引号:反引号可以进行命令替换,它可以与双引号结合使用,但不可以与单引号结合使用,因为单引号会屏蔽掉反引号的作用。

3、请简要描述一下什么是正则表达式。

答:正则表达式是预先定义好的一组规则,这组规则也称为模式,这组规则可以对文本进行过滤。正则表达式之所以具有文本过滤功能,是因为它定义了一系列的元字符,元字符与其他字符组合起来形成一定的规则,只有符合规则的文本才能保留下来,而不符合规则的文本会被过滤。

正则表达式也可理解为描述字符串结构模式的形式化表达“方法”或“思想”,它与一些特定工具搭配使用,可实现包括添加、删除、分离、插入、选择等各种文本分析功能。

4、请简述awk中BEGIN模式与END模式的作用。

答:BEGIN放置在读取数据之前执行,标识数据读取即将开始。它的执行是在读取数据之前。BEGIN模式对应的操作仅仅被执行一次, awk读取数据之后,BEGINE模式便不再有效。用户可以将与数据文件无关,且在整个生命周期中只需要执行一次的代码放在BEGING模式对应的操作中,如自定义分隔符、初始化变量等。

END放置在读取数据结束之后执行,标识数据读取已经完毕。它在awk读取完所有的数据后执行,该模式所对应的操作也只被执行一次。因此,一般情况下,用户可以将许多善后工作放在END模式对应的操作中。

五、编程题

1、编写一个Shell脚本,计算1~100的和。

答:

#!/bin/bash

sum=0

for num in {1..100}

do

let sum+=num

done

echo sum=$sum

2、编写一个Shell脚本,查询/etc/目录下以.conf结尾的文件。

#!/bin/bash

ls /etc | grep conf$

4、内核编译与管理

一、填空题

1、C

2、单内核   微内核

3、稳定树   开发树

4、longterm

5、lsmod 

6、内核符号表

7、/etc/sysctl.conf

二、判断题

1、√   2、×   3、×   4、√   5、×   6、√   7、√   8、×   9、√

解析:

1、略

2、内核版本并不是越高越好

3、略

4、略

5、略

6、略

7、略

8、一般使用make mrproper,还可以使用make clean

9、略

三、选择题

1、D   2、B   3、C   4、C   5、D   6、C   7、A

解析:

1、内核开发一般在开发树中进行

2、内核模块可以相互依赖

3、略

4、insmod命令加载模块时必须带模块路径与后缀名,但modprobe可以不带

5、略

6、略

7、make mrprobe命令删除备份文件

四、简答题

1、请简述管理内核版本的双树系统。

答:Linux采用双树系统管理内核版本。所谓双树系统包括稳定树(stable tree)和开发树(unstable tree),即不稳定树。一些新特性、实验性改进等都在属于开发树的内核中进行,如果在开发树中所做的改进也可以应用于稳定树,那么在开发树中完成测试之后,就在稳定树中进行相同的改进。一旦开发树经过了足够的发展,开发树就会成为稳定树,它们的不同会体现在内核的版本号中。

在双树系统中,内核版本号的命令格式为A.B.C。数字A是内核主版本号,版本号只有在代码和内核的概念有重大改变的时候才会改变;数字B是内核次版本号,主版本号根据传统的“奇-偶”系统版本号来分配:奇数为开发版本,偶数为稳定版本;数字C是内核修订版本号,修订版本号表示内核修改的次数,它在内核增加安全补丁、修复Bug、实现新的特性或驱动时都会改变。

2、请简述modprobe命令与insmod命令在加载内核时的区别。

答:modprobe命令在加载内核时,直接使用模块名字即可,不需要带扩展名.ko,而且也不需要指定模块的路径,但insmod命令在加载模块时需要带上模块的绝对路径,并且一定要有后缀名.ko。

5、网络服务

一、填空题

1、应用层  传输层  网络层  数据链路层 

2、IP地址  端口号

3、作用域

4、域名解析

5、IMAP  POP3  IMAP  POP3

二、判断题

1、√   2、√   3、×   4、×   5、√   

解析:

1、略

2、略

3、因为登入目录写权限不能与chroot限制并存,直接补全登入目录的权限会导致用户无法连接服务器,所以以在登录目录下创建目录的方式实现上传功能,具体操作为:在登入目录下创建目录,更改其所属组和所有者,将其权限设置为777,在进行匿名 上传操作时将文件传到该目录下。

4、在定义了DHCP服务的作用域,并设置排除范围后,剩余的可用IP地址集合称为地址池。

5、略

三、选择题

1、C    2、A   3、B    4、C   5、A

解析:

1、IP地址每个字段的取值范围为0~255,C选项的第二个字段取值不在此范围内。

2、因为主机号从0开始,但第一个编号“0”与网络号一起表示网络号,最后一个编号“255”与网络号一起作为广播地址存在,因此可用地址数量为2n-2。

3、略

4、主域名服务器中存储的记录是所有其他类型服务器的权威信息源,辅助域名服务器中的记录从主域名服务器复制而来,所有主域名服务器和辅助域名服务器中的记录是权威的。缓存域名服务器和转发域名服务器中的记录是间接信息,所以这两类服务器中的记录不是权威的。

5、略

四、简答题

1、FTP的工作模式有两种,分别是主动模式和被动模式。工作在主动模式下时,客户端首先发起连接请求,与服务器的21号端口建立连接,若客户端需要传输数据,则通过该连接向服务器发送信息,告知服务器客户端中接收数据的端口,之后服务器通过20端口连接客户端指定的端口并传送数据。工作在被动模式下时,客户端首先发起连接请求,与服务器的21号端口建立控制连接,之后仍由客户端发送信息,请求与服务器建立数据连接,服务器接收到请求后,随机打开一个高端端口,并告知客户端打开的端口号,客户端再与服务器的这个端口建立数据连接,并发送数据。

2、SMTP主要特点之一为能跨越网络传输邮件,即实现“SMTP邮件中继”。SMTP邮件中继的特点体现在SMTP的工作模式中,SMTP有两种工作模式:一种为电子邮件从客户端传到服务器,另一种为电子邮件在两台SMTP服务器之间传递。

6、集中化运维工具——Ansible与SaltStack

一、填空题

1、硬件

2、python

3、列表 字典

4、/etc/ansible/hosts

5、setup

6、role

7、Master-Minion  SaltSSH

8、pkg

9、grains  pillar

10、pkg.latest 

二、判断题

1、√   2、√   3、√   4、√   5、×   6、√   7、√   8、×

解析:

1、略

2、略

3、略

4、略

5、定义role时根据需要添加目录文件,不必包含完整的目录文件

6、略

7、略

8、pillar数据是动态的,存储在Master端,更安全,grains数据是静态的,存储在Minion端,相对来说不安全。

三、选择题

1、C   2、B   3、B   4、C   5、A   6、B   7、B   8、D   9、B

解析:

1、软件运维包括系统运维与应用运维。

2、略

3、略

4、略

5、略

6、略

7、略

8、Minion只能查看自己的pillar数据,不能查看别的节点的pillar数据。

9、略

四、简答题

1、请简述一下传统运维主要面临的问题。

答:

1、设备数量增加

随着大数据时代的来临,应用系统慢慢增大,需要的设备也越来越多,运维工作师需要维护的系统与设备也越来越多,依靠不断重复实施软件的部署与运维已渐不可行。

2、系统异构性大

一般企业的应用系统都会交由不同的开发商开发,多个应用系统部署在一起就容易出现问题,不同的应用系统需要的运行环境、Web服务器、需要使用的数据库以及运行维护方式等都会不同,这就加大的运维工作的难度。

3、虚拟化的成熟带来更大挑战

随着虚拟化技术的成熟,企业内的IT建设不需要漫长的采购流程、寻找机房安放设备等,管理人员只需要申请一台虚拟机,再配置管理数据库(CMDB)中填写主机信息就可以了。IT建设的成本在不断降低,速度也在不断提升,需要运维的设备数量从原来的几百台迅速增加到成千上万台,运维工作无疑迎来了更大的挑战。

2、请简述一下你对SaltStack中Master-Minion架构的理解。

在Master-Minion架构中,主要有三个节点:Master、Minion、Syndic。Master是服务端,它负责调用命令,让Minion完成相应操作,来实现集中化操作。Minion是客户端,它负责执行Master下发的命令,完成实际的运维任务。Syndic是一个中间节点,负责解决网络拓扑中的二级代理问题,它需要在服务器主机上运行Master,并让子网下的Minion指向自己,即伪装成Master。Syndic可以没有,如果有Syndic,则Master通过Syndic对Minion进行管理。

7、系统监控

一、填空题

1、数据采集  数据存储  报警 

2、Web服务器软件  数据库软件

3、SNMP

4、Graphs  Screens

5、模板

二、判断题

1、√   2、×   3、√   4、√

解析:

1、略

2、Nagios只关心状态,所以能很好的实现报警,但是不能很好地展示数据。

3、略

4、略

三、选择题

1、D    2、A   3、B    4、A   

解析:

1、略

2、略。

3、略

4、Zabbix在进行宏替换时遵循一定的顺序:首先使用主机级别的宏,其次使用模板级别的宏,最后才使用全局级别的宏。

四、简答题

1、监控系统的服务器在获取到数据后,通常会以Web页面的形式提供涵盖了各种运行指标的系统运行状态图,同时Web页面会随数据实时更新。并非所有性能都由即时数据反映,若某项性能需要通过分析一段时间内的原始数据才能获得,服务器端会先将这段时间内采集到的原始数据进行存储,当数据量满足后,再对原始数据进行计算,获取并展示计算结果。若服务器端通过智能分析,发现某一环节出现异常,则需通过报警系统,向管理员发送警告信息。

8、网络安全

一、填空题

1、完整性 机密性 可用性 可控性

2、服务拒绝攻击 利用型攻击 信息收集攻击 假消息攻击

3、防火墙

4、软件防火墙 硬件防火墙

5、应用层

6、netfilter iptables

7、state 

8、firewall-cmd

二、判断题

   1、√   2、×   3、×   4、×   5、×   6、√   7、×

解析:

1、略

2、黑客攻击是威胁网络安全的一部分因素,威胁网络安全的因素还包括其他因素。

3、状态检测防火墙是包过滤防火墙的优化。

4、略

5、略

6、略

7、略

三、选择题

1、C   2、A   3、C   4、B   5、B   6、D   7、A   8、C

解析:

1、略

2、略

3、略

4、静态包过滤防火墙工作在应用层。

5、略

6、略

7、略

8、略

四、简答题

1、请简述一下威胁网络安全的主要因素。

答:威胁网络安全的因素大致可分为三种。

(1)物理因素

物理因素是指在物理介质上保证网络信息的安全,它主要受网络设备所处理的环境影响,包括温度、温度、静电、灰尘、强电磁场、电磁脉冲等,自然灾害中的火灾、水灾、地震等,均有可能破坏数据,影响网络的正常工作

(2)人为因素

人为因素是指是由于人员的疏忽或黑客的主动攻击造成的网络安全事件,这些网络事件可能是有意的,也可能是无意的。有意的网络破坏行为是指人为主动的恶意攻击、违纪、违法和犯罪等。无意的网络破坏行为是指由于操作疏忽而造成的失误,对网络造成不良影响。网络安全防护技术主要就是针对网络安全威胁进行防护。

(3)系统自身因素

系统自身因素是指网络中的计算机系统或网络设备由于自身的原因引发的网络安全风险,威胁网络安全的系统因素主要包括计算机硬件系统故障、各类计算机软件故障或安全缺陷、网络和通信协议自身的缺陷。系统自身的脆弱和不足是造成网络安全问题的内部根源,攻击者正是利用系统的性使各种威胁变成现实危害的。

2、请简述缓冲区溢出的攻击原理。

答:缓冲区是程序执行时,内存中暂时存放数据的地方,当程序将数据存放到缓冲区时,如果缓冲区没有足够的空间就会发生缓冲区溢出。正常情况下,缓冲区溢出对系统不会造成什么影响,但它为攻击者提供了可能。当攻击者向程序中植入的攻击代码,在发生缓冲区溢出时,溢出的数据覆盖掉其他可执行程序的入口地址,使得该地址指向攻击代码,当被覆盖掉的程序被执行时,就会执行攻击代码,这就是缓冲区溢出攻击。

3、请简述一下你对iptables规则表与规则链的理解。

答:iptables包括两个部分:一部分位于内核中,用来存放规则,称为netfilter;一部分在用户空间中,用来定义规则,并将规则传递到内核中,在用户空间的这一部分就叫作iptables。

iptables将定义好的规则传递到内核中的netfilter,netfilter将iptables定义的规则按功能分为五个部分:

  1. INPUT:数据包入口过滤,定义数据包由外部发往内部的规则;
  2. OUTPUT:数据包出口过滤,定义数据包由内部发往外部的规则;
  3. FORWARD:转发关卡过滤,数据包不进入用户空间,进行路由转发时的规则;
  4. PREROUTING:路由前过滤,数据包进来,还未查询路由表之前的规则,所有的数据包进来都要先由这个链进行处理;
  5. POSTROUTING:路由后过滤,查询完路由表,数据将要出去的规则,所有发送出去的数据包都要由这个链进行处理。

这五个部分,每一部分都称为一个规则链,存储在内核中不同的位置(过滤点)。配置防火墙就是添加、删除、修改这些规则。

不同功能的链又组成不同的规则表,这五个规则链共组成了四个表:filter表(过滤规则表)、nat表(地址转换规则表)、mangle表(修改数据标记位规则表)和raw表(跟踪数据规则表),其中每个规则表中又可以包含多个规则链。这四个规则表中包含的规则链及它们的作用如下所示:

  1. filter表有三个链:INPUT、FORWARD、OUTPUT,它的作用是过滤数据包,对应的内核模块为iptables_filter;
  2. nat表有三个链:PREROUTING、POSTROUTING、OUTPUT,它用于网络地址转换(IP、端口),对应的内核模块为iptable_nat;
  3. mangle表有五个链:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD,它用于修改数据包的服务类型,并且可以配置路由实现QOS,对应的内核模块为iptable_mangle;
  4. raw表有两个链:OUTPUT、PREROUTING,它决定数据包是否被状态跟踪机制处理,对应的内核模块为iptable_raw。

这就是通常所说的iptables中的四表五链,这些规则表、规则链共同组成了iptables数据包过滤系统,

9、KVM虚拟化技术

一、填空题

    1、优先级压缩 二进制代码翻译

    2、Hyper-V

    3、同质 高效 资源受控

    4、全虚拟化

    5、vCPU

    6、128M

    7、XML

    8、virsh

二、判断题

1、√   2、√   3、√   4、√   5、√   6、×   7、×   8、×

解析:

1、略

2、略

3、略

4、略

5、略

6、KVM虚拟机启动时默认是1个CPU。

7、一般KVM虚拟机配置2~4个CPU是比较好的。

8、Libvirt可以管理多种类型的虚拟机。

三、选择题

    1、C   2、D   3、B   4、A   5、B   6、D   7、A

解析:

1、A、虚拟化中,虚拟出的资源不受物理资源限制。B、服务器可以被虚拟化;D、虚拟化可以解决物理资源之间的兼容性。

2、KVM虚拟化中,服务器、内存的虚拟化是由KVM模块完成的。

3、略

4、略

5、不可以,需要经过两次地址转换。

6、virsh提供了管理宿主机的命令。

7、略

四、简答题

    1、请简述一下半虚化与全虚拟化及它们之间的不同。

        答:半虚拟化是指在虚拟客户机操作系统中加入特定的虚拟化指令,使用这些指令可以直接通过VMM调用硬件资源,减少VMM层转换指令的性能开销。在软件虚拟化中,因为没有硬件虚拟化的支持,完全通过VMM实现对各个客户机的监控,如此可保证客户机之间彼此隔离和独立,但会增加软件复杂度和性能的损失,可以通过修改操作系统内核来减少这种损失。

        全虚拟化(Full virtualization)是指VMM虚拟出的平台是现实中存在的平台,对于客户机操作系统来说,它并不知道自己是运行在虚拟平台上的。全虚拟化的主要工作就是在客户机操作系统与硬件之间截获和处理那些对虚拟化敏感的特权指令,使客户机操作系统无须更改就能运行。

        半虚拟化与全虚拟化的区别:半虚拟化需要修改操作系统内核,用户体验比较差;但其架构精简,速度比较快。全虚拟化不需要修改操作系统内核,但它在截获和处理特权指令上会消耗一部分性能,另外,全虚拟化大多是硬件辅助的虚拟化,会受到底层硬件的限制。随着硬件技术的发展,全虚拟化的性能已经接近半虚拟化,是虚拟化技术的发展趋势。

    2、请简述一下KVM虚拟化原理。

    答:KVM是基于硬件的全虚拟化解决方案,在KVM中,虚拟机其实就是一个Linux进程,由CPU进行调度运行。虚拟机的每个虚拟CPU就是一个Linux线程,这使得KVM能够使用Linux内核已有的功能。

    KVM的虚拟化主要是依靠内核中的KVM相关模块来实现的,在KVM虚拟化过程中,KVM模块首先会检测当前系统的CPU,确保其支持虚拟化(因为KVM是基于硬件的虚拟化,所以CPU必须支持虚拟化技术);然后打开CPU控制寄存器CR4中的控制虚拟化的开关,通过执行特定的指令将宿主机操作系统置于虚拟模式中;之后创建特殊设备文件/dev/kvm,并等待来自用户空间的命令,例如是否创建客户机,创建什么样的客户机;最后用户空间程序使用工具进行创建、管理、关闭虚拟客户机等操作。

注意,KVM本身不执行任何模拟,用户空间程序(如QEMU)通过/dev/kvm接口设置一个客户机虚拟服务器地址空间,向它提供模拟I/O,并将它的运行过程与结果映射回宿主机的显示屏,以完成整个虚拟过程。

你可能感兴趣的:(linux,网络,服务器)