Linux系统应用与开发教程习题和答案(5)

2018-11-27 09:37

14. 如何使用at命令调度进程?

at命令用于在指定时刻执行指定的命令序列。输入at执行的命令有两种方法:

? 在shell提示符下输入”at 时间”,然后按回车键。这时在下一行shell会等待

用户继续输入要执行的命令。每一行输入一个命令,所有命令都输入完毕后按Ctrl+d键结束。

? 将各个命令写入shell脚本中,然后使用下面格式设置在指定时间执行shell脚本

中的命令:

at 时间 –f脚本文件。

15. 如何调度系统在指定时间执行指定命令。 使用at命令让系统再指定时间执行指定命令 使用cron程序调度系统在指定时间执行指定命令 16. 说明cron程序的工作原理。

cron命令在系统启动时由一个shell脚本自动启动,进入后台。

cron启动后搜索/var/spool/cron目录,寻找以/etc/passwd文件中的用户名命名的crontab文件,被找到的这种文件将载入内存。如果没有crontab文件,就转入“休眠”状态,释放系统资源。cron每分钟“醒”过来一次,查看当前是否有需要运行的命令。如果发现某个用户设置了crontab文件,它将以该用户的身份去运行文件中指定的命令。命令执行结束后,任何输出都将作为邮件发送给crontab的所有者,或者/etc/crontab文件中MAILTO环境变量中指定的用户。 17. 如何查看系统当前运行的进程。

查看目前进程状况:ps

选项组合aux可以显示最详细的进程情况:ps aux 18. 有哪些方法可以停止一个进程。

如果是个前台进程,使用Ctrl+C即可中止进程,如果是后台进程,则必须使用kill命令。 19. 如何显示当前内存用量?

1)使用top命令可以显示内存利用率;

2)free命令可以显示系统的物理内存、内核缓冲区、cache和交换区的总量以及已经使用的、空闲的、共享的、在内核缓冲区的和被缓存的内存数量。

3)使用图形化的系统监视器

20. 使用什么命令可以得到系统磁盘空间用量。

df命令可以报告系统的磁盘空间用量,包括各个分区的磁盘总量、已用的空间、未用的空间、已用的百分比、挂载点。如果要以MB和GB为单位,则需要使用“df –h”命令 21. 试分析不同日志文件的内容和功能。

在X Window下,执行【应用程序/系统工具/系统日志】命令,可以打开日志查看器。选中某个日志文件,可以再右测显示该日志的内容和功能。

可以使用文本编辑器打开日志文件,查看各个域的内容和格式。在图形化的日志查看器上,可以查看日志的日志的内容。

日志内容包括:日期时间,主机,事件。 第10章 Linux系统的安全管理

1. 标准Linux系统对文件权限是如何划分的?用户访问时都有哪些限制?

在Linux中,将文件访问权限分为3类用户来进行设置:文件所有者(u)、同组用户(g)和其他用户(o),可分别为这3类用户设置不同的操作权限。Linux系统对每一个文件

21

设定四种访问权限:可读取(r,readable)、可写入(w,writable)、可执行(x,eXecute)和无权限(-)。系统根据文件的权限属性来判断是否允许用户进行相关的操作。 2. 系统怎样分区才能更安全?

为了防止缓冲区溢出攻击,在安装系统时就应该注意,如果用“/”分区记录数据,如日志(log)文件和邮件(email),就可能因为大量的日志或垃圾邮件而导致系统崩溃。所以建议为“/var”目录开辟单独的分区,用来存放日志和邮件,以避免“/”分区被溢出。最好为特殊的应用程序也单独开一个分区,特别是可以产生大量日志的程序,如web服务其等。建议为“/home”目录单独分一个区,这样攻击者就不能通过溢出某个用户的存储空间而填满整个“/”分区,从而就避免了部分针对Linux分区溢出的恶意攻击。

3. 设置一个安全的用户口令有哪些要求?

