《Linux系统应用与开发教程》所有课后习题和答案 下载本文

内容发布更新时间 : 2024/5/6 18:57:54星期一 下面是文章的全部内容请认真阅读。

例如,执行命令su lhy 就可以将身份切换为lhy了。

1. Linux系统如何保存用户的家庭电话等个人信息?

在新建一个用户时,通常没有输入用户信息。可以使用chfn命令,系统会出现相关提示信息要求操作者录入用户的信息,录入完毕后,系统会将这些信息保存到文件/etc/passswd中与用户对应的行中,并以逗号分隔。 命令格式:chfn [用户名]

如果不指定用户名则修改自己的用户信息。 1. 如何删除一个用户及其所建立的文件? 删除用户的命令为userdel,该命令的格式为: userdel <用户名>

但这个命令仅删除账号,而该账号创建的文件还会保留在系统中。如果系统不要保存这些文件,可以使用带选项的命令:userdel -r <用户名>

1. 结合一个单位的实际情况,在一台Linux主机中为每个成员开设一个账号,并建立一些公共资源和私有资源,设计一个方案对账号和资源进行管理。

1) 分析不同资源的性质,是公共的还是私有的,不同人员对它的访问权限如何; 2) 根据访问权限将用户分组; 3) 创建用户组;

4) 创建用户,并将其放入适当的组; 5) 使用chmod设置资源的访问权限。 10. 什么是进程,进程与程序有何区别?

Linux系统上所有运行的东西都可以称之为一个进程。每个用户任务、每个系统管理任务,都可以称之为进程。进程是一个程序的运行。进程与程序是有区别的,进程不是程序,虽然它由程序产生。程序只是一个静态的指令集合,不占系统的运行资源;而进程是一个随时都可能发生变化的、动态的、使用系统运行资源的程序。一个程序可以启动多个进程。 11. 分析交互式进程与守护进程的区别。

l 交互进程——由shell启动的进程,用户发布一个命令后系统执行,执行完后显示结果,等待用户再次输入新的命令;

l 守护进程——在后台持续运行的进程,不接受用户从控制台发布的命令,按照固定的方式运行

12. 分析前台进程与后台进程的区别。

所谓前台,是指一个进程控制着标准输入和输出。在程序执行时,shell暂时挂起,程序执行完毕后回到shell。前台进程运行时,在同一个控制台上用户不能再执行其他的程序。所

谓后台进程,是指一个程序不从标准输入接受输入,一般也不将结果输出到标准输出上。一些运行时间较长、运行之后不需要用户干预的程序适合运行在后台。 13. 如何手工启动一个进程?如何中止一个后台进程? 手工启动进程又可以分为前台进程和后台进程。

1)前台启动:这是手工启动一个进程的最常用的方式。一般地,用户键入一个命令,例如―ls –l‖,就已经启动了一个进程,而且是一个前台的进程。

2)后台启动:如果再命令后面加一个&符号,就从后台启动了一个进程

对于一个后台进程而言,使用组合键Ctrl+c无效,必须使用kill命令。首先应该使用ps命令来查看该进程对应的pid,假如该进程的pid为345,然后使用kill命令来终止该进程。输入命令:kill 345

有时候可能会遇到这样的情况,某个进程已经挂起或闲置,但是使用kill命令却杀不掉。这时候就必须发送信号9,强行关闭此进程:kill –s 9 345。但这种―强制‖方法很可能会导致打开的文件出现错误或者数据丢失之类的错误,所以不到万不得已不要使用强制结束的办法。如果连信号9都不响应,就只能重新启动计算机了 14. 如何使用at命令调度进程?

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

l 在shell提示符下输入‖at 时间‖,然后按回车键。这时在下一行shell会等待用户继续输入要执行的命令。每一行输入一个命令,所有命令都输入完毕后按Ctrl+d键结束。 l 将各个命令写入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系统对每一个文件设定四种访问权限:可读取(r,readable)、可写入(w,writable)、可执行(x,eXecute)和无权限(-)。系统根据文件的权限属性来判断是否允许用户进行相关的操作。 1. 系统怎样分区才能更安全?

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

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

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

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

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

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

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

1. 怎样禁止远程Telnet登录服务?

关闭本机的telnet服务,逐一检查是否使用某种方法启动了telnet服务。

1. 怎样减小在网络中被攻击的风险?

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

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

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

编辑/etc/passwd文件,将该用户对应的行的第2个域更改为*,则该用户被停用,当要启用该用户时,可以将第2个域更改为x即可。

1. 如何设置用户自动注销?

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

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

1. DAC与MAC有哪些异同?

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

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

MAC由系统对用户所创建的对象进行统一的强制性控制,按照规定的规则决定哪些用户可以对哪些对象进行什么样操作系统类型的访问,即使是创建者用户,在创建一个对象后,也可能无权访问该对象。强制访问控制模型MAC的最初目的是实现比DAC更为严格的访问控制策略。在MAC中,系统根据主体被信任的程度和客体所包含的信息的机密性或敏感程度

来决定主体对客体的访问权。系统事先给访问主体和受控对象分配不同的安全级别,用户不能改变自身和客体的安全级别。在实施访问控制时,系统先对访问主体和受控对象的安全级别进行比较,只有在主体和客体的安全级别满足一定规则时,才允许访问。 1. 仅仅依靠DAC的Linux系统存在哪些不足?

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

2) 对于文件的访问权的划分不细:在linux系统中,对文件的操作只有所有者、所有组和其他这三类,没有办法进行再细的划分,所以不能更好的对访问进行控制;

3) suit程序的权限升级:如果设置了suid权限的程序有漏洞的话,很容易被攻击者利用; 4) DAC问题:文件目录的所有者可以对文件进行所有的操作,这给系统整体的管理带来了不便。

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

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

1. SELinux都有哪些特性?

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

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

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

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

1. 什么是类型、什么是角色、什么是安全上下文?

类型(type):有时也称域 (domain),类型把主体或者客体分成相关的组,以类型符号来标识,类型是基本的安全属性,SELinux根据类型做授权决策,控制进程访问并阻止越权企图。所以,可以认为类型就是一组允许执行的操作的列表;角色(role):SELinux中每个用户被授予进入一种或者多种角色,在任何时刻一个用户只能处于一种角色。每个角色与不同的域关联,角色决定了用户可以访问哪些域,即通过角色管理用户的权限;安全上下文(context):SELinux的三个安全属性:用户身份、角色、类型,结合在一起构成了安全上下文。系统中的任何主体和对象都有自己的安全上下文,SELinux根据安全上下文做安全决策。