1.配置与管理Samba服务器(掌握Samba服务器的安装、配置与调试.)
1.1 了解Samba应用环境
●文件和打印机共享:文件和打印机共享是Samba的主要功能,SMB进程实现
资源共享,将文件和打印机发布到网络之中,以供用户可以访问。
●身份验证和权限设置:smbd服务支持user mode和domain mode等身份验证和权限设置模式,通过加密方式可以保护共享的文件和打印机。
●名称解析:Samba通过nmbd服务可以搭建NBNS(NetBIOS Name Service)服务器,提供名称解析,将计算机的NetBIOS名解析为IP地址。
●浏览服务:局域网中,Samba服务器可以成为本地主浏览服务器(LMB),保存可用资源列表,当使用客户端访问Windows网上邻居时,会提供浏览列表,显示共享目录、打印机等资源。
1.2 SMB(Server Message Block)通信协议可以看作是局域网上共享文件和打印机的一种协议。它是Microsoft和Intel在1987年制定的协议,主要是作为Microsoft网络的通信协议,而Samba则是将SMB协议搬到UNIX系统上来使用。
通过“NetBIOS over TCP/IP”使用Samba不但能与局域网络主机共享资源,也能与全世界的计算机共享资源。因为互联网上千千万万的主机所使用的通信协议就是TCP/IP。SMB是在会话层和表示层以及小部分的应用层的协议,SMB使用了NetBIOS的应用程序接口API。另外,它是一个开放性的协议,允许协议扩展,这使得它变得庞大而复杂,大约有65个最上层的作业,而每个作业都超过120个函数。
Samba服务功能强大,这与其通信基于SMB协议有关。SMB不仅提供目录和打印机共享,还支持认证、权限设置。在早期,SMB运行于NBT协议(NetBIOS over TCP/IP)上,nmbd监听UDP协议的137、138、smbd监听TCP协议的139端口,后期SMB经过开发,可以直接运行于TCP/IP协议上,没有额外的NBT层,使用TCP协议的445端口。
1.4 Samba工作流程。
当客户端访问服务器时,信息通过SMB协议进行传输,其工作过程可以分成4个步骤。
① 协议协商。客户端在访问Samba服务器时,发送negprot指令数据包,告知目标计算机其支持的SMB类型。Samba服务器根据客户端的情况,选择最优的SMB类型并做出回应。
② 建立连接。当SMB类型确认后,客户端会发送session setup指令数据包,提交账号和密码,请求与Samba服务器建立连接,如果客户端通过身份验证,Samba服务器会对session setup报文做出回应,并为用户分配唯一的UID,在客户端与其通信时使用。
③ 访问共享资源。客户端访问Samba共享资源时,发送tree connect指令数据包,通知服务器需要访问的共享资源名,如果设置允许,Samba服务器会为每个客户端与共享资源连接分配TID,客户端即可访问需要的共享资源。如图2-3所示。
④ 断开连接。共享使用完毕,客户端向服务器发送tree disconnect报文关闭共享,与服务器断开连接。
1.5 Samba相关进程。
Samba服务是由两个进程组成,分别是nmbd和smbd。
●nmbd:其功能是进行NetBIOS名解析,并提供浏览服务显示网络上的共享资源列表。
●smbd:其主要功能就是用来管理Samba服务器上的共享目录、打印机等,主要是针对网络上的共享资源进行管理的服务。当要访问服务器时,要查找共享文件,这时我们就要依靠smbd这个进程来管理数据传输。
1.6 使用rpm -qa |grep samba命令检测系统是否安装了Samba相关性软件包
如果系统还没有安装Samba软件包,我们可以使用rpm命令安装所需软件包。
1.7 什么是yum
Yum(全称为Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE、CentOS中的Shell前端软件包管理器。
基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装
1.8 Samba所需软件
在我们安装Samba服务之前,先来了解一下其所需要的软件包以及它们的用途。
Samba-3.0.33-3.7.el5.i386.rpm:该包为Samba服务的主程序包。服务器必须安装该软件包,后面的数字为版本号。
Samba-client-3.0.33-3.7.el5.i386.rpm:该包为Samba的客户端工具,是连接服务器和连接网上邻居的客户端工具并包含其测试工具
Samba-swat-3.0.33-3.7.el5.i386.rpm:当安装了这个包以后,就可以通过浏览器(比如IE等)来对Samba服务器进行图形化管理。
1.9.1 安装Samba服务
//挂载光盘到 / media下
[root@rhel5 ~]# mount /dev/cdrom /media
//进入安装文件所在目录
[root@rhel5 ~]# cd /media/Server
//安装相应的软件包
[root@rhel5 Server]#rpm –ivh samba-3.0.33-3.7.el5.i386.rpm
1.9.2
Samba服务的启动
#service smb start 或者 # /etc/rc.d/init.d/smb start
Samba服务的停止
# service smb stop //或者 # /etc/rc.d/init.d/smb stop
自动加载Samba服务:我们可以使用chkconfig命令自动加载SMB服务
[root@rhel5 ~]# chkconfig --level 3 smb on #运行级别3自动加载
[root@rhel5 ~]# chkconfig --level 3 smb off #运行级别3不自动加载
1.9.3
基本的Samba服务器的搭建流程主要分为4个步骤。
(1)编辑主配置文件smb.conf,指定需要共享的目录,并为共享目录设置共享权限。
(2)在smb.conf文件中指定日志文件名称和存放路径。
(3)设置共享目录的本地系统权限。
(4)重新加载配置文件或重新启动SMB服务,使配置生效。
1.9.4 Samba服务器配置的工作流程
① 客户端请求访问Samba服务器上的Share共享目录。
② Samba服务器接收到请求后,会查询主配置文件smb.conf,看是否共享了Share目录,如果共享了这个目录则查看客户端是否有权限访问。
③ Samba服务器会将本次访问信息记录在日志文件之中,日志文件的名称和路径都需要我们设置。 ④ 如果客户端满足访问权限设置,则允许客户端进行访问。
1.9.5 主要配置文件smb.conf
Samba的配置文件一般就放在/etc/samba目录中,主配置文件名为smb.conf。如果把Samba服务器比喻成一个公共图书馆,那么在/etc/samba目录中,主配置文件/etc/samba/smb.conf文件就相当于这个图书馆的图书总目录,记录着大量的共享信息和规则,所以该文件是Samba服务非常重要的核心配置文件,几乎绝大部分的配置文件都在该文件中进行。此外,在smb.conf这个配置文档中本身就含有非常丰富的说明,所以在我们配置之前可以先看一下这些说明性的文字。
使用ll命令查看smb.conf文件属性,并使用命令:vim /etc/samba/smb.conf查看文件的详细内容。# ll /etc/samba/ # vim /etc/samba/smb.conf
1.9.6 Samba配置简介
Smb.conf文件的开头部分为Samba配置简介,告诉我们Smb.conf文件的作用及相关信息。 smb.conf中以“#”开头的为注释,为用户提供相关的配置解释信息,方便用户参考,不用修改它。
smb.conf中还有以“;”开头的,这些都是Samba配置的格式范例,默认是不生效的,可以通过去掉前面的“;”并加以修改来设置想使用的功能。
Global Settings设置为全局变量区域。该部分以[global]开始.
smb.conf配置通用格式,对相应功能进行设置:字段=设定值。
[global]常用字段及设置方法如下所示。
(1)设置工作组或域名称。
工作组是网络中地位平等的一组计算机,可以通过设置workgroup字段来对Samba服务器所在工作组或域名进行设置。比如:workgroup=SmileGroup。
(2)服务器描述。
服务器描述实际上类似于备注信息,在一个工作组中,可能存在多台服务器,为了方便用户浏览,我们可以在server string配置相应描述信息,这样用户就可以通过描述信息知道自己要登录哪台服务器了。
比如:server string=Samba Server One。
(3)设置Samba服务器安全模式。
Samba服务器有share、user、server、domain和ads 5种安全模式,用来适应不同的企业服务器的需求。比如:security=share。
① share安全级别模式。客户端登录Samba服务器,不需要输入用户名和密码就可以浏览Samba服务器的资源,适用于公共的共享资源,安全性差,需要配合其他权限设置,保证Samba服务器的安全性。 ② user安全级别模式。客户端登录Samba服务器,需要提交合法账号和密码,经过服务器验证才可以访问共享资源,服务器默认为此级别模式。
③ server安全级别模式。客户端需要将用户名和密码提交到指定的一台Samba服务器上进行验证,如果验证出现错误,客户端会用user级别访问。
④ domain安全级别模式。如果Samba服务器加入Windows域环境中,验证工作将由Windows域控制器负责,domain级别的Samba服务器只是成为域的成员客户端,并不具备服务器的特性,Samba早期的版本就是使用此级别登录Windows域的。
⑤ ads安全级别模式。当Samba服务器使用ads安全级别加入到Windows域环境中,就具备了domain安全级别模式中所有的功能并可以具备域控制器的功能。
3.Share Definitions共享服务的定义
(1)设置共享名。
共享资源发布后,必须为每个共享目录或打印机设置不同的共享名,给网络用户访问时使用,并且共享名可以与原目录名不同。
共享名设置非常简单,格式为: Samba服务器中有个目录为/share,需要发布该目录成为共享目录,定义共享名为public
[public]
Comment = share
Path = /share
Public = yes
(2)共享资源描述。
网络中存在各种共享资源,为了方便用户识别,可以为其添加备注信息,以方便用户查看时知道共享资源的内容是什么。格式:comment = 备注信息
Comment = share(备注信息)
Path = /share
Public = yes
(3)共享路径。
共享资源的原始完整路径,可以使用path字段进行发布,务必正确指定。
格式:Comment = share
Path = /share(绝对地址路径)
Public = yes(设置匿名访问)
(4)设置匿名访问。
设置是否允许对共享资源进行匿名访问,可以更改public字段。
格式:public = yes #允许匿名访问
public = no #禁止匿名访问
(5)设置访问用户。
如果共享资源存在重要数据的话,需要对访问用户审核,我们可以使用valid users字段进行设置。( Samba服务器/share/tech目录存放了公司技术部数据,只允许技术部员工和经理访问,技术部组为tech,经理账号为mang。)
格式:valid users = 用户名
valid users = @组名
[tech]
comment=tecch
path=/share/tech
valid users=@tech,mang
(6)设置目录只读。
共享目录如果限制用户的读写操作,我们可以通过readonly实现。(Samba服务器公共目录/public存放大量共享数据,为保证目录安全我们只允许读取,禁止写入。)
格式:Read only = yes #只读
Read only = no #读写
[public]
comment=public
path=/public
public=yes
read only=yes
(7)设置目录可写。 [homes]为特殊共享目录,表示用户主目录。[printers]表示共享打印机
如果共享目录允许用户写操作,可以使用writable或write list两个字段进行设置。(某公司需要添加Samba服务器作为文件服务器,工作组名为Workgroup,发布共享目录/share,共享名为public,这个共享目录允许所有公司员工访问。)
writable格式: writable = yes #读写
writable = no #只读
write list格式:
write list = 用户名
write list = @组名
这个案例属于Samba的基本配置,我们可以使用share安全级别模式,既然允许所有员工访问,则需要为每个用户建立一个Samba账号,那么如果公司拥有大量用户呢?1 000个用户,100 000个用户,一个个设置会非常麻烦,我们可以通过配置security=share来让所有用户登录时采用匿名账户nobody访问,这样实现起来非常简单。
step1:建立share目录,并在其下建立测试文件。
[root@rhel5 ~]# mkdir /share
[root@rhel5 ~]# touch /share/test_share.tar
step2:修改Samba主配置文件smb.conf。
[root@rhel5 ~]# vim /etc/Samba/smb.conf 修改配置文件,并保存结果。
share服务器实例解析
[global]
workgroup = Workgroup #设置Samba服务器工作组名为Workgroup
server string = File Server #添加Samba服务器注释信息为“File Server”
security = share #设置Samba安全级别为share模式,允许用户匿名访问
; passdb backend = tdbsam
smb passwd file = /etc/samba/smbpasswd
[public] #设置共享目录的共享名为public
comment=public
path=/share
guest ok=yes
public=yes
step3:重新加载配置。
Linux为了使新配置生效,需要重新加载配置,可以使用restart重新启动服务或者使用reload重新加载配置。
[root@rhel5 ~]# service smb reload
//或者
[root@rhel5 ~]# /etc/rc.d/init.d/smb reload
Samba服务器通过以上设置,用户就可以不需要输入账号和密码直接登录Samba服务器并访问public共享目录了。
任务3 user服务器实例解析
【例】 如果公司有多个部门,因工作需要,就必须分门别类地建立相应部门的目录。要求将销售部的资 #设置共享目录的绝对路径为/share #允许匿名访问 #最后设置允许匿名访问
料存放在Samba服务器的/companydata/sales/目录下集中管理,以便销售人员浏览,并且该目录只允许销售部员工访问。
需求分析:在/companydata/sales/目录中存放有销售部的重要数据,为了保证其他部门无法查看其内容,我们需要将全局配置中security设置为user安全级别,这样就启用了Samba服务器的身份验证机制,然后在共享目录/companydata/sales下设置valid users字段,配置只允许销售部员工能够访问这个共享目录。
step1:建立共享目录,并在其下建立测试文件。
[root@rhel5 ~]# mkdir /companydata
[root@rhel5 ~]# mkdir /companydata/sales
[root@rhel5 ~]# touch / companydata/sales /test_share.tar
step2:添加销售部用户和组并添加相应Samba账号。
(1)使用groupadd命令添加sales组,然后执行useradd命令和passwd命令添加销售部员工的账号及密码。
[root@rhel5 ~]# groupadd sales #建立销售组sales
[root@rhel5 ~]# useradd -g sales sale1 #建立用户sale1,添加到sales组
[root@rhel5 ~]# useradd -g sales sale2 #建立用户sale2,添加到sales组
[root@rhel5 ~]# passwd sale1
[root@rhel5 ~]# passwd sale2 #设置用户sale1密码 #设置用户sale2密码
(2)接下来为销售部成员添加相应Samba账号。
[root@rhel5 ~]# smbpasswd –a sale1
[root@rhel5 ~]# smbpasswd –a sale2
(3)修改Samba主配置文件smb.conf。
[global]
workgroup = Workgroup
server string = File Server
security = user #设置user安全级别模式
; passdb backend = tdbsam
smb passwd file = /etc/Samba/smbpasswd
[sales]
comment=sales
path=/companydata/sales
valid users = @sales
step3:重新加载配置。
要让修改后的Linux配置文件生效,需要重新加载配置。 #设置共享目录的绝对路径 #设置可以访问的用户为sales组 #设置共享目录的共享名为sales
[root@rhel5 ~]# service smb reload
//或者
[root@rhel5 ~]# /etc/rc.d/init.d/smb reload
step4:测试。
任务4 配置Samba客户端
1.Linux客户端访问Samba共享
Linux客户端访问服务器主要有两种方法。
(1)使用smbclient命令。
在Linux中,Samba客户端使用smbclint这个程序来访问Samba服务器时,先要确保客户端已经安装了Samba-client这个rpm包。
[root@rhel5 ~]# rpm -qa|grep Samba
默认已经安装,如果没有安装可以用前面讲过的命令来安装。
smbclient可以列出目标主机共享目录列表:smbclient命令格式:
smbclient -L 目标IP地址或主机名 -U 登录用户名%密码
当我们查看rhel5(192.168.0.10)主机的共享目录列表时,提示输入密码,这时候可以不输入密码,我们直接按回车,这样表示匿名登录,然后就会显示匿名用户可以看到的共享目录列表。
[root@rhel5 ~]# smbclient -L rhel5
[root@rhel5 ~]# smbclient -L 192.168.0.10
若想使用Samba账号查看Samba服务器端共享的目录,可以加上-U参数,后面跟上用户名%密码。下面的命令显示只有boss账号才有权限浏览和访问的tech技术部共享目录。
[root@rhel5 ~]# smbclient -L 192.168.0.10 -U boss%Password
读者还可以使用smbclient命令行共享访问模式浏览共享的资料。
smbclient命令行共享访问模式命令格式:
smbclient //目标IP地址或主机名/共享目录 -U 用户名%密码
下面的命令结果显示服务器上tech共享目录的内容。
[root@rhel5 ~]# smbclient //192.168.0.10/tech -U boss% Password
另外smbclient登录Samba服务器后,我们可以使用help查询所支持的命令。
(2)使用mount命令挂载共享目录。
mount命令挂载共享目录格式:
mount -t cifs //目标IP地址或主机名/共享目录名称 挂载点 -o username=用户名
[root@rhel5~]# mount -t cifs //192.168.0.10/tech /mnt/Sambadata/ -o username=boss% Password 表示挂载192.168.0.10主机上的共享目录tech到/mnt/Sambadata目录下,cifs是Samba所使用的文件系统。
2.Windows客户端访问Samba共享
(1)依次打开“开始”→“运行”,使用UNC路径直接进行访问。
形如:\\rhel5\tech 或者 \\192.168.0.10\tech
(2)映射网络驱动器访问Samba服务器共享目录。
双击打开“我的电脑”,再依次单击“工具”→“映射网络驱动器”,在“映射网络驱动器”对话框中选择“Z”驱动器,并输入tech共享目录的地址,比如:\\192.168.0.10\tech。按“完成”按钮,在接下来的对话框中输入可以访问tech共享目录的Samba账号和密码。
再次打开“我的电脑”,驱动器Z就是我们的共享目录tech,可以很方便地访问了。
任务5 使用samba组件中的应用程序
1. testparm命令
2. smbstatus
3. SWAT
Samba排错
Linux服务的一般排错方法
1.错误信息
一定要仔细查看接收到的错误信息。如果有错误提示的话,根据错误提示,去判断产生问题所在。
2.配置文件
配置文件存放服务的设置信息,用户可以修改配置文件,以实现服务的特定功能。但是,用户的配置失误,会造成服务无法正常运行。为了减少输入引起的错误,很多服务的软件包都自带配置文件检查工具,用户可以通过这些工具对配置文件进行检查。
3.日志文件
一旦服务出现问题,不要惊慌,用组合键“Ctrl”+“Alt”+“F1”~“F6”切换到另外一个文字终端,使用tail命令来动态监控日志文件。
[root@rhel5 ~]# testparm -F /var/log/messages
step1:使用testparm命令检测。
使用testparm命令检测smb.conf文件的语法,如果报错,说明smb.conf文件设置错误。根据提示信息,去修改主配置文件,进行调试。
[root@rhel5 ~]# testparm /etc/Samba/smb.conf
step2:使用ping命令测试。
Samba服务器主配置文件排出错误后,再次重启SMB服务,如果客户端仍然无法连接Samba服务器,客户端可以使用ping命令测试。根据出现的不同情况进行分析。
Samba服务的故障排错
●如果没有收到任何提示,说明客户端TCP/IP协议安装有问题,需要重新安装该协议,然后重试。
●如果提示“host not found”(无法找到主机),那么,客户端的DNS或者/etc/hosts文件没有设置正确,确保客户端能够使用名称访问Samba服务器。
●无法ping通还可能是防火墙设置的问题。需要重新设置防火墙的规则,开启Samba与外界联系的端口。 ●还有一种可能,执行ping命令时,主机名输入错误„„更正重试!
step3:使用smbcliet命令测试。
(1)如果Samba服务器正常,并且用户采用正确的账号和密码,去执行smbclient命令可以获取共享列表。
[root@rhel5 ~]# smbclient -L 192.168.0.10 -U test%123
(2)如果接收到一个错误信息提示“tree connect failed”,如下所示。
[root@rhel5 ~]# smbclient //192.168.0.10/public -U test%123
tree connect failed:Call returned zero bytes(EOF)
说明可能在smb.conf文件中设置了host deny字段,拒绝了客户端的IP地址或域名,可以修改smb.conf,允许该客户端访问即可。
(3)如果返回信息“connection refused”(连接拒绝),如下所示。
[root@slave~]# smbclient -L 192.168.0.10
Error connecting to 192.168.0.10(Connection refused)
Connection to 192.168.0.10 failed
说明Samba服务器smbd进程可能没有开启。确保smbd和nmbd进程开启,并使用netstat -a检查netbios使用的139端口是否处在监听状态。
(4)提示信息如果为“session setup failed”(连接建立失败),表明服务器拒绝了连接请求。
[root@rhel5 ~]# smbclient -L 192.168.0.10 -U test%1234
session setup failed:NT_STATUS_LOGON_FAILURE
这是因为用户输入的账号或密码错误造成的,请更正重试。
(5)有时会收到提示信息“Your server software is being unfriendly”(你的服务器软件存在问题)。 一般是因为配置smbd时使用了错误的参数,或者启动smbd时遇到的类似严重错误。可以使用前面提到的testparm去检查相应的配置文件,并检查日志。
2.配置与管理NFS网络文件系统(掌握NFS的概念和工作原理、掌握NFS服务器的启动与停止方法、掌握NFS服务器配置文件的修改方法、掌握NFS服务器的配置方法、掌握NFS客户端的配置方法) Linux和Windows之间可以通过Samba进行文件共享,那么Linux之间怎么进行资源共享呢?这就要说到NFS(Network File System,网络文件系统),它最早是UNIX操作系统之间共享文件和操作系统的一种方法,后来被Linux操作系统完美继承。
NFS最早是由Sun公司于1984年开发出来的,其目的就是让不同计算机、不同操作系统之间可以彼此共享文件。由于NFS使用起来非常方便,因此很快得到了大多数UNIX/Linux系统的广泛支持,而且还被IETE(国际互联网工程组)制定为RFC1904、RFC1813和RFC301O标准。
1.使用NFS的好处
(1)本地工作站可以使用更少的磁盘空间,因为通常的数据可以存放在一台机器上,而且可以通过网络访
问到。
(2)用户不必在网络上每个机器中都设一个home目录,home目录可以被放在NFS服务器上,并且在网络上处处可用。
(3)诸如CD-ROM、DVD-ROM之类的存储设备可以在网络上被其它的机器使用。这可以减少整个网络上可移动介质设备的数量。
2.NFS和RPC(客户端可以将服务器上的分享目录直接加载到本地)
RPC最主要的功能就是记录每个NFS功能所对应的端口,它工作在固定端口111,当客户端需求NFS服务时,就会访问服务器的111端口(RPC),RPC会将NFS工作端口返回给客户端。
什麼是 RPC (Remote Procedure Call)
因为 NFS 支持的功能相当的多,而不同的功能都会使用不同的程序来启动, 每启动一个功能就会启用一些端口口来传输数据(端口是为了不同的应用程序更方便分拣数据!)
因此, NFS 的功能所对应的端口没有固定住, 而是随机取用一些未被使用的小于 1024 的端口来作为传输之用。
需要远程过程调用 (RPC) 的服务!RPC 最主要的功能就是在指定每个 NFS 功能所对应的 port number ,并且回报给客户端,让客户端可以连结到正确的端口上去。
那 RPC 又是如何知道每个 NFS 的埠口呢?这是因为当服务器在启动 NFS 时会随机取用数个埠口,并主动的向 RPC 注册,因此 RPC 可以知道每个端口口对应的 NFS 功能,然后 RPC 又是固定使用 port 111 来监听客户端的需求并回报客户端正确的埠口, 所以可让 NFS 的启动更为方便!
常规的NFS服务是按照如下流程进行的
(1)NFS启动时,自动选择工作端口小于1024的1011端口(这里仅是案例,实际上端口号是动态的),并向RPC(工作于111端口)汇报,RPC记录在案。
(2)客户端需要NFS提供服务时,首先向111端口的RPC查询NFS工作在哪个端口?
(3)RPC回答客户端,它工作在1011端口。
(4)于是,客户端直接访问NFS服务器的1011端口,请求服务。
(5)NFS服务经过权限认证,允许客户端访问自己的数据。
思考:RPC服务重新启动后,为何要重新启动NFS服务?
NFS服务的组件
Linux下的NFS服务主要由以下4个部分组成(Red Hat 5以前需要portmap也是必需的)。
1.主要的守护进程:rpc.nfsd
最主要的 NFS 服务器服务提供商。这个 daemon 主要的功能就是在管理客户端是否能够使用服务器文件系统挂载信息等, 其中还包含这个登入者的 ID 的判别!
2.主要的守护进程:rpc.mountd
这个 daemon 主要的功能,则是在管理 NFS 的文件系统!当客户端顺利的通过 rpc.nfsd 而登入服务器之后,在可以使用 NFS 服务器提供的文件前,还会经过文件权限的认证程序!
系统会去读 NFS 的配置文件 /etc/exports 来比对客户端的权限,当通过这一关之后客户端就可以取得使用 NFS 档案的权限啦!
3.主要的守护进程: rpc.lockd (非必要)
这个玩意儿可以用在管理档案的锁定 (lock) 用途。为何档案需要『锁定』呢?
因为既然分享的 NFS 文件可以让客户端使用,那么当多个客户端同时尝试写入某个文件时, 就可能对于该档案造成一些问题啦!这个 rpc.lockd 则可以用来克服这个问题。 但 rpc.lockd 必须要同时在客户端与服务器端都开启才行
4.主要的守护进程: rpc.statd (非必要)
可以用来检查档案的一致性,与 rpc.lockd 有关!若发生因为客户端同时使用同一档案造成档案可能有所损毁时, rpc.statd 可以用来检测并尝试回复该档案。
与 rpc.lockd 同样的,这个功能必须要在服务器端与客户端都启动才会生效。
项目设计及准备
在VMWare虚拟机中启动两台Linux系统,一台作为NFS服务器,主机名为server,规划好IP地址,比如,192.168.8.188;一台作为NFS客户端,主机名为Client,同样规划好IP地址,比如192.168.8.186。配置一个NFS服务器,使得客户机可以浏览NFS服务器中特定目录下的内容。
任务1 安装NFS服务器
1.所需要的套件
对于Red Hat Enterprise Linux 6.x来说,要启用NFS服务器,我们至少需要两个套件,它们分别是:
(1)rpcbind (注意:RHEL5 以前的版本需要对等的portmap)
(2)nfs-utils
2.查询
实际查询一下系统中是否已经安装了这两个套件。
#rpm -q nfs-unitls
nfs-unitls-1.2.3-39.e16.i686
#rpm -q rpcbind
rpcbind-0.2.0-11.e16.i686
如没有找到,则需要通过yum来安装
如:yum install rpcbind
(nfs-utils和rpcbind组件已经正确安装.)
另外,最好再查询一下NFS的各个程序是否在正常运行,命令如下。
[root@server ~]# rpcinfo -p
如果没有看到nfs和mounted选项,则说明NFS没有运行,需要启动它。
#/etc/init.d/rpcbind start
#/etc/init.d/nfs start
1.exports文件的格式(NFS 的主要配置文件)
# vim /etc/exports
/tmp 192.168.100.4/24(ro) localhost(rw) *.ev.ncku.edu.tw(ro,sync)
#共享目录 [第一台主机(权限)] [可用主机名] [其他主机名(可用通配符)]
可以使用完整的ip或者是网域,例如 192.168.100.10或192.168.100.0、24,或192.168.100.0、255。255.255.0都可以接受
也可以使用主机名,但这个主机名必须要在 /etc/hosts内,或可使用DNS找到该名称才行,重点是可找到ip就是了,如果是主机名的话,那么他可以支配通配符,例如*或?均可接受。
说明:1)/tmp分别共享给3个不同的主机或域。
2)主机后面以小括号“()”设置权限参数,若权限参数不止一个时,则以逗号分开,且主机名与小括号是连在一起的。
3)#开始的一行表示注释。
/usr/sbin/exportfs
/usr/sbin/exportfs 这个是维护 NFS 分享资源的指令,我们可以利用这个指令重新分享 /etc/exports 变更的目录资源、将 NFS Server 分享的目录卸除或重新分享等等,
/usr/sbin/showmount
客户端查询服务器分享资源的指令:/usr/sbin/showmount 这是另一个重要的 NFS 指令。
exportfs 是用在 NFS Server 端,而 showmount 则主要用在 Client 端。这个 showmount 可以用来察看 NFS 分享出来的目录资源!
在设置/etc/exports文件时需要特别注意“空格”的使用,因为在此配置文件中,除了分开共享目录和共享主机以及分隔多台共享主机外,其余的情形下都不可使用空格。例如,以下的两个范例就分别表示不同的意义: /home Client(rw)
/home Client (rw)
2.主机名规则
(1)可以使用完整的IP地址或者网段,例如192.168.0.3、192.168.0.0/24或192.168.0.0/255.255.255.0都可以接受。
(2)可以使用主机名称,这个主机名称要在/etc/hosts内或者使用DNS,只要能被找到就行(重点是可以找到IP地址)。如果是主机名称,那么它可以支持通配符,例如*或?均可以接受。
给自己的主机取个名:#hostname yuhong.com(起名)
#hostname(查询)
Hosts - The static table lookup for host name(主机名查询静态表)
hosts文件是Linux系统中一个负责IP地址与域名快速解析的文件,以ASCII格式保存在“/etc”目录下,文件名为“hosts”
5.权限规则
6.至于权限方面(就是小括号内的参数),常见的参数则有以下几种。
●rw:read-write,可读/写的权限。
●ro:read-only,只读权限。
●sync:数据同步写入到内存与硬盘当中。
●async:数据会先暂存于内存当中,而非直接写入硬盘。
●no_root_squash:登录NFS主机使用共享目录的用户,如果是root,那么对于这个共享的目录来说,它就具有root的权限。这个设置“极不安全”,不建议使用。
/etc/exports的内容:/tmp 192.168.0.24/24(rw) localhost(rw) *(ro)
5.权限规则
●root_squash:在登录NFS主机使用共享目录的用户如果是root,那么这个用户的权限将被压缩成匿名用户,通常它的UID与GID都会变成nobody(nfsnobody)这个系统账号的身份。
●all_squash:不论登录NFS的用户身份如何,它的身份都会被压缩成匿名用户,即nobody(nfsnobody)。 ●anonuid:anon是指anonymous(匿名者),前面关于术语squash提到的匿名用户的UID设定值,通常为nobody(nfsnobody),但是你可以自行设定这个UID值。当然,这个UID必须要存在于你的/etc/passwd当中。
●anongid:同anonuid,但是变成Group ID就可以了。
任务3 启动与停止NFS服务器
1.启动NFS服务
RHEL 5:
[root@server ~]# service portmap start
[root@server ~]# service nfs start
2.停止NFS服务
[root@server ~]# service nfs stop
4.让NFS服务自动运行
终端窗口输入:ntsysv 用空格选中自动运行的服务(nfs)
5.重启NFS服务
[root@server ~]# service nfs restart
任务5 在客户端挂接NFS文件系统
1.查看NFS服务器信息:#showmount [-adehv][ServerName]
参数说明:
-a--all()
-d--directories()
-e--exports(查看服务器上的NFS共享资源)
-h--help()
-v--version()
2.加载NFS服务器共享目录
[root@Client ~]# mount -t NFS 服务器名称或地址:输出目录 挂载目录
比如,要加载192.168.0.3这台服务器上的/exporst/rhel目录,则需要依次执行以下操作。
(1)创建本地目录。
首先在客户端创建一个本地目录,用来加载NFS服务器上的输出目录。
# mkdir /mnt/nfs
(2)加载服务器目录。
再使用相应的mount命令加载。
# mount -t nfs 192.168.0.3:/exports/rhel /mnt/nfs
5.使用时自动挂接
自动挂接的主配置文件是/etc/auto.master。在这个文件中配置自动加载的语法格式为:
mountPoint map-name
参数说明。
●MountPoint:指定autofs的挂接点,比如/home。
●map-name:设置挂接点文件,里面包含所有自动挂接到MountPoint下的资源列表。
任务6 排除NFS故障
常见的故障点划分为3个:网络、客户端或者服务器。
1.网络: 对于网络的故障,主要有两个方面的常见问题。
(1)网络无法连通。
(2)无法解析主机名。
2.客户端
客户端在访问NFS服务器时,多使用mount命令,下面将列出常见的错误信息以供参考。
(1)服务器无响应:端口映射失败-RPC超时。
(2)服务器无响应:程序未注册。
(3)拒绝访问。
(4)不被允许。
3. 服务器
(1)NFS服务进程状态。
使用rpcinfo命令,可以查看RPC的相应信息,命令格式如下:
rpcinfo -p 主机名或IP地址
(2)注册NFS服务。
需要确认NFS服务已经进行注册。rpcinfo命令能够提供检测功能,命令格式如下所示:
rpcinfo -u 主机名或IP 进程
(3)检测共享目录输出。
客户端如果无法访问服务器的共享目录,可以登录服务器,进行配置文件的检查。确保/etc/exports文件设定共享目录,并且客户端拥有相应权限。通常情况下,使用showmount命令能够检测NFS服务器的共享目录输出情况。
#showmount -e server
作业
一台NFS服务器,地址192.168.205.2。配置一个NFS服务器,使得客户机可以浏览NFS服务器中/home/ftp目录下的内容,但不可以修改。要求写出服务器中的配置文件和启动NFS服务器的配置方法。
完成本课程中的项目,并写出实现的具体过程和配置命令。
5.管理Linux服务器
1)Linux是一个类UNIX操作系统,Linux操作系统一般由以下3个主要部分组成:内核(Kernel),命令解释层(Shell或其他操作环境),实用工具
内核是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序。
Linux内核的源代码主要用C语言编写,只有部分与驱动相关的用汇编语言编写。
Linux内核采用模块化结构,其主要模块包括:存储管理、CPU和进程管理、文件系统管理、设备管理和驱动、网络通信以及系统的引导、系统调用等。
Linux内核的源代码通常安装在/usr/src目录,可供用户查看和修改。
Linux允许用户根据自己机器的实际配置定制Linux的内核。
用户在安装Linux后可以下载最新版本的Linux内核,进行内核编译后升级计算机的内核,就可以使用到内核最新的功能。
2)Linux Shell
Shell(命令解释器)是系统的用户界面,提供用户与内核进行交互操作的接口。它接收用户输入的命令,并且把它送入内核去执行。
操作环境在操作系统内核与用户之间提供操作界面,它可以描述为一个解释器。操作系统对用户输入的命令进行解释,再将其发送到内核。Linux拥有桌面(desktop)、窗口管理器(window manager)和命令行shell(command line shell)等几种操作环境。
3)Linux系统的实用工具可以分为以下三类:
编辑器:用于编辑文件。 Linux的编辑器主要有:Ed、Ex、Vi和Emacs。Ed和Ex是行编辑器,Vi和Emacs是全屏幕编辑器。
过滤器:用于接收数据并过滤数据。 Linux的过滤器(Filter)读取从用户文件或其他地方的输入,检查和处理数据,然后输出结果。
交互程序:是用户与机器的信息接口,允许用户发送信息或接收来自其他用户的信息。
4)Linux的版本号分为两种:内核版和发行版 。
内核版本是指在Linus领导下的内核小组开发维护的系统内核的版本号。
发行版本是一些组织和公司根据自己发行版的不同而自定的 。
Linux内核版本的版本号格式通常为: “主版本号.次版本号.修正号”
主版本号和次版本号标志着重要的功能变动。
修正号表示较小的功能变更。
内核版本是由Linux内核社区统一进行发布的
次版本号为奇数,则此版本为开发板,若为偶数,则为稳定版。
末版本号为修订次数。
5)Red Flag Linux是目前影响力最为广泛的国产中文Linux操作系统。
6)自2002年起,Red Hat将产品分成Red Hat Enterprise Linux(RHEL)服务器版和Fedora Core(FC)桌面版。这就意味着不可能看到Red Hat Linux 10.0的版本,取而代之的是RHEL服务器版或FC桌面版。
7)Red Hat公司大约每18个月就会发行一个新的Red Hat企业版本。
小资料:什么是SELinux?
SELinux的全称是Security Enhanced Linux。是由美国国家安全部(National Security Agency)领导开发的GPL项目,它拥有一个灵活而强制性的访问控制结构,旨在提高Linux系统的安全性,提供强健的安全保证,可防御未知攻击,据称相当于B1级的军事安全性能。应用SELinux后,可以减轻恶意攻击或恶意软件带来的灾难,并对机密性和完整性有很高要求的信息提供安全保障。
8)设计与准备搭建Linux服务器 硬件的基本要求
●CPU:需要Pentium以上处理器。
●内存:对于x86、AMD64/Intel64和Itanium2架构的主机,最少需要512MB的内存,如果主机是IBM Power系列,则至少需要1 GB的内存(推荐2GB)。
●硬盘:必须保证有大于1GB的空间。
●显卡:需要VGA兼容显卡。
●光驱:CD-ROM或者DVD。
●其他:兼容声卡、网卡等。
9)多重引导
LILO是最早出现的Linux引导装载程序之一,其全称为Linux Loader。早期的Linux发行版本中都以LILO作为引导装载程序。
GRUB比LILO晚出现,其全称是GRand Unified Bootloader。GRUB不仅具有LILO的绝大部分功能,并且还拥有漂亮的图形化交互界面、方便的操作模式。因此,包括Red Hat在内的越来越多Linux发行版本转而将GRUB作为默认安装的引导装载程序。
10)磁盘分区
硬盘上最多只能有四个主分区,其中一个主分区可以用一个扩展分区来替换。也就是说主分区可以有1~4个,扩展分区可以有0~1个,而扩展分区中可以划分出若干个逻辑分区。
分区方案
对于初次接触Linux的用户来说,分区方案越简单越好,所以最好的选择就是为Linux装备两个分区,一个是用户保存系统和数据的根分区(/),另一个是交换分区。其中交换分区不用太大,与物理内存同样大小即可;根分区则需要根据Linux系统安装后占用资源的大小和所需要保存数据的多少来调整大小(一般情况下,划分15~20GB就足够了)。
Linux的所有设备均表示为/dev目录中的一个文件。
11)硬盘分区的文件名表示
/dev(所有硬件设备文件的目录)/hd(硬件设备的代号,hd代表IDE设备,sd代表SCSI设备)a(同类型设备的编号,a代表第一个硬盘,b代表第二个硬盘,如此类推)5(分区号)
/dev/hda5 用文件来表示硬件设备
什么是LVM?
LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
目标:在零停机前提下可以自如对文件系统的大小进行调整,可以方便实现文件系统跨越不同磁盘和分区。 Linux提供的逻辑盘卷管理(LVM,Logical Volume Manager)机制可在不停机的情况下动态调整各个分区的大小,并且保持原有的文件系统不变。
usr最早是user的缩写,通常被认为是 User System Resources 的缩写,其中通常是用户级的软件等,与存放系统级文件的根目录形成对比。/var中包括了一些数据文件,如系统日志等。
/tmp目录用以保存临时文件。
为了加快临时文件的访问速度,有的实现把/tmp放在内存中。
什么是kdump?
kdump是在系统崩溃、死锁或者死机的时候用来转储内存运行参数的一个工具和服务。
如果系统一旦崩溃那么正常的内核就没有办法工作了,在这个时候将由kdump产生一个用于capture当前运行信息的内核,该内核会将此时的内存中的所有运行状态和数据信息收集到一个dump core文件中以便于Red Hat工程师分析崩溃原因,一旦内存信息收集完成,系统将自动重启
子任务3 认识Linux启动过程和运行级别
init0 和init1
linux 0号进程和1号init进程
进程0:Linux引导中创建的第一个进程,完成加载系统后,演变为进程调度、交换及存储管理进程 进程1:init 进程,由0进程创建,完成系统的初始化,是系统中所有其它用户进程的祖先进程
2.INIT进程
inittab文件作为INIT进程的配置文件,用于描述系统启动时和正常运行中所运行的那些进程。
3.系统运行级别
这些级别在/etc/inittab文件里指定。各运行级别的含义如下。
●0:停机,不要把系统的默认运行级别设置为0,否则系统不能正常启动。
●1:单用户模式。
●2:字符界面的多用户模式,在该模式下不能使用NFS。
●3:字符界面的完全多用户模式,主机作为服务器时通常在该模式下。
●4:未分配。
●5:图形界面的多用户模式,用户在该模式下可以进入图形登录界面。
●6:重新启动,不要把系统默认运行级别设置为6,否则系统不能正常启动。
(1)查看系统运行级别。
runlevel命令用于显示系统当前的和上一次的运行级别。例如:
[student@Yuhong ~]$ runlevel
N 5
(2)改变系统运行级别。
使用init命令,后跟相应的运行级别作为参数,可以从当前的运行级别转换为其他运行级别。例如:
[root@Yuhong ~]# init 2
[root@ Yuhong ~]# runlevel
5 2
子任务4 删除Red Hat Enterprise Linux
1.删除Linux引导记录
一般可以通过DOS/Windows自带的Fdisk小工具来完成。
删除Red Hat Enterprise Linux 6.5的引导信息,需要借助DOS/Windows下的分区工具Fdisk。只需要启
动到DOS或者Windows下,然后在命令行窗口输入以下指令即可:
fdisk /MBR
2.删除Linux分区
通过第三方分区工具或者Linux急救盘中自带的parted,就可以删除Linux分区。
① 输入以下指令启动到急救模式。
boot:linux rescue
② 输入以下指令,用分区工具打开指定硬盘:
parted /dev/sda
③ parted的指令很多,
④ 比如,删除ID号为2的数据分区:
rm 2
子任务5 Linux的登录和退出
(2)文本模式登录。
在终端窗口(或者直接右键单击桌面,选择“终端”命令)输入“init 3”命令,即可进入文本登录模式;如果在命令行窗口下输入“init 5”或“start x”命令可进入图形界面。
子任务6 启动Shell
1.使用Linux系统的终端窗口
一般用户,可以直接右键单击桌面,选择“终端”命令。
执行以上命令后,就打开了一个白底黑字的命令行窗口,在这里我们可以使用Red Hat Enterprise Linux 6.5支持的所有命令行指令。
2.使用Shell提示符
进入纯命令行窗口之后,还可以使用“A1t”+“Fl”~“A1t”+“F6”组合键在6个终端之间切换,每个终端可以执行不同的指令,进行不一样的操作。
登录之后,普通用户的命今行提示符以“$”号结尾,超级用户的命令以“#”号结尾。
[yy@localhost ~]$ ;一般用户以“$”号结尾
;切换到root账号 [yy@localhost ~]$ su root
Password:
[root@localhost ~]# ;命令行提示符变成以“#”号结尾了
当用户需要返回图形桌面环境时,也只需要按下“Ctrl”+“Alt”+“F7”组合键,就可以返回到刚才切换出来的桌面环境。
使用任何文本编辑器打开/etc/inittab文件,找到如下所示的行:
id:5:initdeafault
将它修改为:
id:3:initdeafault
重新启动系统你就会发现,它登录的是命令行而不是图形界面。
提示:要想让Red Hat Enterprise Linux 6.5直接启动到图形界面,可以按照上述操作将“id:3”中的“3”修改为“5”;也可以在纯命令行模式,直接执行“startx”命令打开图形模式。
1.4.1 什么是X-Window System
X-Window System是一套工作在Unix计算机上的优良的窗口系统,最初是麻省理工学院的一个研究项目,现在是类Unix系统中图形用户界面的工业标准。X-Window System与设备无关。
X-Window System的主要特征:
X-Window System本身就是基于Client/Server的结构建立的,具有网络操作的透明性。
支持许多不同风格的操作界面。
X-Window System不是操作系统必需的构成部分。
X-Window System是开源项目,可以通过网络或者其他途径免费获得源代码。
X-Window System由三部分构成:
X Server:控制实际的显示与输入设备。X Server是控制显示器和输入设备的软件。
X Client:向X Server发出请求以完成特定的窗口操作。X Client是使用操作系统窗口功能的一些应用程序。
通信通道:负责X Server与X Client之间的通信。通信通道是X Server和X Client之间传输信息的通道。
通信通道根据X Server和X Client所在位置的不同,可以分为两种情况:
X Server和X Client位于同一台计算机上,他们之间可以使用计算机上任何可用的进程通信方式进行交互。 X Server和X Client位于不同的计算机上,他们之间的通信必须通过网络进行,需要相关网络协议的支持。
1. 简述架设samba服务的几个步骤。(4分)
答:添加合法的samba用户(前提是samba用户必须是系统用户)。
设置本地用户的共享目录。
设置共享目录的本地系统权限。
重启samba服务。
2. 简述ftp的主动模式及被动模式的工作原理。(4分)
答:PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。
PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。
3. 简述DHCP的首次获得IP租约工作过程。(4分)
答:客户机从DHCP服务器获得IP地址的过程称为DHCP租约过程。租约过程分为四个步骤:
1) 客户机请求IP地址:
DHCP客户机在网络中广播一个DHCP Discover包以请求IP地址。DHCP Discover包的源IP地址是0.0.0.0,目的IP地址是255.255.255.255,该包还包含客户机的MAC地址和计算机名。
2) 服务器响应请求:
当DHCP服务器接收到客户机请求IP地址的信息时,如果自己的IP地址库中有合法的IP地址提供给客户机,DHCP服务器就会广播一个DHCP Offer包。如果网络中存在多台DHCP服务器,则这些服务器都会广播DHCP Offer包。
3) 客户机选择IP地址:
客户机从接收到的第一个DHCP Offer包中选择IP地址,并将DHCPRequest包广播到所有DHCP服务器。DHCP Request包的信息包含为该客户机提供IP配置的服务器的服务器标识(IP地址)。DHCP服务器查看服务器标识字段,以确定自己是否被选择为指定的客户机提供IP地址。
4) 服务器确认IP租约:
DHCP服务器接收到DHCP Request包后,以DHCP ACK消息的形式向客户机广播成功的确认,该消息包含IP地址的有效租约和其他配置信息。当客户机收到DHCP ACK包时,它就配置完成了IP地址。
4. DNS服务器的类型有哪些?其作用是什么?(4分)
答:缓存域名服务器
1. 也称为 唯高速缓存服务器
2. 通过向其他域名服务器查询获得域名->IP地址记录
3. 将域名查询结果缓存到本地,提高重复查询时的速度
主域名服务器
1. 特定DNS区域的官方服务器,具有唯一性
2. 负责维护该区域内所有域名->IP地址的映射记录
从域名服务器
1. 也称为 辅助域名服务器
2. 其维护的 域名->IP地址记录 来源于主域名服务器
5. 简述在mysql数据库中增加用户guest的方法。当用户增加后仍不能够正常访问,原因是什么?如何解
决?(4分)
答:以MySQL管理员身份从本地连接到数据库服务器,可使用下面的命令实现:
mysql -u root -p
创建新用户guest,并为他设置密码,同时允许它从任何主机连接到数据库服务器,可使用下面的命令实现:
mysql>insert into mysql.user (host,user,password)
->values ('%', 'guest',password('guest'));
若不能正常访问,很可能是没有授权,可以使用如下语句授权:
Grant all on *.* to guest @’localhost’ identified by ‘key’;
四、 综合题(共35分)
1. 配置一台Linux服务器,其IP地址是192.168.0.102,子网掩码是255.255.255.0,默认网关是
192.168.0.1。在考生目录下已有vsftpd.conf文件。准备工作已好,主要修改配置文件。(5分) 要求 :
a) 匿名上传时只能把客户端的文件上传到服务器的/var/ftp/incoming文件夹中。
b) 创建一个管理员帐号lupa,它对于匿名上传的文件有上传,下载和修改权限。
操作:打开主配置文件并修改:
# Example config file /etc/vsftpd.conf
anonymous_enable=___YES___ #控制是否允许匿名用户登录
anon_upload_enable=__YES___ #允许匿名上传
___chown_uploads___=YES
chown_username=___lupa_____ anon_umask =077
2. 现使用Apache架设一个Web服务器。
要求:
a) 在该服务器上有一个主机名为myweb.test.com的named-based虚拟主机。
b) DNS已设置完毕,
c) 能正确将该主机名翻译成IP:210.45.1.88,默认端口为80。
d) 该虚拟主机的主页存放目录为/var/myweb/html,
e) 只允许域名为test.com的主机访问。
请完成httpd.conf文件的空白。(10分)
#前面部分省略
ServerAdmin tom@test.com DocumentRoot /var/myweb/html ServerName myweb.test.com
Options Indexes FollowSymLinks ExecCGI AllowOverride None Order allow,deny allow from test.com NameVirtualHost 210.45.1.88
Errorlog logs/myweb/error_log
Customlog logs/myweb/access_log common
3. 现构建一台DNS服务器,请填写下面的空白。要求如下: (10分)
1) DNS的区域记录文件存放在/var/named目录。
2) 根域为高速缓存服务器。
3) exam.com域是主DNS服务器,同时能实现反向解析。
4) aust.edu.cn域为辅助DNS服务器,其主DNS服务器为2120.45.144.18。 options { directory " /var/named ";
#................
};
#无关部分已作省略 zone " . " IN { type hint ;
file "named.ca";
};
zone "aust.edu.cn" IN {
type slave;
file "aust.zone"; master{212.45.144.18} ;
};
zone "exam.com" IN {
type master ;
file "exam.zone";
allow-update { none; };
}; zone "1.45.210.in- addr.arpa " IN {
type master ;
file "exam.rev";
allow-update { none; };
}; include "/etc/rndc.key";
4. 请说明在DHCP服务器中配置文件dhcpd.conf文件(部分)的每行的含义。(10分)
ddns-update-style interim;// 配置DDNS互动更新模式
#...................
subnet 210.45.1.0 netmask 255.255.255.0 {
option routers
option domain-name 210.45.1.1;// 为客户设置默认的网关 210.45.1.255;// 设置客户广播域地址 option broadcast-address "exam.com";
option domain-name-servers 210.45.1.8,210.45.1.18;
#. 设置客户指明的DNS域名和DNS服务器的IP地址
range dynamic-bootp 210.45.1.50 210.45.1.60;// 说明要分配的IP地址的范围
default-lease-time 21600;// 指明默认的地址租期
max-lease-time 43200;// 用户可获得的最长租期时间
host dns {// 为特定的DHCP客户机提供IP网络层参数
hardware ethernet DF:34:32:78:AB:CD;// 指定硬件接口的类型及硬件地址
fixed-address 210.45.1.58;// 为客户机分配的IP地址 。
}
}
1. 简述samba服务器的工作原理。4分
答:① 首先客户端发送一个SMB negprot请求数据报,并列出它所支持的所有SMB协议版本。服务器收到请求信息后响应请求,并列出希望使用的协议版本。如果没有可使用的协议版本则返回0XFFFFH,结束通信。
② 协议确定后,客户端进程向服务器发起一个用户或共享的认证,这个过程是通过发送SesssetupX请求数据报实现的。客户端发送一对用户名和密码或一个简单密码到服务器,然后服务器通过发送一个SesssetupX应答数据报来允许或拒绝本次连接。
③ 当客户端和服务器完成了磋商和认证之后,它会发送一个Tcon或TconX SMB数据报并列出它想访问网络资源的名称,之后服务器会发送一个TconX应答数据报以表示此次连接是否被接受或拒绝。
④ 连接到相应资源后,SMB客户端就能够通过open SMB打开一个文件,通过read SMB读取文件,通过write SMB写入文件,通过close SMB关闭文件
2. 说出几种常见的数据库,并说出mysql数据库的优点。4分
答:SQL Server MySQL:Oracle Sybase DB2 Access数据库、FoxPro数据库
MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass- deployed)的软件中去。
(1)MySQL是一个关系数据库管理系统。
(2)MySQL是开源的。
(3)MySQL服务器是一个快速的、可靠的和易于使用的数据库服务器。
(4)MySQL服务器工作在客户/服务器或嵌入系统中。
(5)有大量的MySQL软件可以使用。
3. 简述DHCP的首次获得IP租约工作过程。4分
答:客户机从DHCP服务器获得IP地址的过程称为DHCP租约过程。租约过程分为四个步骤:
1) 客户机请求IP地址:
DHCP客户机在网络中广播一个DHCP Discover包以请求IP地址。DHCP Discover包的源IP地址是0.0.0.0,目的IP地址是255.255.255.255,该包还包含客户机的MAC地址和计算机名。
2) 服务器响应请求:
当DHCP服务器接收到客户机请求IP地址的信息时,如果自己的IP地址库中有合法的IP地址提供给
客户机,DHCP服务器就会广播一个DHCP Offer包。如果网络中存在多台DHCP服务器,则这些服务器都会广播DHCP Offer包。
3) 客户机选择IP地址:
客户机从接收到的第一个DHCP Offer包中选择IP地址,并将DHCPRequest包广播到所有DHCP服务器。DHCP Request包的信息包含为该客户机提供IP配置的服务器的服务器标识(IP地址)。DHCP服务器查看服务器标识字段,以确定自己是否被选择为指定的客户机提供IP地址。
4) 服务器确认IP租约:
DHCP服务器接收到DHCP Request包后,以DHCP ACK消息的形式向客户机广播成功的确认,该消息包含IP地址的有效租约和其他配置信息。当客户机收到DHCP ACK包时,它就配置完成了IP地址。
4. DNS相关文件主要有哪些?在安装cache-nameserver后分别存放在什么地方?4分
答:主配置文件、根域数据文件、正向区域数据文件、反向区域数据文件
安装后:
主配置文件named.conf位于/var/named/chroot/etc/
其他相关配置文件由主配置文件中的options选项的Directory指定,一般位于:
/var/named/chroot/var/named。
5. 简述在mysql数据库中增加用户的方法。当用户增加后仍不能够正常访问,原因是什么?如何解决?4分
答:以MySQL管理员身份从本地连接到数据库服务器,可使用下面的命令实现:
mysql -u root -p
创建新用户guest,并为他设置密码,同时允许它从任何主机连接到数据库服务器,可使用下面的命令实现:
mysql>insert into mysql.user (host,user,password)
->values ('%', 'guest',password('guest'));
若不能正常访问,很可能是没有授权,可以使用如下语句授权:
Grant all on *.* to guest @’localhost’ identified by ‘key’;
四、 综合题(共30分)
1. 在企业网络的内部有windows服务器和linux服务器,在linux服务器的根目录上有abc目录,要求
将该目录利用samba服务器共享出来,其共享名为public,用户lili可以访问该目录(注:当前没有lili该系统用户),只有读取权限。请写出samba服务器的配置文件中,关于添加用户及共享该abc目录的配置部分。(10分)
答:useradd lili 2分
passwd lili 1分
smbpasswd –a lili 2分
主配置文件中:
[public] 1分
path = /abc 1分
browsable = yes 1分
readonly = yes 1分
valid users = lili 1分
2. 现使用Apache架设一个Web服务器。
要求:
a) 在该服务器上有一个主机名为myweb.test.com的named-based虚拟主机。 b) DNS已设置完毕,
c) 能正确将该主机名翻译成IP:210.45.1.88,默认端口为80。
d) 该虚拟主机的主页存放目录为/var/myweb/html,
e) 只允许域名为test.com的主机访问。
请完成httpd.conf文件的空白。(10分)
#前面部分省略 NameVirtualHost 210.45.1.88
ServerAdmin tom@test.com DocumentRoot /var/myweb/html ServerName myweb.test.com
Options Indexes FollowSymLinks ExecCGI AllowOverride None Order allow,deny allow from test.com
Errorlog logs/myweb/error_log
Customlog logs/myweb/access_log common
1.配置与管理Samba服务器(掌握Samba服务器的安装、配置与调试.)
1.1 了解Samba应用环境
●文件和打印机共享:文件和打印机共享是Samba的主要功能,SMB进程实现
资源共享,将文件和打印机发布到网络之中,以供用户可以访问。
●身份验证和权限设置:smbd服务支持user mode和domain mode等身份验证和权限设置模式,通过加密方式可以保护共享的文件和打印机。
●名称解析:Samba通过nmbd服务可以搭建NBNS(NetBIOS Name Service)服务器,提供名称解析,将计算机的NetBIOS名解析为IP地址。
●浏览服务:局域网中,Samba服务器可以成为本地主浏览服务器(LMB),保存可用资源列表,当使用客户端访问Windows网上邻居时,会提供浏览列表,显示共享目录、打印机等资源。
1.2 SMB(Server Message Block)通信协议可以看作是局域网上共享文件和打印机的一种协议。它是Microsoft和Intel在1987年制定的协议,主要是作为Microsoft网络的通信协议,而Samba则是将SMB协议搬到UNIX系统上来使用。
通过“NetBIOS over TCP/IP”使用Samba不但能与局域网络主机共享资源,也能与全世界的计算机共享资源。因为互联网上千千万万的主机所使用的通信协议就是TCP/IP。SMB是在会话层和表示层以及小部分的应用层的协议,SMB使用了NetBIOS的应用程序接口API。另外,它是一个开放性的协议,允许协议扩展,这使得它变得庞大而复杂,大约有65个最上层的作业,而每个作业都超过120个函数。
Samba服务功能强大,这与其通信基于SMB协议有关。SMB不仅提供目录和打印机共享,还支持认证、权限设置。在早期,SMB运行于NBT协议(NetBIOS over TCP/IP)上,nmbd监听UDP协议的137、138、smbd监听TCP协议的139端口,后期SMB经过开发,可以直接运行于TCP/IP协议上,没有额外的NBT层,使用TCP协议的445端口。
1.4 Samba工作流程。
当客户端访问服务器时,信息通过SMB协议进行传输,其工作过程可以分成4个步骤。
① 协议协商。客户端在访问Samba服务器时,发送negprot指令数据包,告知目标计算机其支持的SMB类型。Samba服务器根据客户端的情况,选择最优的SMB类型并做出回应。
② 建立连接。当SMB类型确认后,客户端会发送session setup指令数据包,提交账号和密码,请求与Samba服务器建立连接,如果客户端通过身份验证,Samba服务器会对session setup报文做出回应,并为用户分配唯一的UID,在客户端与其通信时使用。
③ 访问共享资源。客户端访问Samba共享资源时,发送tree connect指令数据包,通知服务器需要访问的共享资源名,如果设置允许,Samba服务器会为每个客户端与共享资源连接分配TID,客户端即可访问需要的共享资源。如图2-3所示。
④ 断开连接。共享使用完毕,客户端向服务器发送tree disconnect报文关闭共享,与服务器断开连接。
1.5 Samba相关进程。
Samba服务是由两个进程组成,分别是nmbd和smbd。
●nmbd:其功能是进行NetBIOS名解析,并提供浏览服务显示网络上的共享资源列表。
●smbd:其主要功能就是用来管理Samba服务器上的共享目录、打印机等,主要是针对网络上的共享资源进行管理的服务。当要访问服务器时,要查找共享文件,这时我们就要依靠smbd这个进程来管理数据传输。
1.6 使用rpm -qa |grep samba命令检测系统是否安装了Samba相关性软件包
如果系统还没有安装Samba软件包,我们可以使用rpm命令安装所需软件包。
1.7 什么是yum
Yum(全称为Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE、CentOS中的Shell前端软件包管理器。
基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装
1.8 Samba所需软件
在我们安装Samba服务之前,先来了解一下其所需要的软件包以及它们的用途。
Samba-3.0.33-3.7.el5.i386.rpm:该包为Samba服务的主程序包。服务器必须安装该软件包,后面的数字为版本号。
Samba-client-3.0.33-3.7.el5.i386.rpm:该包为Samba的客户端工具,是连接服务器和连接网上邻居的客户端工具并包含其测试工具
Samba-swat-3.0.33-3.7.el5.i386.rpm:当安装了这个包以后,就可以通过浏览器(比如IE等)来对Samba服务器进行图形化管理。
1.9.1 安装Samba服务
//挂载光盘到 / media下
[root@rhel5 ~]# mount /dev/cdrom /media
//进入安装文件所在目录
[root@rhel5 ~]# cd /media/Server
//安装相应的软件包
[root@rhel5 Server]#rpm –ivh samba-3.0.33-3.7.el5.i386.rpm
1.9.2
Samba服务的启动
#service smb start 或者 # /etc/rc.d/init.d/smb start
Samba服务的停止
# service smb stop //或者 # /etc/rc.d/init.d/smb stop
自动加载Samba服务:我们可以使用chkconfig命令自动加载SMB服务
[root@rhel5 ~]# chkconfig --level 3 smb on #运行级别3自动加载
[root@rhel5 ~]# chkconfig --level 3 smb off #运行级别3不自动加载
1.9.3
基本的Samba服务器的搭建流程主要分为4个步骤。
(1)编辑主配置文件smb.conf,指定需要共享的目录,并为共享目录设置共享权限。
(2)在smb.conf文件中指定日志文件名称和存放路径。
(3)设置共享目录的本地系统权限。
(4)重新加载配置文件或重新启动SMB服务,使配置生效。
1.9.4 Samba服务器配置的工作流程
① 客户端请求访问Samba服务器上的Share共享目录。
② Samba服务器接收到请求后,会查询主配置文件smb.conf,看是否共享了Share目录,如果共享了这个目录则查看客户端是否有权限访问。
③ Samba服务器会将本次访问信息记录在日志文件之中,日志文件的名称和路径都需要我们设置。 ④ 如果客户端满足访问权限设置,则允许客户端进行访问。
1.9.5 主要配置文件smb.conf
Samba的配置文件一般就放在/etc/samba目录中,主配置文件名为smb.conf。如果把Samba服务器比喻成一个公共图书馆,那么在/etc/samba目录中,主配置文件/etc/samba/smb.conf文件就相当于这个图书馆的图书总目录,记录着大量的共享信息和规则,所以该文件是Samba服务非常重要的核心配置文件,几乎绝大部分的配置文件都在该文件中进行。此外,在smb.conf这个配置文档中本身就含有非常丰富的说明,所以在我们配置之前可以先看一下这些说明性的文字。
使用ll命令查看smb.conf文件属性,并使用命令:vim /etc/samba/smb.conf查看文件的详细内容。# ll /etc/samba/ # vim /etc/samba/smb.conf
1.9.6 Samba配置简介
Smb.conf文件的开头部分为Samba配置简介,告诉我们Smb.conf文件的作用及相关信息。 smb.conf中以“#”开头的为注释,为用户提供相关的配置解释信息,方便用户参考,不用修改它。
smb.conf中还有以“;”开头的,这些都是Samba配置的格式范例,默认是不生效的,可以通过去掉前面的“;”并加以修改来设置想使用的功能。
Global Settings设置为全局变量区域。该部分以[global]开始.
smb.conf配置通用格式,对相应功能进行设置:字段=设定值。
[global]常用字段及设置方法如下所示。
(1)设置工作组或域名称。
工作组是网络中地位平等的一组计算机,可以通过设置workgroup字段来对Samba服务器所在工作组或域名进行设置。比如:workgroup=SmileGroup。
(2)服务器描述。
服务器描述实际上类似于备注信息,在一个工作组中,可能存在多台服务器,为了方便用户浏览,我们可以在server string配置相应描述信息,这样用户就可以通过描述信息知道自己要登录哪台服务器了。
比如:server string=Samba Server One。
(3)设置Samba服务器安全模式。
Samba服务器有share、user、server、domain和ads 5种安全模式,用来适应不同的企业服务器的需求。比如:security=share。
① share安全级别模式。客户端登录Samba服务器,不需要输入用户名和密码就可以浏览Samba服务器的资源,适用于公共的共享资源,安全性差,需要配合其他权限设置,保证Samba服务器的安全性。 ② user安全级别模式。客户端登录Samba服务器,需要提交合法账号和密码,经过服务器验证才可以访问共享资源,服务器默认为此级别模式。
③ server安全级别模式。客户端需要将用户名和密码提交到指定的一台Samba服务器上进行验证,如果验证出现错误,客户端会用user级别访问。
④ domain安全级别模式。如果Samba服务器加入Windows域环境中,验证工作将由Windows域控制器负责,domain级别的Samba服务器只是成为域的成员客户端,并不具备服务器的特性,Samba早期的版本就是使用此级别登录Windows域的。
⑤ ads安全级别模式。当Samba服务器使用ads安全级别加入到Windows域环境中,就具备了domain安全级别模式中所有的功能并可以具备域控制器的功能。
3.Share Definitions共享服务的定义
(1)设置共享名。
共享资源发布后,必须为每个共享目录或打印机设置不同的共享名,给网络用户访问时使用,并且共享名可以与原目录名不同。
共享名设置非常简单,格式为: Samba服务器中有个目录为/share,需要发布该目录成为共享目录,定义共享名为public
[public]
Comment = share
Path = /share
Public = yes
(2)共享资源描述。
网络中存在各种共享资源,为了方便用户识别,可以为其添加备注信息,以方便用户查看时知道共享资源的内容是什么。格式:comment = 备注信息
Comment = share(备注信息)
Path = /share
Public = yes
(3)共享路径。
共享资源的原始完整路径,可以使用path字段进行发布,务必正确指定。
格式:Comment = share
Path = /share(绝对地址路径)
Public = yes(设置匿名访问)
(4)设置匿名访问。
设置是否允许对共享资源进行匿名访问,可以更改public字段。
格式:public = yes #允许匿名访问
public = no #禁止匿名访问
(5)设置访问用户。
如果共享资源存在重要数据的话,需要对访问用户审核,我们可以使用valid users字段进行设置。( Samba服务器/share/tech目录存放了公司技术部数据,只允许技术部员工和经理访问,技术部组为tech,经理账号为mang。)
格式:valid users = 用户名
valid users = @组名
[tech]
comment=tecch
path=/share/tech
valid users=@tech,mang
(6)设置目录只读。
共享目录如果限制用户的读写操作,我们可以通过readonly实现。(Samba服务器公共目录/public存放大量共享数据,为保证目录安全我们只允许读取,禁止写入。)
格式:Read only = yes #只读
Read only = no #读写
[public]
comment=public
path=/public
public=yes
read only=yes
(7)设置目录可写。 [homes]为特殊共享目录,表示用户主目录。[printers]表示共享打印机
如果共享目录允许用户写操作,可以使用writable或write list两个字段进行设置。(某公司需要添加Samba服务器作为文件服务器,工作组名为Workgroup,发布共享目录/share,共享名为public,这个共享目录允许所有公司员工访问。)
writable格式: writable = yes #读写
writable = no #只读
write list格式:
write list = 用户名
write list = @组名
这个案例属于Samba的基本配置,我们可以使用share安全级别模式,既然允许所有员工访问,则需要为每个用户建立一个Samba账号,那么如果公司拥有大量用户呢?1 000个用户,100 000个用户,一个个设置会非常麻烦,我们可以通过配置security=share来让所有用户登录时采用匿名账户nobody访问,这样实现起来非常简单。
step1:建立share目录,并在其下建立测试文件。
[root@rhel5 ~]# mkdir /share
[root@rhel5 ~]# touch /share/test_share.tar
step2:修改Samba主配置文件smb.conf。
[root@rhel5 ~]# vim /etc/Samba/smb.conf 修改配置文件,并保存结果。
share服务器实例解析
[global]
workgroup = Workgroup #设置Samba服务器工作组名为Workgroup
server string = File Server #添加Samba服务器注释信息为“File Server”
security = share #设置Samba安全级别为share模式,允许用户匿名访问
; passdb backend = tdbsam
smb passwd file = /etc/samba/smbpasswd
[public] #设置共享目录的共享名为public
comment=public
path=/share
guest ok=yes
public=yes
step3:重新加载配置。
Linux为了使新配置生效,需要重新加载配置,可以使用restart重新启动服务或者使用reload重新加载配置。
[root@rhel5 ~]# service smb reload
//或者
[root@rhel5 ~]# /etc/rc.d/init.d/smb reload
Samba服务器通过以上设置,用户就可以不需要输入账号和密码直接登录Samba服务器并访问public共享目录了。
任务3 user服务器实例解析
【例】 如果公司有多个部门,因工作需要,就必须分门别类地建立相应部门的目录。要求将销售部的资 #设置共享目录的绝对路径为/share #允许匿名访问 #最后设置允许匿名访问
料存放在Samba服务器的/companydata/sales/目录下集中管理,以便销售人员浏览,并且该目录只允许销售部员工访问。
需求分析:在/companydata/sales/目录中存放有销售部的重要数据,为了保证其他部门无法查看其内容,我们需要将全局配置中security设置为user安全级别,这样就启用了Samba服务器的身份验证机制,然后在共享目录/companydata/sales下设置valid users字段,配置只允许销售部员工能够访问这个共享目录。
step1:建立共享目录,并在其下建立测试文件。
[root@rhel5 ~]# mkdir /companydata
[root@rhel5 ~]# mkdir /companydata/sales
[root@rhel5 ~]# touch / companydata/sales /test_share.tar
step2:添加销售部用户和组并添加相应Samba账号。
(1)使用groupadd命令添加sales组,然后执行useradd命令和passwd命令添加销售部员工的账号及密码。
[root@rhel5 ~]# groupadd sales #建立销售组sales
[root@rhel5 ~]# useradd -g sales sale1 #建立用户sale1,添加到sales组
[root@rhel5 ~]# useradd -g sales sale2 #建立用户sale2,添加到sales组
[root@rhel5 ~]# passwd sale1
[root@rhel5 ~]# passwd sale2 #设置用户sale1密码 #设置用户sale2密码
(2)接下来为销售部成员添加相应Samba账号。
[root@rhel5 ~]# smbpasswd –a sale1
[root@rhel5 ~]# smbpasswd –a sale2
(3)修改Samba主配置文件smb.conf。
[global]
workgroup = Workgroup
server string = File Server
security = user #设置user安全级别模式
; passdb backend = tdbsam
smb passwd file = /etc/Samba/smbpasswd
[sales]
comment=sales
path=/companydata/sales
valid users = @sales
step3:重新加载配置。
要让修改后的Linux配置文件生效,需要重新加载配置。 #设置共享目录的绝对路径 #设置可以访问的用户为sales组 #设置共享目录的共享名为sales
[root@rhel5 ~]# service smb reload
//或者
[root@rhel5 ~]# /etc/rc.d/init.d/smb reload
step4:测试。
任务4 配置Samba客户端
1.Linux客户端访问Samba共享
Linux客户端访问服务器主要有两种方法。
(1)使用smbclient命令。
在Linux中,Samba客户端使用smbclint这个程序来访问Samba服务器时,先要确保客户端已经安装了Samba-client这个rpm包。
[root@rhel5 ~]# rpm -qa|grep Samba
默认已经安装,如果没有安装可以用前面讲过的命令来安装。
smbclient可以列出目标主机共享目录列表:smbclient命令格式:
smbclient -L 目标IP地址或主机名 -U 登录用户名%密码
当我们查看rhel5(192.168.0.10)主机的共享目录列表时,提示输入密码,这时候可以不输入密码,我们直接按回车,这样表示匿名登录,然后就会显示匿名用户可以看到的共享目录列表。
[root@rhel5 ~]# smbclient -L rhel5
[root@rhel5 ~]# smbclient -L 192.168.0.10
若想使用Samba账号查看Samba服务器端共享的目录,可以加上-U参数,后面跟上用户名%密码。下面的命令显示只有boss账号才有权限浏览和访问的tech技术部共享目录。
[root@rhel5 ~]# smbclient -L 192.168.0.10 -U boss%Password
读者还可以使用smbclient命令行共享访问模式浏览共享的资料。
smbclient命令行共享访问模式命令格式:
smbclient //目标IP地址或主机名/共享目录 -U 用户名%密码
下面的命令结果显示服务器上tech共享目录的内容。
[root@rhel5 ~]# smbclient //192.168.0.10/tech -U boss% Password
另外smbclient登录Samba服务器后,我们可以使用help查询所支持的命令。
(2)使用mount命令挂载共享目录。
mount命令挂载共享目录格式:
mount -t cifs //目标IP地址或主机名/共享目录名称 挂载点 -o username=用户名
[root@rhel5~]# mount -t cifs //192.168.0.10/tech /mnt/Sambadata/ -o username=boss% Password 表示挂载192.168.0.10主机上的共享目录tech到/mnt/Sambadata目录下,cifs是Samba所使用的文件系统。
2.Windows客户端访问Samba共享
(1)依次打开“开始”→“运行”,使用UNC路径直接进行访问。
形如:\\rhel5\tech 或者 \\192.168.0.10\tech
(2)映射网络驱动器访问Samba服务器共享目录。
双击打开“我的电脑”,再依次单击“工具”→“映射网络驱动器”,在“映射网络驱动器”对话框中选择“Z”驱动器,并输入tech共享目录的地址,比如:\\192.168.0.10\tech。按“完成”按钮,在接下来的对话框中输入可以访问tech共享目录的Samba账号和密码。
再次打开“我的电脑”,驱动器Z就是我们的共享目录tech,可以很方便地访问了。
任务5 使用samba组件中的应用程序
1. testparm命令
2. smbstatus
3. SWAT
Samba排错
Linux服务的一般排错方法
1.错误信息
一定要仔细查看接收到的错误信息。如果有错误提示的话,根据错误提示,去判断产生问题所在。
2.配置文件
配置文件存放服务的设置信息,用户可以修改配置文件,以实现服务的特定功能。但是,用户的配置失误,会造成服务无法正常运行。为了减少输入引起的错误,很多服务的软件包都自带配置文件检查工具,用户可以通过这些工具对配置文件进行检查。
3.日志文件
一旦服务出现问题,不要惊慌,用组合键“Ctrl”+“Alt”+“F1”~“F6”切换到另外一个文字终端,使用tail命令来动态监控日志文件。
[root@rhel5 ~]# testparm -F /var/log/messages
step1:使用testparm命令检测。
使用testparm命令检测smb.conf文件的语法,如果报错,说明smb.conf文件设置错误。根据提示信息,去修改主配置文件,进行调试。
[root@rhel5 ~]# testparm /etc/Samba/smb.conf
step2:使用ping命令测试。
Samba服务器主配置文件排出错误后,再次重启SMB服务,如果客户端仍然无法连接Samba服务器,客户端可以使用ping命令测试。根据出现的不同情况进行分析。
Samba服务的故障排错
●如果没有收到任何提示,说明客户端TCP/IP协议安装有问题,需要重新安装该协议,然后重试。
●如果提示“host not found”(无法找到主机),那么,客户端的DNS或者/etc/hosts文件没有设置正确,确保客户端能够使用名称访问Samba服务器。
●无法ping通还可能是防火墙设置的问题。需要重新设置防火墙的规则,开启Samba与外界联系的端口。 ●还有一种可能,执行ping命令时,主机名输入错误„„更正重试!
step3:使用smbcliet命令测试。
(1)如果Samba服务器正常,并且用户采用正确的账号和密码,去执行smbclient命令可以获取共享列表。
[root@rhel5 ~]# smbclient -L 192.168.0.10 -U test%123
(2)如果接收到一个错误信息提示“tree connect failed”,如下所示。
[root@rhel5 ~]# smbclient //192.168.0.10/public -U test%123
tree connect failed:Call returned zero bytes(EOF)
说明可能在smb.conf文件中设置了host deny字段,拒绝了客户端的IP地址或域名,可以修改smb.conf,允许该客户端访问即可。
(3)如果返回信息“connection refused”(连接拒绝),如下所示。
[root@slave~]# smbclient -L 192.168.0.10
Error connecting to 192.168.0.10(Connection refused)
Connection to 192.168.0.10 failed
说明Samba服务器smbd进程可能没有开启。确保smbd和nmbd进程开启,并使用netstat -a检查netbios使用的139端口是否处在监听状态。
(4)提示信息如果为“session setup failed”(连接建立失败),表明服务器拒绝了连接请求。
[root@rhel5 ~]# smbclient -L 192.168.0.10 -U test%1234
session setup failed:NT_STATUS_LOGON_FAILURE
这是因为用户输入的账号或密码错误造成的,请更正重试。
(5)有时会收到提示信息“Your server software is being unfriendly”(你的服务器软件存在问题)。 一般是因为配置smbd时使用了错误的参数,或者启动smbd时遇到的类似严重错误。可以使用前面提到的testparm去检查相应的配置文件,并检查日志。
2.配置与管理NFS网络文件系统(掌握NFS的概念和工作原理、掌握NFS服务器的启动与停止方法、掌握NFS服务器配置文件的修改方法、掌握NFS服务器的配置方法、掌握NFS客户端的配置方法) Linux和Windows之间可以通过Samba进行文件共享,那么Linux之间怎么进行资源共享呢?这就要说到NFS(Network File System,网络文件系统),它最早是UNIX操作系统之间共享文件和操作系统的一种方法,后来被Linux操作系统完美继承。
NFS最早是由Sun公司于1984年开发出来的,其目的就是让不同计算机、不同操作系统之间可以彼此共享文件。由于NFS使用起来非常方便,因此很快得到了大多数UNIX/Linux系统的广泛支持,而且还被IETE(国际互联网工程组)制定为RFC1904、RFC1813和RFC301O标准。
1.使用NFS的好处
(1)本地工作站可以使用更少的磁盘空间,因为通常的数据可以存放在一台机器上,而且可以通过网络访
问到。
(2)用户不必在网络上每个机器中都设一个home目录,home目录可以被放在NFS服务器上,并且在网络上处处可用。
(3)诸如CD-ROM、DVD-ROM之类的存储设备可以在网络上被其它的机器使用。这可以减少整个网络上可移动介质设备的数量。
2.NFS和RPC(客户端可以将服务器上的分享目录直接加载到本地)
RPC最主要的功能就是记录每个NFS功能所对应的端口,它工作在固定端口111,当客户端需求NFS服务时,就会访问服务器的111端口(RPC),RPC会将NFS工作端口返回给客户端。
什麼是 RPC (Remote Procedure Call)
因为 NFS 支持的功能相当的多,而不同的功能都会使用不同的程序来启动, 每启动一个功能就会启用一些端口口来传输数据(端口是为了不同的应用程序更方便分拣数据!)
因此, NFS 的功能所对应的端口没有固定住, 而是随机取用一些未被使用的小于 1024 的端口来作为传输之用。
需要远程过程调用 (RPC) 的服务!RPC 最主要的功能就是在指定每个 NFS 功能所对应的 port number ,并且回报给客户端,让客户端可以连结到正确的端口上去。
那 RPC 又是如何知道每个 NFS 的埠口呢?这是因为当服务器在启动 NFS 时会随机取用数个埠口,并主动的向 RPC 注册,因此 RPC 可以知道每个端口口对应的 NFS 功能,然后 RPC 又是固定使用 port 111 来监听客户端的需求并回报客户端正确的埠口, 所以可让 NFS 的启动更为方便!
常规的NFS服务是按照如下流程进行的
(1)NFS启动时,自动选择工作端口小于1024的1011端口(这里仅是案例,实际上端口号是动态的),并向RPC(工作于111端口)汇报,RPC记录在案。
(2)客户端需要NFS提供服务时,首先向111端口的RPC查询NFS工作在哪个端口?
(3)RPC回答客户端,它工作在1011端口。
(4)于是,客户端直接访问NFS服务器的1011端口,请求服务。
(5)NFS服务经过权限认证,允许客户端访问自己的数据。
思考:RPC服务重新启动后,为何要重新启动NFS服务?
NFS服务的组件
Linux下的NFS服务主要由以下4个部分组成(Red Hat 5以前需要portmap也是必需的)。
1.主要的守护进程:rpc.nfsd
最主要的 NFS 服务器服务提供商。这个 daemon 主要的功能就是在管理客户端是否能够使用服务器文件系统挂载信息等, 其中还包含这个登入者的 ID 的判别!
2.主要的守护进程:rpc.mountd
这个 daemon 主要的功能,则是在管理 NFS 的文件系统!当客户端顺利的通过 rpc.nfsd 而登入服务器之后,在可以使用 NFS 服务器提供的文件前,还会经过文件权限的认证程序!
系统会去读 NFS 的配置文件 /etc/exports 来比对客户端的权限,当通过这一关之后客户端就可以取得使用 NFS 档案的权限啦!
3.主要的守护进程: rpc.lockd (非必要)
这个玩意儿可以用在管理档案的锁定 (lock) 用途。为何档案需要『锁定』呢?
因为既然分享的 NFS 文件可以让客户端使用,那么当多个客户端同时尝试写入某个文件时, 就可能对于该档案造成一些问题啦!这个 rpc.lockd 则可以用来克服这个问题。 但 rpc.lockd 必须要同时在客户端与服务器端都开启才行
4.主要的守护进程: rpc.statd (非必要)
可以用来检查档案的一致性,与 rpc.lockd 有关!若发生因为客户端同时使用同一档案造成档案可能有所损毁时, rpc.statd 可以用来检测并尝试回复该档案。
与 rpc.lockd 同样的,这个功能必须要在服务器端与客户端都启动才会生效。
项目设计及准备
在VMWare虚拟机中启动两台Linux系统,一台作为NFS服务器,主机名为server,规划好IP地址,比如,192.168.8.188;一台作为NFS客户端,主机名为Client,同样规划好IP地址,比如192.168.8.186。配置一个NFS服务器,使得客户机可以浏览NFS服务器中特定目录下的内容。
任务1 安装NFS服务器
1.所需要的套件
对于Red Hat Enterprise Linux 6.x来说,要启用NFS服务器,我们至少需要两个套件,它们分别是:
(1)rpcbind (注意:RHEL5 以前的版本需要对等的portmap)
(2)nfs-utils
2.查询
实际查询一下系统中是否已经安装了这两个套件。
#rpm -q nfs-unitls
nfs-unitls-1.2.3-39.e16.i686
#rpm -q rpcbind
rpcbind-0.2.0-11.e16.i686
如没有找到,则需要通过yum来安装
如:yum install rpcbind
(nfs-utils和rpcbind组件已经正确安装.)
另外,最好再查询一下NFS的各个程序是否在正常运行,命令如下。
[root@server ~]# rpcinfo -p
如果没有看到nfs和mounted选项,则说明NFS没有运行,需要启动它。
#/etc/init.d/rpcbind start
#/etc/init.d/nfs start
1.exports文件的格式(NFS 的主要配置文件)
# vim /etc/exports
/tmp 192.168.100.4/24(ro) localhost(rw) *.ev.ncku.edu.tw(ro,sync)
#共享目录 [第一台主机(权限)] [可用主机名] [其他主机名(可用通配符)]
可以使用完整的ip或者是网域,例如 192.168.100.10或192.168.100.0、24,或192.168.100.0、255。255.255.0都可以接受
也可以使用主机名,但这个主机名必须要在 /etc/hosts内,或可使用DNS找到该名称才行,重点是可找到ip就是了,如果是主机名的话,那么他可以支配通配符,例如*或?均可接受。
说明:1)/tmp分别共享给3个不同的主机或域。
2)主机后面以小括号“()”设置权限参数,若权限参数不止一个时,则以逗号分开,且主机名与小括号是连在一起的。
3)#开始的一行表示注释。
/usr/sbin/exportfs
/usr/sbin/exportfs 这个是维护 NFS 分享资源的指令,我们可以利用这个指令重新分享 /etc/exports 变更的目录资源、将 NFS Server 分享的目录卸除或重新分享等等,
/usr/sbin/showmount
客户端查询服务器分享资源的指令:/usr/sbin/showmount 这是另一个重要的 NFS 指令。
exportfs 是用在 NFS Server 端,而 showmount 则主要用在 Client 端。这个 showmount 可以用来察看 NFS 分享出来的目录资源!
在设置/etc/exports文件时需要特别注意“空格”的使用,因为在此配置文件中,除了分开共享目录和共享主机以及分隔多台共享主机外,其余的情形下都不可使用空格。例如,以下的两个范例就分别表示不同的意义: /home Client(rw)
/home Client (rw)
2.主机名规则
(1)可以使用完整的IP地址或者网段,例如192.168.0.3、192.168.0.0/24或192.168.0.0/255.255.255.0都可以接受。
(2)可以使用主机名称,这个主机名称要在/etc/hosts内或者使用DNS,只要能被找到就行(重点是可以找到IP地址)。如果是主机名称,那么它可以支持通配符,例如*或?均可以接受。
给自己的主机取个名:#hostname yuhong.com(起名)
#hostname(查询)
Hosts - The static table lookup for host name(主机名查询静态表)
hosts文件是Linux系统中一个负责IP地址与域名快速解析的文件,以ASCII格式保存在“/etc”目录下,文件名为“hosts”
5.权限规则
6.至于权限方面(就是小括号内的参数),常见的参数则有以下几种。
●rw:read-write,可读/写的权限。
●ro:read-only,只读权限。
●sync:数据同步写入到内存与硬盘当中。
●async:数据会先暂存于内存当中,而非直接写入硬盘。
●no_root_squash:登录NFS主机使用共享目录的用户,如果是root,那么对于这个共享的目录来说,它就具有root的权限。这个设置“极不安全”,不建议使用。
/etc/exports的内容:/tmp 192.168.0.24/24(rw) localhost(rw) *(ro)
5.权限规则
●root_squash:在登录NFS主机使用共享目录的用户如果是root,那么这个用户的权限将被压缩成匿名用户,通常它的UID与GID都会变成nobody(nfsnobody)这个系统账号的身份。
●all_squash:不论登录NFS的用户身份如何,它的身份都会被压缩成匿名用户,即nobody(nfsnobody)。 ●anonuid:anon是指anonymous(匿名者),前面关于术语squash提到的匿名用户的UID设定值,通常为nobody(nfsnobody),但是你可以自行设定这个UID值。当然,这个UID必须要存在于你的/etc/passwd当中。
●anongid:同anonuid,但是变成Group ID就可以了。
任务3 启动与停止NFS服务器
1.启动NFS服务
RHEL 5:
[root@server ~]# service portmap start
[root@server ~]# service nfs start
2.停止NFS服务
[root@server ~]# service nfs stop
4.让NFS服务自动运行
终端窗口输入:ntsysv 用空格选中自动运行的服务(nfs)
5.重启NFS服务
[root@server ~]# service nfs restart
任务5 在客户端挂接NFS文件系统
1.查看NFS服务器信息:#showmount [-adehv][ServerName]
参数说明:
-a--all()
-d--directories()
-e--exports(查看服务器上的NFS共享资源)
-h--help()
-v--version()
2.加载NFS服务器共享目录
[root@Client ~]# mount -t NFS 服务器名称或地址:输出目录 挂载目录
比如,要加载192.168.0.3这台服务器上的/exporst/rhel目录,则需要依次执行以下操作。
(1)创建本地目录。
首先在客户端创建一个本地目录,用来加载NFS服务器上的输出目录。
# mkdir /mnt/nfs
(2)加载服务器目录。
再使用相应的mount命令加载。
# mount -t nfs 192.168.0.3:/exports/rhel /mnt/nfs
5.使用时自动挂接
自动挂接的主配置文件是/etc/auto.master。在这个文件中配置自动加载的语法格式为:
mountPoint map-name
参数说明。
●MountPoint:指定autofs的挂接点,比如/home。
●map-name:设置挂接点文件,里面包含所有自动挂接到MountPoint下的资源列表。
任务6 排除NFS故障
常见的故障点划分为3个:网络、客户端或者服务器。
1.网络: 对于网络的故障,主要有两个方面的常见问题。
(1)网络无法连通。
(2)无法解析主机名。
2.客户端
客户端在访问NFS服务器时,多使用mount命令,下面将列出常见的错误信息以供参考。
(1)服务器无响应:端口映射失败-RPC超时。
(2)服务器无响应:程序未注册。
(3)拒绝访问。
(4)不被允许。
3. 服务器
(1)NFS服务进程状态。
使用rpcinfo命令,可以查看RPC的相应信息,命令格式如下:
rpcinfo -p 主机名或IP地址
(2)注册NFS服务。
需要确认NFS服务已经进行注册。rpcinfo命令能够提供检测功能,命令格式如下所示:
rpcinfo -u 主机名或IP 进程
(3)检测共享目录输出。
客户端如果无法访问服务器的共享目录,可以登录服务器,进行配置文件的检查。确保/etc/exports文件设定共享目录,并且客户端拥有相应权限。通常情况下,使用showmount命令能够检测NFS服务器的共享目录输出情况。
#showmount -e server
作业
一台NFS服务器,地址192.168.205.2。配置一个NFS服务器,使得客户机可以浏览NFS服务器中/home/ftp目录下的内容,但不可以修改。要求写出服务器中的配置文件和启动NFS服务器的配置方法。
完成本课程中的项目,并写出实现的具体过程和配置命令。
5.管理Linux服务器
1)Linux是一个类UNIX操作系统,Linux操作系统一般由以下3个主要部分组成:内核(Kernel),命令解释层(Shell或其他操作环境),实用工具
内核是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序。
Linux内核的源代码主要用C语言编写,只有部分与驱动相关的用汇编语言编写。
Linux内核采用模块化结构,其主要模块包括:存储管理、CPU和进程管理、文件系统管理、设备管理和驱动、网络通信以及系统的引导、系统调用等。
Linux内核的源代码通常安装在/usr/src目录,可供用户查看和修改。
Linux允许用户根据自己机器的实际配置定制Linux的内核。
用户在安装Linux后可以下载最新版本的Linux内核,进行内核编译后升级计算机的内核,就可以使用到内核最新的功能。
2)Linux Shell
Shell(命令解释器)是系统的用户界面,提供用户与内核进行交互操作的接口。它接收用户输入的命令,并且把它送入内核去执行。
操作环境在操作系统内核与用户之间提供操作界面,它可以描述为一个解释器。操作系统对用户输入的命令进行解释,再将其发送到内核。Linux拥有桌面(desktop)、窗口管理器(window manager)和命令行shell(command line shell)等几种操作环境。
3)Linux系统的实用工具可以分为以下三类:
编辑器:用于编辑文件。 Linux的编辑器主要有:Ed、Ex、Vi和Emacs。Ed和Ex是行编辑器,Vi和Emacs是全屏幕编辑器。
过滤器:用于接收数据并过滤数据。 Linux的过滤器(Filter)读取从用户文件或其他地方的输入,检查和处理数据,然后输出结果。
交互程序:是用户与机器的信息接口,允许用户发送信息或接收来自其他用户的信息。
4)Linux的版本号分为两种:内核版和发行版 。
内核版本是指在Linus领导下的内核小组开发维护的系统内核的版本号。
发行版本是一些组织和公司根据自己发行版的不同而自定的 。
Linux内核版本的版本号格式通常为: “主版本号.次版本号.修正号”
主版本号和次版本号标志着重要的功能变动。
修正号表示较小的功能变更。
内核版本是由Linux内核社区统一进行发布的
次版本号为奇数,则此版本为开发板,若为偶数,则为稳定版。
末版本号为修订次数。
5)Red Flag Linux是目前影响力最为广泛的国产中文Linux操作系统。
6)自2002年起,Red Hat将产品分成Red Hat Enterprise Linux(RHEL)服务器版和Fedora Core(FC)桌面版。这就意味着不可能看到Red Hat Linux 10.0的版本,取而代之的是RHEL服务器版或FC桌面版。
7)Red Hat公司大约每18个月就会发行一个新的Red Hat企业版本。
小资料:什么是SELinux?
SELinux的全称是Security Enhanced Linux。是由美国国家安全部(National Security Agency)领导开发的GPL项目,它拥有一个灵活而强制性的访问控制结构,旨在提高Linux系统的安全性,提供强健的安全保证,可防御未知攻击,据称相当于B1级的军事安全性能。应用SELinux后,可以减轻恶意攻击或恶意软件带来的灾难,并对机密性和完整性有很高要求的信息提供安全保障。
8)设计与准备搭建Linux服务器 硬件的基本要求
●CPU:需要Pentium以上处理器。
●内存:对于x86、AMD64/Intel64和Itanium2架构的主机,最少需要512MB的内存,如果主机是IBM Power系列,则至少需要1 GB的内存(推荐2GB)。
●硬盘:必须保证有大于1GB的空间。
●显卡:需要VGA兼容显卡。
●光驱:CD-ROM或者DVD。
●其他:兼容声卡、网卡等。
9)多重引导
LILO是最早出现的Linux引导装载程序之一,其全称为Linux Loader。早期的Linux发行版本中都以LILO作为引导装载程序。
GRUB比LILO晚出现,其全称是GRand Unified Bootloader。GRUB不仅具有LILO的绝大部分功能,并且还拥有漂亮的图形化交互界面、方便的操作模式。因此,包括Red Hat在内的越来越多Linux发行版本转而将GRUB作为默认安装的引导装载程序。
10)磁盘分区
硬盘上最多只能有四个主分区,其中一个主分区可以用一个扩展分区来替换。也就是说主分区可以有1~4个,扩展分区可以有0~1个,而扩展分区中可以划分出若干个逻辑分区。
分区方案
对于初次接触Linux的用户来说,分区方案越简单越好,所以最好的选择就是为Linux装备两个分区,一个是用户保存系统和数据的根分区(/),另一个是交换分区。其中交换分区不用太大,与物理内存同样大小即可;根分区则需要根据Linux系统安装后占用资源的大小和所需要保存数据的多少来调整大小(一般情况下,划分15~20GB就足够了)。
Linux的所有设备均表示为/dev目录中的一个文件。
11)硬盘分区的文件名表示
/dev(所有硬件设备文件的目录)/hd(硬件设备的代号,hd代表IDE设备,sd代表SCSI设备)a(同类型设备的编号,a代表第一个硬盘,b代表第二个硬盘,如此类推)5(分区号)
/dev/hda5 用文件来表示硬件设备
什么是LVM?
LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
目标:在零停机前提下可以自如对文件系统的大小进行调整,可以方便实现文件系统跨越不同磁盘和分区。 Linux提供的逻辑盘卷管理(LVM,Logical Volume Manager)机制可在不停机的情况下动态调整各个分区的大小,并且保持原有的文件系统不变。
usr最早是user的缩写,通常被认为是 User System Resources 的缩写,其中通常是用户级的软件等,与存放系统级文件的根目录形成对比。/var中包括了一些数据文件,如系统日志等。
/tmp目录用以保存临时文件。
为了加快临时文件的访问速度,有的实现把/tmp放在内存中。
什么是kdump?
kdump是在系统崩溃、死锁或者死机的时候用来转储内存运行参数的一个工具和服务。
如果系统一旦崩溃那么正常的内核就没有办法工作了,在这个时候将由kdump产生一个用于capture当前运行信息的内核,该内核会将此时的内存中的所有运行状态和数据信息收集到一个dump core文件中以便于Red Hat工程师分析崩溃原因,一旦内存信息收集完成,系统将自动重启
子任务3 认识Linux启动过程和运行级别
init0 和init1
linux 0号进程和1号init进程
进程0:Linux引导中创建的第一个进程,完成加载系统后,演变为进程调度、交换及存储管理进程 进程1:init 进程,由0进程创建,完成系统的初始化,是系统中所有其它用户进程的祖先进程
2.INIT进程
inittab文件作为INIT进程的配置文件,用于描述系统启动时和正常运行中所运行的那些进程。
3.系统运行级别
这些级别在/etc/inittab文件里指定。各运行级别的含义如下。
●0:停机,不要把系统的默认运行级别设置为0,否则系统不能正常启动。
●1:单用户模式。
●2:字符界面的多用户模式,在该模式下不能使用NFS。
●3:字符界面的完全多用户模式,主机作为服务器时通常在该模式下。
●4:未分配。
●5:图形界面的多用户模式,用户在该模式下可以进入图形登录界面。
●6:重新启动,不要把系统默认运行级别设置为6,否则系统不能正常启动。
(1)查看系统运行级别。
runlevel命令用于显示系统当前的和上一次的运行级别。例如:
[student@Yuhong ~]$ runlevel
N 5
(2)改变系统运行级别。
使用init命令,后跟相应的运行级别作为参数,可以从当前的运行级别转换为其他运行级别。例如:
[root@Yuhong ~]# init 2
[root@ Yuhong ~]# runlevel
5 2
子任务4 删除Red Hat Enterprise Linux
1.删除Linux引导记录
一般可以通过DOS/Windows自带的Fdisk小工具来完成。
删除Red Hat Enterprise Linux 6.5的引导信息,需要借助DOS/Windows下的分区工具Fdisk。只需要启
动到DOS或者Windows下,然后在命令行窗口输入以下指令即可:
fdisk /MBR
2.删除Linux分区
通过第三方分区工具或者Linux急救盘中自带的parted,就可以删除Linux分区。
① 输入以下指令启动到急救模式。
boot:linux rescue
② 输入以下指令,用分区工具打开指定硬盘:
parted /dev/sda
③ parted的指令很多,
④ 比如,删除ID号为2的数据分区:
rm 2
子任务5 Linux的登录和退出
(2)文本模式登录。
在终端窗口(或者直接右键单击桌面,选择“终端”命令)输入“init 3”命令,即可进入文本登录模式;如果在命令行窗口下输入“init 5”或“start x”命令可进入图形界面。
子任务6 启动Shell
1.使用Linux系统的终端窗口
一般用户,可以直接右键单击桌面,选择“终端”命令。
执行以上命令后,就打开了一个白底黑字的命令行窗口,在这里我们可以使用Red Hat Enterprise Linux 6.5支持的所有命令行指令。
2.使用Shell提示符
进入纯命令行窗口之后,还可以使用“A1t”+“Fl”~“A1t”+“F6”组合键在6个终端之间切换,每个终端可以执行不同的指令,进行不一样的操作。
登录之后,普通用户的命今行提示符以“$”号结尾,超级用户的命令以“#”号结尾。
[yy@localhost ~]$ ;一般用户以“$”号结尾
;切换到root账号 [yy@localhost ~]$ su root
Password:
[root@localhost ~]# ;命令行提示符变成以“#”号结尾了
当用户需要返回图形桌面环境时,也只需要按下“Ctrl”+“Alt”+“F7”组合键,就可以返回到刚才切换出来的桌面环境。
使用任何文本编辑器打开/etc/inittab文件,找到如下所示的行:
id:5:initdeafault
将它修改为:
id:3:initdeafault
重新启动系统你就会发现,它登录的是命令行而不是图形界面。
提示:要想让Red Hat Enterprise Linux 6.5直接启动到图形界面,可以按照上述操作将“id:3”中的“3”修改为“5”;也可以在纯命令行模式,直接执行“startx”命令打开图形模式。
1.4.1 什么是X-Window System
X-Window System是一套工作在Unix计算机上的优良的窗口系统,最初是麻省理工学院的一个研究项目,现在是类Unix系统中图形用户界面的工业标准。X-Window System与设备无关。
X-Window System的主要特征:
X-Window System本身就是基于Client/Server的结构建立的,具有网络操作的透明性。
支持许多不同风格的操作界面。
X-Window System不是操作系统必需的构成部分。
X-Window System是开源项目,可以通过网络或者其他途径免费获得源代码。
X-Window System由三部分构成:
X Server:控制实际的显示与输入设备。X Server是控制显示器和输入设备的软件。
X Client:向X Server发出请求以完成特定的窗口操作。X Client是使用操作系统窗口功能的一些应用程序。
通信通道:负责X Server与X Client之间的通信。通信通道是X Server和X Client之间传输信息的通道。
通信通道根据X Server和X Client所在位置的不同,可以分为两种情况:
X Server和X Client位于同一台计算机上,他们之间可以使用计算机上任何可用的进程通信方式进行交互。 X Server和X Client位于不同的计算机上,他们之间的通信必须通过网络进行,需要相关网络协议的支持。
1. 简述架设samba服务的几个步骤。(4分)
答:添加合法的samba用户(前提是samba用户必须是系统用户)。
设置本地用户的共享目录。
设置共享目录的本地系统权限。
重启samba服务。
2. 简述ftp的主动模式及被动模式的工作原理。(4分)
答:PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。
PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。
3. 简述DHCP的首次获得IP租约工作过程。(4分)
答:客户机从DHCP服务器获得IP地址的过程称为DHCP租约过程。租约过程分为四个步骤:
1) 客户机请求IP地址:
DHCP客户机在网络中广播一个DHCP Discover包以请求IP地址。DHCP Discover包的源IP地址是0.0.0.0,目的IP地址是255.255.255.255,该包还包含客户机的MAC地址和计算机名。
2) 服务器响应请求:
当DHCP服务器接收到客户机请求IP地址的信息时,如果自己的IP地址库中有合法的IP地址提供给客户机,DHCP服务器就会广播一个DHCP Offer包。如果网络中存在多台DHCP服务器,则这些服务器都会广播DHCP Offer包。
3) 客户机选择IP地址:
客户机从接收到的第一个DHCP Offer包中选择IP地址,并将DHCPRequest包广播到所有DHCP服务器。DHCP Request包的信息包含为该客户机提供IP配置的服务器的服务器标识(IP地址)。DHCP服务器查看服务器标识字段,以确定自己是否被选择为指定的客户机提供IP地址。
4) 服务器确认IP租约:
DHCP服务器接收到DHCP Request包后,以DHCP ACK消息的形式向客户机广播成功的确认,该消息包含IP地址的有效租约和其他配置信息。当客户机收到DHCP ACK包时,它就配置完成了IP地址。
4. DNS服务器的类型有哪些?其作用是什么?(4分)
答:缓存域名服务器
1. 也称为 唯高速缓存服务器
2. 通过向其他域名服务器查询获得域名->IP地址记录
3. 将域名查询结果缓存到本地,提高重复查询时的速度
主域名服务器
1. 特定DNS区域的官方服务器,具有唯一性
2. 负责维护该区域内所有域名->IP地址的映射记录
从域名服务器
1. 也称为 辅助域名服务器
2. 其维护的 域名->IP地址记录 来源于主域名服务器
5. 简述在mysql数据库中增加用户guest的方法。当用户增加后仍不能够正常访问,原因是什么?如何解
决?(4分)
答:以MySQL管理员身份从本地连接到数据库服务器,可使用下面的命令实现:
mysql -u root -p
创建新用户guest,并为他设置密码,同时允许它从任何主机连接到数据库服务器,可使用下面的命令实现:
mysql>insert into mysql.user (host,user,password)
->values ('%', 'guest',password('guest'));
若不能正常访问,很可能是没有授权,可以使用如下语句授权:
Grant all on *.* to guest @’localhost’ identified by ‘key’;
四、 综合题(共35分)
1. 配置一台Linux服务器,其IP地址是192.168.0.102,子网掩码是255.255.255.0,默认网关是
192.168.0.1。在考生目录下已有vsftpd.conf文件。准备工作已好,主要修改配置文件。(5分) 要求 :
a) 匿名上传时只能把客户端的文件上传到服务器的/var/ftp/incoming文件夹中。
b) 创建一个管理员帐号lupa,它对于匿名上传的文件有上传,下载和修改权限。
操作:打开主配置文件并修改:
# Example config file /etc/vsftpd.conf
anonymous_enable=___YES___ #控制是否允许匿名用户登录
anon_upload_enable=__YES___ #允许匿名上传
___chown_uploads___=YES
chown_username=___lupa_____ anon_umask =077
2. 现使用Apache架设一个Web服务器。
要求:
a) 在该服务器上有一个主机名为myweb.test.com的named-based虚拟主机。
b) DNS已设置完毕,
c) 能正确将该主机名翻译成IP:210.45.1.88,默认端口为80。
d) 该虚拟主机的主页存放目录为/var/myweb/html,
e) 只允许域名为test.com的主机访问。
请完成httpd.conf文件的空白。(10分)
#前面部分省略
ServerAdmin tom@test.com DocumentRoot /var/myweb/html ServerName myweb.test.com
Options Indexes FollowSymLinks ExecCGI AllowOverride None Order allow,deny allow from test.com NameVirtualHost 210.45.1.88
Errorlog logs/myweb/error_log
Customlog logs/myweb/access_log common
3. 现构建一台DNS服务器,请填写下面的空白。要求如下: (10分)
1) DNS的区域记录文件存放在/var/named目录。
2) 根域为高速缓存服务器。
3) exam.com域是主DNS服务器,同时能实现反向解析。
4) aust.edu.cn域为辅助DNS服务器,其主DNS服务器为2120.45.144.18。 options { directory " /var/named ";
#................
};
#无关部分已作省略 zone " . " IN { type hint ;
file "named.ca";
};
zone "aust.edu.cn" IN {
type slave;
file "aust.zone"; master{212.45.144.18} ;
};
zone "exam.com" IN {
type master ;
file "exam.zone";
allow-update { none; };
}; zone "1.45.210.in- addr.arpa " IN {
type master ;
file "exam.rev";
allow-update { none; };
}; include "/etc/rndc.key";
4. 请说明在DHCP服务器中配置文件dhcpd.conf文件(部分)的每行的含义。(10分)
ddns-update-style interim;// 配置DDNS互动更新模式
#...................
subnet 210.45.1.0 netmask 255.255.255.0 {
option routers
option domain-name 210.45.1.1;// 为客户设置默认的网关 210.45.1.255;// 设置客户广播域地址 option broadcast-address "exam.com";
option domain-name-servers 210.45.1.8,210.45.1.18;
#. 设置客户指明的DNS域名和DNS服务器的IP地址
range dynamic-bootp 210.45.1.50 210.45.1.60;// 说明要分配的IP地址的范围
default-lease-time 21600;// 指明默认的地址租期
max-lease-time 43200;// 用户可获得的最长租期时间
host dns {// 为特定的DHCP客户机提供IP网络层参数
hardware ethernet DF:34:32:78:AB:CD;// 指定硬件接口的类型及硬件地址
fixed-address 210.45.1.58;// 为客户机分配的IP地址 。
}
}
1. 简述samba服务器的工作原理。4分
答:① 首先客户端发送一个SMB negprot请求数据报,并列出它所支持的所有SMB协议版本。服务器收到请求信息后响应请求,并列出希望使用的协议版本。如果没有可使用的协议版本则返回0XFFFFH,结束通信。
② 协议确定后,客户端进程向服务器发起一个用户或共享的认证,这个过程是通过发送SesssetupX请求数据报实现的。客户端发送一对用户名和密码或一个简单密码到服务器,然后服务器通过发送一个SesssetupX应答数据报来允许或拒绝本次连接。
③ 当客户端和服务器完成了磋商和认证之后,它会发送一个Tcon或TconX SMB数据报并列出它想访问网络资源的名称,之后服务器会发送一个TconX应答数据报以表示此次连接是否被接受或拒绝。
④ 连接到相应资源后,SMB客户端就能够通过open SMB打开一个文件,通过read SMB读取文件,通过write SMB写入文件,通过close SMB关闭文件
2. 说出几种常见的数据库,并说出mysql数据库的优点。4分
答:SQL Server MySQL:Oracle Sybase DB2 Access数据库、FoxPro数据库
MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass- deployed)的软件中去。
(1)MySQL是一个关系数据库管理系统。
(2)MySQL是开源的。
(3)MySQL服务器是一个快速的、可靠的和易于使用的数据库服务器。
(4)MySQL服务器工作在客户/服务器或嵌入系统中。
(5)有大量的MySQL软件可以使用。
3. 简述DHCP的首次获得IP租约工作过程。4分
答:客户机从DHCP服务器获得IP地址的过程称为DHCP租约过程。租约过程分为四个步骤:
1) 客户机请求IP地址:
DHCP客户机在网络中广播一个DHCP Discover包以请求IP地址。DHCP Discover包的源IP地址是0.0.0.0,目的IP地址是255.255.255.255,该包还包含客户机的MAC地址和计算机名。
2) 服务器响应请求:
当DHCP服务器接收到客户机请求IP地址的信息时,如果自己的IP地址库中有合法的IP地址提供给
客户机,DHCP服务器就会广播一个DHCP Offer包。如果网络中存在多台DHCP服务器,则这些服务器都会广播DHCP Offer包。
3) 客户机选择IP地址:
客户机从接收到的第一个DHCP Offer包中选择IP地址,并将DHCPRequest包广播到所有DHCP服务器。DHCP Request包的信息包含为该客户机提供IP配置的服务器的服务器标识(IP地址)。DHCP服务器查看服务器标识字段,以确定自己是否被选择为指定的客户机提供IP地址。
4) 服务器确认IP租约:
DHCP服务器接收到DHCP Request包后,以DHCP ACK消息的形式向客户机广播成功的确认,该消息包含IP地址的有效租约和其他配置信息。当客户机收到DHCP ACK包时,它就配置完成了IP地址。
4. DNS相关文件主要有哪些?在安装cache-nameserver后分别存放在什么地方?4分
答:主配置文件、根域数据文件、正向区域数据文件、反向区域数据文件
安装后:
主配置文件named.conf位于/var/named/chroot/etc/
其他相关配置文件由主配置文件中的options选项的Directory指定,一般位于:
/var/named/chroot/var/named。
5. 简述在mysql数据库中增加用户的方法。当用户增加后仍不能够正常访问,原因是什么?如何解决?4分
答:以MySQL管理员身份从本地连接到数据库服务器,可使用下面的命令实现:
mysql -u root -p
创建新用户guest,并为他设置密码,同时允许它从任何主机连接到数据库服务器,可使用下面的命令实现:
mysql>insert into mysql.user (host,user,password)
->values ('%', 'guest',password('guest'));
若不能正常访问,很可能是没有授权,可以使用如下语句授权:
Grant all on *.* to guest @’localhost’ identified by ‘key’;
四、 综合题(共30分)
1. 在企业网络的内部有windows服务器和linux服务器,在linux服务器的根目录上有abc目录,要求
将该目录利用samba服务器共享出来,其共享名为public,用户lili可以访问该目录(注:当前没有lili该系统用户),只有读取权限。请写出samba服务器的配置文件中,关于添加用户及共享该abc目录的配置部分。(10分)
答:useradd lili 2分
passwd lili 1分
smbpasswd –a lili 2分
主配置文件中:
[public] 1分
path = /abc 1分
browsable = yes 1分
readonly = yes 1分
valid users = lili 1分
2. 现使用Apache架设一个Web服务器。
要求:
a) 在该服务器上有一个主机名为myweb.test.com的named-based虚拟主机。 b) DNS已设置完毕,
c) 能正确将该主机名翻译成IP:210.45.1.88,默认端口为80。
d) 该虚拟主机的主页存放目录为/var/myweb/html,
e) 只允许域名为test.com的主机访问。
请完成httpd.conf文件的空白。(10分)
#前面部分省略 NameVirtualHost 210.45.1.88
ServerAdmin tom@test.com DocumentRoot /var/myweb/html ServerName myweb.test.com
Options Indexes FollowSymLinks ExecCGI AllowOverride None Order allow,deny allow from test.com
Errorlog logs/myweb/error_log
Customlog logs/myweb/access_log common