口令是系统中认证用户的主要手段,系统安装时默认的口令最小长度通常为5,为保证口令不易被猜测攻击,可增加口令的最小长度,至少等于8。同时应限制口令使用时间,保证定期更换口令。此外,在选择口令时尽量不要选择单词、用户名、生日等常用词,最好同时包含字母、数字、大小写、非字母数字符号,以防备攻击者通过猜测口令攻破系统。

4. 如何防止别人使用ping命令探测本机?

ping命令通常用于测试主机和网络,黑客可以利用这一点进行网络扫描,伺机攻击网络主机。为了增强主机的安全性,建议禁止主机系统对该命令作出响应。可以编辑文件/etc/rc.d/rc.local,增加下述命令:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

其含义是不处理所有接收到的ICMP ECHO数据包。这样,每次系统启动后都执行该指令,可以阻止系统响应任何从外部或内部来的ping请求。 5. 怎样禁止远程Telnet登录服务?

关闭本机的telnet服务,逐一检查是否使用某种方法启动了telnet服务。 6. 怎样减小在网络中被攻击的风险?

系统管理:BIOS安全设置、安全分区、系统文件实行最小权限原则、限制用户占用的资源、即使升级系统

用户管理方面:关闭不用帐号、注意suid程序的权限、对口令进行安全管理

网络服务管理方面:关闭不必要的服务、禁止响应ping命令、向其它用户屏蔽系统信息 7. 如何临时禁止一个用户的使用?

编辑/etc/passwd文件,将该用户对应的行的第2个域更改为*,则该用户被停用,当要启用该用户时,可以将第2个域更改为x即可。 8. 如何设置用户自动注销?

Linux可以控制系统在空闲时自动从shell中注销。编辑/etc/profile文件,设置变量“tmout”为超时时间:

tmout=600

那么所有用户将在600秒无操作后自动注销。注意:修改了该参数后,必须重新登录,更改才能生效。

9. DAC与MAC有哪些异同?

DAC和MAC都是访问控制模型,按用户身份及其所归属的某预定义组来限制用户对某些信息项的访问,或限制对某些控制功能的使用。

DAC,由用户有权对自身所创建的访问对象(文件、数据表等)进行访问,并可将对这些对象的访问权授予其他用户和从授予权限的用户收回其访问权限。在DAC中,对某个

22

客体具有所有权(或控制权)的主体能够将对该客体的一种访问权或多种访问权自主地授予其它主体,并可在随后的任何时刻将这些权限回收。DAC是一种方便但不安全的文件系统访问控制方法,由于系统存在特权用户、对文件访问权限的划分不够细致以及程序对资源的完全控制等问题。

MAC由系统对用户所创建的对象进行统一的强制性控制,按照规定的规则决定哪些用户可以对哪些对象进行什么样操作系统类型的访问,即使是创建者用户,在创建一个对象后,也可能无权访问该对象。强制访问控制模型MAC的最初目的是实现比DAC更为严格的访问控制策略。在MAC中,系统根据主体被信任的程度和客体所包含的信息的机密性或敏感程度来决定主体对客体的访问权。系统事先给访问主体和受控对象分配不同的安全级别,用户不能改变自身和客体的安全级别。在实施访问控制时,系统先对访问主体和受控对象的安全级别进行比较,只有在主体和客体的安全级别满足一定规则时,才允许访问。

10. 仅仅依靠DAC的Linux系统存在哪些不足?

1) 存在特权用户root:任何人只要得到了root权限,就可以为所欲为;

2) 对于文件的访问权的划分不细:在linux系统中,对文件的操作只有所有者、所有

组和其他这三类,没有办法进行再细的划分,所以不能更好的对访问进行控制; 3) suit程序的权限升级:如果设置了suid权限的程序有漏洞的话,很容易被攻击者利

用;

4) DAC问题:文件目录的所有者可以对文件进行所有的操作,这给系统整体的管理

带来了不便。

11. 什么是SELinux?它的主要作用是什么?

SELinux的全称是Security-Enhanced Linux,即安全增强的Linux。它在Linux内核中包含必要的访问控制,在传统的强制访问控制的基础上加入了灵活性支持,同时引入了基于角色的访问控制中的角色等概念,来克服传统强制访问控制的局限。受SELinux保护的程序只允许访问它们正确工作所需的文件系统部分,也就是说如果程序有意或无意地访问或修改它的功能所不需要的文件或者不在程序所控制的目录中的文件,则访问会被拒绝,动作会被记录到日志中。 12. SELinux都有哪些特性?

没有SELinux保护的Linux的安全级别和Windows一样,是C2级,但经过SELinux保护的Linux安全级别可以达到B1级,下面是SELinux的一些特点:

1)强制访问控制MAC;2)类型加强TE(Type Enforcement)——对进程只赋予最小权限;3)进行类型的迁移——防止权限升级;4)基于角色的访问控制RBAC——对用户只赋予最小权限;5)SELinux策略——决定保护类别和方式。

13. 如何启动和禁止SELinux,都有哪些办法可以知道SELinux当前的运行状态?

在Fedora系统中,我们可以使用sestatus命令来查看当前的SELinux模式,可以使用getenforce命令来显示当前的SELinux运行状态。可以使用setenforce命令来修改当前运行的SELinux模式,设置为enforcing:启用并强制执行系统上的SELinux安全机制,记录它拒绝的任何动作;设置为permissive:启用SELinux,但是不强制执行安全策略。在该模式下,SELinux不阻止任何操作,即使该操作违反了安全策略,但它会把违反的内容记录下来;设置为disabled:关闭SELinux。 14. 什么是类型、什么是角色、什么是安全上下文?

类型(type):有时也称域 (domain),类型把主体或者客体分成相关的组,以类型符号来标识,类型是基本的安全属性,SELinux根据类型做授权决策,控制进程访问并阻止越权企图。所以,可以认为类型就是一组允许执行的操作的列表;角色(role):SELinux

23

中每个用户被授予进入一种或者多种角色,在任何时刻一个用户只能处于一种角色。每个角色与不同的域关联,角色决定了用户可以访问哪些域,即通过角色管理用户的权限;安全上下文(context):SELinux的三个安全属性:用户身份、角色、类型,结合在一起构成了安全上下文。系统中的任何主体和对象都有自己的安全上下文,SELinux根据安全上下文做安全决策。 15. 安全增强的内涵都有哪些?

第一、受保护的程序只允许访问它们正确地工作所需的文件系统能够部分,意味着程序的执行被严格监控,不能再访问或者修改它不需要的文件;第二、进行严格的访问控制审查,利用SELinux策略定义来实施具体的保护;第三、更为严格的权限升级核定,避免不恰当的类型迁移;第四、引入角色概念,赋予用户不同的角色,系统根据角色设置访问权限。

16. SELinux与Linux系统原有的访问控制之间有什么关系?

安装并启用SELinux之后,Linux系统的原有安全机制,即基于“所有者——组——其他”的访问控制机制仍然有效,二者可以共存。当在系统中执行某一操作时,原有的访问控制机制首先起作用。如果原有的访问控制规则允许了该操作,那么SELinux将会检查并且根据自己的安全策略允许或拒绝访问;但是如果原有的访问控制机制拒绝了该操作,那么Linux系统直接拒绝该操作,而与SELinux检查无关。 17. 如何查看安全上下文?

执行命令“ps –Z”则列出了当前运行进程的安全上下文,执行命令“ls -Z”可以列出文件对应的安全上下文。

18. 如何修改一个目录中默认文件的安全上下文?

chcon命令设置或者更改一个或多个文件的安全上下文。若文件原来没有安全上下文则设置新的安全上下文,否则修改为指定值。

19. SELinux的策略如何选择?用户如何根据自己的需要去定制SELinux策略?

SELinux访问控制策略的制定、更改非常复杂。一般是下载安装缺省策略,然后在此基础上进行细微调整。制定或更改策略可以通过控制台命令实现。Fedora系统默认安装了一个图形化的SELinux管理工具,可以非常方便地设置、修改SELinux的安全策略。用户可以使用此工具来依据自己的需要定制SELinux策略。

20. SELinux AVC消息有什么作用?如何查看AVC消息?

AVC消息是由SELinux因访问拒绝或者因制定的审计规则而产生的审核消息,edora10默认安装并且打开了SELinux 诊断工具 setroubleshoot,这个工具为桌面用户提供了 SELinux 访问受限的通知和详细信息,以及如何处理它们的建议。当系统中的某个操作违反了SELinux的安全策略时,该工具在桌面上弹出AVC警报。当看到AVC警报时,可以双击该通知图标,以打开SeTroubleshoot浏览器,也可以通过菜单项【应用程序/系统工具/SELinux故障排除工具】来打开SeTroubleshoot浏览器,在SeTroubleshoot浏览器上面列出了所有检查到的AVC消息。

第11章 shell程序设计 1.shell程序就是把用户键入的shell命令按照控制结构组织到一个文本文件中,批量的交给shell去执行。

2.安装有bash、bash、sh、nologin等多种shell解释器,可以通过命令:cat /etc/shells命令查看系统中安装有哪些shell,及这些shell的安装路径。

3.与C语言等高级语言程序需要最终形成二进制可执行文件不同,shell程序是通过shell命令解释器解释执行的,不生成二进制的可执行代码,这点和Dos下批处理程序(.BAT文

24

件)的特性类似。 4.包括:(1)命令解释器路径;(2)函数声明;(3)程序主体;

5.Bash脚本语言是一种弱类型的脚本语言。所谓弱类型脚本语言是指这种语言对类型的要求不严格,同一个变量随着使用场合的不同,可以存储不同类型的数据。

给一个变量赋值采用如下的格式: 变量=值 (注意:等号两侧不能有空格)

6.如果在函数内部需要使用传递给函数的参数,一般用$0、$1、......、$n,以及$#、$*、$@这些特殊变量。$0为执行脚本的函数名,$1是传递给函数的第1个参数,依次类推,$n为传递给函数的第n个参数;$#为传递给函数的参数个数;$*和$@为传递给函数的所有参数,两者的区别在于$*把所有参数作为一个整体,而$@把所有参数看作拥有多个参数的集合,可以单独访问每个参数。 7.常见的运算符:

整数的算术运算符:+、-、*、/、%;

赋值运算符:+=、-=、*=、/=、%=; 位运算符:<<、>>、&、|、~、^;

位运算赋值运算符:<<=、>>=、&=、|=、~=、^=; 逻辑运算符:&&,||,!,>,>=,<,<=,!=,== 8.有if、case、for、while、until等。 9.通过$n(n=0、1、2......),$#,$*,$@特殊变量和shift等命令实现。 10./etc/bashrc脚本负责进行一些全局变量的设置工作。 11.代码清单及程序注释如下: #!/bin/bash

#可执行文件的路径

COMMAND_PATH=/usr/lcoal/bin/myserver #得到文件的文件名,本例中为:myserver COMMAND_FILE=${COMMAND_PATH##*/} #通过ps命令获取运行程序的经常标识符即pid function grep_proc_id() { ps -C ${COMMAND_FILE} -o pid --no-headers }

#启动可执行文件 function start_svc() { echo \ ${COMMAND_PATH} }

#停止可执行文件 function stop_svc() { pid=`grep_proc_id` if [ -n \ kill -9 ${pid} echo \

25


Linux系统应用与开发教程习题和答案(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:操作系统实验报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: