Linux操作系统实验十 Linux网络及服务配置

1.实验目的与要求

  1. 了解网络相关概念
  2. 理解各网络配置文件
  3. 掌握常用网络相关命令
  4. 掌握网络配置两种方式
  5. 理解网络服务
  6. 掌握常用网络服务配置和应用(WWW/Samba等)

2.实验平台

实验室安装的实验环境(Linux操作系统)和头歌(www.educoder.net)实验平台(课程实验)

3.实验内容

  1. 掌握网络配置两种方式
  2. 掌握www服务安装、启动、配置、应用
  3. 掌握Samba服务安装、启动、配置、应用

4.实验详细内容、步骤

  1. 参考PPT课件和red hat linux 9的安装说明.doc、VMwareTools的安装与网络设置,完成2和3
  2. Eth0网络(IP/网关/子网掩码/DNS)配置和激活(图像界面和工具(setup和netconfig)的实验),设置好后,使用ping命令测试网络的畅通与否
  3. 网络命令练习:hostname/ifcofig/route/netstat/write等命令使用
任务描述

Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览;还可以放置数据文件,让全世界下载。

本关任务:介绍Linux系统上常用的Web服务器软件httpd,我们学会如何在Linux系统上搭建一个Web服务器。

相关知识

目前最主流的三个Web服务器是HttpdNginxIIS

Httpd是一个开源软件,且一般用作Web服务器来使用。目前最流行的Web服务器软件叫做httpd,在早期的Http server就叫做Apache,到了Http server 2.0以后就改名为Httpd了。所以有时候听到Apache服务器和Httpd服务器其实都是指的是一个意思。

HttpdApache超文本传输协议(HTTP)服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。

Linux系统安装软件和Windows系统上安装软件不太一样,在Windows上我们只需要下载需要安装的软件二进制文件(常见的格式是.exe),然后双击即可进行安装。而Linux系统上安装软件的常见方式有如下几种:

  1. 源码编译安装
  2. 软件包安装
  3. 在线安装

源码安装步骤是下载源码到本机,然后对源码进行编译,生成可执行文件,然后将生成的可执行文件拷贝到对应的安装目录即可,常见的软件源码包格式为.tar.gz.tar.bz2等;

软件包安装步骤是下载好已经编译好的可执行文件包,然后使用对应的包管理工具进行安装,不同的Linux系统使用不同的包管理工具,常见包管理工具如下所示:

  1. Ubuntu/Debian 系统使用 dpkg 行管理软件包(软件包的后缀为.deb);
  2. Redhat/CentOS 系统使用 rpm 进行管理软件包(软件包的后缀为.rpm);

在线安装是指不需要用户亲自下对应软件的包,但是需要对应系统能够访问互联网,不同的Linux系统使用不同的工具进行在线安装软件,常见的在线安装软件的工具如下所示:

  1. Ubuntu/Debian 系统使用 apt-get 进行在线安装软件;
  2. Redhat/CentOS 系统使用 yum 进行在线安装软件;

建议使用在线安装软件,离线安装软件常见的问题是软件间的依赖问题,如果离线安装软件,则必须要手动安装依赖的库,而在线安装则只需要一条命令完成所有的操作,在线安装会自动去安装依赖库;

源码安装Httpd

Httpd软件依赖如下3个软件包,所以在安装Httpd软件前,需要先安装如下3个软件。

  1. arp: Apache可移植运行时库,支持跨平台,其内存管理模块被itrans引擎使用。
  2. apr-util:是APR开发包中一个衍生版。
  3. pcre:一个Perl库,包括perl兼容的正则表达式库。

安装apr依赖包步骤如下所示:

  1. 解压源码包:tar zxvf apr-4.5.tar.gz
  2. 进入源码文件夹:cd apr-1.4.5/
  3. 配置(生成Makefile):./configure --prefix=/usr/local/apr
  4. 编译源码:make
  5. 安装源码:sudo make install

[配置成功执行结果(./configure --prefix=/usr/local/apr)]

[安装成功结果]

安装apr-util依赖包步骤如下所示:

  1. 解压源码包:tar zxvf apr-util-3.12.tar.gz
  2. 进入源码文件夹:cd apr-util-1.3.12/
  3. 配置(生成Makefile):./configure --prefix=/usr/local/apr-util -with-apr=/usr/local/apr/bin/apr-1-config
  4. 编译源码:make
  5. 安装源码:sudo make install

[配置成功执行结果(./configure --prefix=/usr/local/apr-util -with-apr=/usr/local/apr/bin/apr-1-config )]

[安装成功结果]

安装pcre依赖包步骤如下所示:

  1. 解压源码包:unzip pcre-8.10.zip
  2. 进入源码文件夹:cd pcre-8.10/
  3. 配置(生成Makefile):./configure --prefix=/usr/local/pcre
  4. 编译源码:make
  5. 安装源码:sudo make install

[配置成功执行结果(./configure --prefix=/usr/local/pcre )]

[安装成功结果]

下载Httpd源码包,此处使用的是httpd-2.4.27.tar.gz 

具体安装步骤如下所示:

  1. 解压源码包:tar xvfj httpd-2.4.27.tar.bz2
  2. 进入源码文件夹:cd httpd-4.27/
  3. 配置(生成Makefile):./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ -with-pcre=/usr/local/pcre
  4. 编译源码:make
  5. 安装源码:sudo make install

[配置成功执行结果(./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ -with-pcre=/usr/local/pcre )]

[安装成功结果]

至此源码安装httpd软件结束,如果正确安装,则可以执行apachectl命令启动服务:

在线安装Httpd

本实验环境使用的系统是Ubuntu,所以使用apt-get工具来在线安装软件,具体步骤如下所示:

  1. 更新软件源:sudo apt-get update
  2. 安装httpd:sudo apt-get install apache2

如果安装成功则会出现如下界面:

注意:如果当前用户是root,则执行以上安装命令时不需要加sudo

编程要求

本关任务是学会如何在线安装Httpd软件。

具体编程要求如下:

  • 在线安装Httpd软件(实验环境使用的是Ubuntu系统);

任务描述

通过上一关的学习,我们学会如何在Linux系统上安装Httpd软件,当我们安装好后,我们接下学会如何开启/关闭Httpd服务。

本关任务:介绍在Linux系统上如何开启、关闭和重启Httpd服务。

相关知识

当我们安装成功Httpd软件后,默认Httpd服务是关闭的。此时,如果我们需要访问本地搭建的网站时,我们必须开启Httpd服务。

本实验环境使用的系统是Ubuntu,当我们使用apt-get在线安装软件后,通常会在/etc/init.d/目录下生成一个启动该服务软件的脚本,例如,我们使用apt-get安装Httpd软件后,我们可以看到在/etc/init.d/目录下生成一个名为apache2的脚本文件,该脚本可以用来控制Httpd服务的启动与关闭等信息。

[Httpd服务脚本文件]

Linux service 命令

Linux系统中使用service命令来控制系统服务,它可以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。

service命令的使用格式:

service 服务名 控制命令

  • 服务名:自动要控制的服务名,即/etc/init.d目录下的脚本文件名;
  • 控制命令:系统服务脚本支持的控制命令。

常见的控制命令:

  1. start:启动该服务;
  2. stop:关闭该服务;
  3. restart:重新启动该服务;
  4. status:查看该服务状态;

注意并不是所有的服务都支持以上4种控制命令,不同的服务提供不同的控制命令,大多数服务都支持以上4种常用的控制命令。

Httpd服务管理

当我们成功安装Httpd后,接下来,我们使用service命令来管理Httpd服务。

我们将在以下案例演示中分别介绍如何启动、关闭、重新启动Httpd服务,以及查看Httpd服务状态。

案例演示1

查看Httpd服务状态,可以使用如下命令:

sudo service apache2 status

[请在右侧“命令行”里直接体验]

可以看到当前Httpd服务处于NOT running状态,也就是关闭状态。

案例演示2

启动Httpd服务并且查看是否启动成功,可以使用如下命令:

  1. sudo service apache2 start
  2. sudo service apache2 status

[请在右侧“命令行”里直接体验]

可以看到Httpd服务处于running状态,并且进程ID号为4028

案例演示3

重新启动Httpd服务并且查看是否重新启动成功,可以使用如下命令:

  1. sudo service apache2 restart
  2. sudo service apache2 status

[请在右侧“命令行”里直接体验]

可以看到当前Httpd服务被重新启动,并且新的进程ID号也变为了4150

案例演示4

关闭Httpd服务并且查看是否关闭成功,可以使用如下命令:

  1. sudo service apache2 stop
  2. sudo service apache2 status

[请在右侧“命令行”里直接体验]

可以看到Httpd服务处于NOT running状态,也就是关闭状态。

注意:如果当前用户是root,则执行以上命令时不需要加sudo

编程要求

本关任务是学会如何启动/关闭Httpd服务器。

具体编程要求如下:

  • 开启Httpd服务(实验环境使用的是Ubuntu系统)。

任务描述

通过以上关卡的学习,我们学会了安装以及启动Apache2服务器。接下来我们来学习如何配置Apache2服务器。

本关任务:学会Apache2服务器的常见配置。

相关知识

在开始设置Apache2之前,我们知道只要我们启动了Httpd服务后,我们只需在浏览器中输入localhost或者127.0.0.1即可打开一个默认的静态网页,如下图所示。

[建议您在本地虚拟机进行测试]

以上的操作流程大致分为如下几步:

  1. 通过HTTP协议去连接上述IP地址的服务器系统,默认使用80端口(默认的端口是80,也有其他端口,如果使用默认端口则不需要显示输入80端口)请求Apache服务器相应目录下的html文件;
  2. Apache服务器收到用户的请求后,在它管理的文档目录中找到并打开相应的html文件,将文件内容响应给客户端浏览器即可;
  3. 浏览器收到Web服务器的响应后,接收并下载服务器端的html静态代码,然后浏览器解读代码,最终将网页呈现出来。

以上为请求一个网页的大致步骤,接下来我们来学习如何配置Apache服务器,例如修改默认请求端口。

Apache提供多个配置文件,每个配置文件中的内容都不同,常见使用到的配置文件有如下几个:

  1. /etc/apache2/apache2.conf:主配置文件;
  2. /etc/apache2/ports.conf:配置端口的文件;
  3. /etc/apache2/sites-enabled/000-default.conf:配置Web文档根目录的文件;

接下来我们将介绍Apache2的常见配置;

Apache2配置文件介绍

/etc/apache2/apache2.confApache2的主配置文件,里面存放的配置项是全局的配置项,常见的配置项有如下几个:

  1. Timeout:设置服务器在断定请求失败前等待的秒数。默认值300;
  2. KeepAlive:设置是否启用HTTP持久链接,On 代表打开,Off 代表关闭;
  3. MaxKeepAliveRequests:限制当启用KeepAlive时,每个连接允许的请求数量。如果将此值设为"0",将不限制请求的数目;
  4. KeepAliveTimeout:设置持久链接中服务器在两次请求之间等待的秒数;
Apache2其它配置文件

/etc/apache2/ports.confApache2的端口配置文件,里面存放的Apache监听的端口,其中Listen配置项是用来配置监听的端口。

/etc/apache2/sites-enabled/000-defaultApache2用来设置虚拟主机目录的配置文件,简单的理解就是用来设置部署的网站信息,如下图所示。

[/etc/apache2/sites-enabled/000-default文件内容]

这里我们需要注意的几点内容为:

  1. <VirtualHost *:80>:表示的是一个虚拟的主机,其中80表示其访问端口;
  2. DocumentRoot:表示该虚拟主机的文档根目录,也就是我们网页存放的目录;
  3. <Directory /var/www/>:表示根目录的一些属性配置;

案例演示1:

默认情况下Apache2服务器是使用80端口,现在我们将默认端口修改为8080,具体使用如下步骤:

  1. 设置 Listen为8080(sudo vim /etc/apache2/ports.conf)
  2. 修改 <VirtualHost *:80>为<VirtualHost *:8080>(sudo vim /etc/apache2/sites-enabled/000-default)
  3. sudo service apache2 restart
  4. 打开浏览器输入:localhost:8080

[修改ports.conf文件]

 

[修改000-default文件]

 

[使用浏览器访问localhost:8080地址]

[使用浏览器访问localhost地址]

可以看到再次使用80端口进行访问时,无法正常访问,因为此时Apache2监听的是8080端口。

案例演示2

配置Apache2同时监听两个端口,一个是80,另一个是8080,这两个端口都同时访问默认的静态网页,具体使用如下步骤:

  1. 添加 Listen 为 80 (sudo vim /etc/apache2/ports.conf)
  2. 添加 <VirtualHost *:80>(sudo vim /etc/apache2/sites-enabled/000-default),将 <VirtualHost *:8080> 结构下的内容完全复制一份,然后只需将复制出来的结构的 8080 修改成 80 即可
  3. sudo service apache2 restart
  4. 打开浏览器输入:localhost:8080
  5. 打开浏览器输入:localhost:80

[修改ports.conf文件]

[修改000-default文件]

 

[使用浏览器访问localhost:8080地址]

[使用浏览器访问localhost地址]

可以看到此时访问808080端口显示的结果是一样的,说明Apache2此时同时监听这两个端口的请求。

案例演示3:

修改80端口所监听的网站根目录为/var/www/html,同时将默认网页内容进行修改,具体使用如下步骤:

  1. sudo mkdir /var/www/html
  2. sudo touch /var/www/html/index.html
  3. 向文件 /var/www/html/index.html 添加内容:This is my first web!(sudo vim /var/www/html/index.html)
  4. 设置 <VirtualHost *:80>(sudo vim /etc/apache2/sites-enabled/000-default) ,将 <VirtualHost *:80> 结构下的所有 /var/www 修改 /var/www/html
  5. sudo service apache2 restart
  6. 打开浏览器输入:localhost:80

[添加内容/var/www/html/index.html]

[修改000-default文件]

[使用浏览器访问localhost地址]

编程要求

本关任务是学会如何配置Apache2服务器。

注意:在执行本关任务前,首先执行如下命令来初始化任务环境。

  1. mkdir /var/www/html/test
  2. cp /var/www/html/index.html /var/www/html/test

具体编程要求如下:

  • 将默认访问端口从80修改为8011;
  • 添加一个新的监听端口为8012,将根目录设置为/var/www/html/test

任务描述

Samba是在LinuxUNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。

本关任务:我们学会如何在Linux系统上搭建一个Samba服务器。

相关知识

Samba是在LinuxUNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMBServer Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。

SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置NetBIOS over TCP/IP使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

Linux系统安装软件和Windows系统上安装软件不太一样,在Windows上我们只需要下载需要安装的软件二进制文件(常见的格式是.exe),然后双击即可进行安装。而Linux系统上安装软件的常见方式有如下几种:

  1. 源码编译安装
  2. 软件包安装
  3. 在线安装

源码安装步骤是下载源码到本机,然后对源码进行编译,生成可执行文件,然后将生成的可执行文件拷贝到对应的安装目录即可,常见的软件源码包格式为.tar.gz.tar.bz2等;

软件包安装步骤是下载好已经编译好的可执行文件包,然后使用对应的包管理工具进行安装,不同的Linux系统使用不同的包管理工具,常见包管理工具如下所示:

  1. Ubuntu/Debian 系统使用 dpkg 进行管理软件包(软件包的后缀为.deb);
  2. Redhat/CentOS 系统使用 rpm 进行管理软件包(软件包的后缀为.rpm);

在线安装是指不需要用户亲自下对应软件的包,但是需要对应系统能够访问互联网,不同的Linux系统使用不同的工具进行在线安装软件,常见的在线安装软件的工具如下所示:

  1. Ubuntu/Debian 系统使用 apt-get 进行在线安装软件;
  2. Redhat/CentOS 系统使用 yum 进行在线安装软件;

建议使用在线安装软件,离线安装软件常见的问题是软件间的依赖问题,如果离线安装软件,则必须要手动安装依赖的库,而在线安装则只需要一条命令完成所有的操作,在线安装会自动去安装依赖库;

源码安装Samba

Samba软件依赖如下多个软件包,所以在安装Samba软件前,需要先安装如下依赖包。

  1. python-dev: sudo apt-get install python-dev
  2. libgnutls-dev: sudo apt-get install libgnutls-dev
  3. libacl1-dev: sudo apt-get install libacl1-dev
  4. libldap2-dev: sudo apt-get install libldap2-dev

首先下载源码包,此处使用的是samba-4.8.2.tar.gz

具体安装步骤如下所示:

  1. 解压源码包:tar zxvf samba-4.8.2.tar.gz
  2. 进入源码文件夹:cd samba-4.8.2/
  3. 配置(生成Makefile):./configure --prefix=/usr/local/samba --without-pam
  4. 编译源码:make
  5. 安装源码:sudo make install

[`./configure --prefix=/usr/local/samba --without-pam`成功执行结

[`make`成功执行结果]

[`sudo make install`成功执行结果]

至此源码安装Samba软件结束,如果正确安装,则可以执行如下命令启动服务:

  1. sudo /usr/local/samba/sbin/smbd –D
  2. sudo /usr/local/samba/sbin/nmbd –D

##### 在线安装Samba 本实验环境使用的系统是`Ubuntu`,所以使用`apt-get`工具来在线安装软件,具体步骤如下所示:

  1. 更新软件源:sudo apt-get update
  2. 安装samba:sudo apt-get install samba

如果安装成功则会出现如下界面:

注意:如果当前用户是root,则执行以上安装命令时不需要加sudo

编程要求

本关任务是学会如何在线安装samba软件。

具体编程要求如下:

  • 在线安装samba软件(实验环境使用的是Ubuntu系统)。

任务描述

通过上一关的学习,我们学会如何在Linux系统上安装samba软件,当我们安装好后,我们接下学会如何开启/关闭samba服务。

本关任务:介绍在Linux系统上如何开启、关闭和重启samba服务。

相关知识

当我们安装成功samba软件后,Ubuntu 12.04系统默认samba服务是开启的。

本实验环境使用的系统是Ubuntu,当我们使用apt-get在线安装软件后,通常会在/etc/init.d/目录下生成一个启动该服务软件的脚本。例如,我们使用apt-get安装samba软件后,我们可以看到在/etc/init.d/目录下生成一个名为smbd的脚本文件,该脚本可以用来控制samba服务的启动与关闭等信息。

[`samba`服务脚本文件]

##### Linux service 命令

Linux系统中使用service命令来控制系统服务,它可以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。

service命令的使用格式:

service 服务名 控制命令

  • 服务名:自动要控制的服务名,即/etc/init.d目录下的脚本文件名;
  • 控制命令:系统服务脚本支持的控制命令。

常见的控制命令:

  1. start:启动该服务;
  2. stop:关闭该服务;
  3. restart:重新启动该服务;
  4. status:查看该服务状态;

注意并不是所有的服务都支持以上4种控制命令,不同的服务提供不同的控制命令,大多数服务都支持以上4种常用的控制命令。

samba服务管理

当我们成功安装samba后,接下来,我们使用service命令来管理samba服务。

我们将在以下案例演示中分别介绍如何启动、关闭、重新启动samba服务,以及查看samba服务状态。

案例演示1

查看samba服务状态,可以使用如下命令:

sudo service smbd status

[请在右侧“命令行”里直接体验]

可以看到当前`samba`服务处于`running`状态,也就是运行状态,其运行进程的`ID`为`54244`。

案例演示2

关闭samba服务并且查看是否关闭成功,可以使用如下命令:

  1. sudo service smbd stop
  2. sudo service smbd status

[请在右侧“命令行”里直接体验]

可以看到samba服务处于waiting状态。

案例演示3

启动samba服务并且查看是否启动成功,可以使用如下命令:

  1. sudo service smbd start
  2. sudo service smbd status

[请在右侧“命令行”里直接体验]

可以看到`samba`服务处于`running`状态,也且运行进程`ID`为`54408`。

案例演示4

重启samba服务并且查看是否重启成功,可以使用如下命令:

  1. sudo service smbd restart
  2. sudo service smbd status

[请在右侧“命令行”里直接体验]

可以看到当前samba服务先被stop后,紧接着被start

注意:如果当前用户是root,则执行以上命令时不需要加sudo

编程要求

本关任务是学会如何启动/关闭samba服务器。

具体编程要求如下:

  • 开启samba服务(实验环境使用的是Ubuntu系统)。

任务描述

通过以上关卡的学习,我们学会了如何安装和启动samba服务器软件,接下来我们来学习如何利用samba客户端软件进行远程登录服务器。

本关任务:学会如何使用samba客户端软件进行远程登录服务器。

相关知识

Linux系统上samba客户端软件有smbclient

smbclient命令属于samba套件,它提供一种命令行使用交互式方式访问samba服务器的共享资源。这里详细介绍Linux smbclient命令的一些经常使用的命令。

在线安装smbclient软件

本实验环境使用的系统是Ubuntu,所以使用apt-get工具来在线安装软件,具体步骤如下所示:

  1. 更新软件源:sudo apt-get update
  2. 安装smbclient:sudo apt-get install smbclient

如果安装成功则会出现如下界面:

**注意**:如果当前用户是`root`,则执行以上安装命令时不需要加`sudo`。

samba用户管理

smbpasswd命令属于samba套件,能够实现添加或删除samba用户和为用户修改密码。

smbpasswd命令格式:

smbpasswd 选项 用户名

常见选项如下:

  1. -a:向smbpasswd文件中添加用户;
  2. -c:指定samba的配置文件;
  3. -x:从smbpasswd文件中删除用户;
  4. -d:在smbpasswd文件中禁用指定的用户;
  5. -e:在smbpasswd文件中激活指定的用户;
  6. -n:将指定的用户的密码置空;

用户名:指定要修改smb密码的用户。

注意:这里使用的用户是系统中已经存在的用户。

案例演示1:

添加一个samba用户sambaUser,可以使用如下命令:

  1. sudo useradd sambaUser
  2. sudo smbpasswd -a sambaUser

[请在右侧“命令行”里直接体验]

smbclient命令常见用法

smbclient 命令格式:

smbclient 选项 smb服务器

常见选项如下:

  1. -L:显示服务器端所分享出来的所有资源;
  2. -p<TCP连接端口>:指定服务器端 TCP 连接端口编号;
  3. -s<目录>:指定 smb.conf 所在的目录;
  4. -U<用户名称>:指定用户名称;
  5. -N:不用询问密码;

smb服务器:指定要连接的smb服务器。

常见smbclient命令如下所示:

  1. smb: \> ? 或 help [command] 提供关于帮助或某个命令的帮助;
  2. smb: \> ![shell command]   执行所用的 SHELL 命令,或让用户进入  SHELL 提示符;
  3. smb: \> cd [目录]  切换到服务器端的指定目录,如未指定,则  smbclient 返回当前本地目录;
  4. smb: \> lcd [目录]  切换到客户端指定的目录;
  5. smb: \> dir 或 ls 列出服务器端当前目录下的文件;
  6. smb: \> exit 或 quit 退出smbclient;
  7. smb: \> get file1  file2 从服务器上下载 file1,并以文件名 file2 存在本地机上;如果不想改名,可以把 file2 省略;
  8. smb: \> mget file1 file2 file3  filen 从服务器上下载多个文件;
  9. smb: \> md 或 mkdir 目录 在服务器上创建目录;
  10. smb: \> rd 或 rmdir 目录 删除服务器上的目录;
  11. smb: \> put file1 [file2] 向服务器上传一个文件 file1,传到服务器上改名为 file2;
  12. smb: \> mput file1 file2 filen 向服务器上传多个文件;

注意:smbclient的很多命令和ftp的命令用法相似。

案例演示环境初始化:执行如下操作:向文件/etc/samba/smb.conf结尾追加如下内容,并且重新启动Samba服务器,下一关讲解为什么要这样做。

  1. [homes]
  2.         comment = smbclient homes
  3.         path = /tmp
  4.         browseable = no
  5.         writable = yes
  6.         create mask = 0664
  7.         directory mask = 0775

[修改后的配置文件]

列出某个IP地址所提供的共享文件夹

案例演示1:

使用smbclient客户端列出本地所提供的共享文件夹(使用sambaUser用户去登录服务器,密码为fzm),可以使用如下命令:

smbclient -L 127.0.0.1 -U sambaUser%fzm

[请在右侧“命令行”里直接体验]

可以看到本地共享的文件夹有3个,分别是:print$IPC$sambaUser

远程连接Samba服务器

案例演示2:

使用smbclient客户端去连接sambaUser共享文件夹(使用sambaUser用户去登录服务器,密码为fzm),可以使用如下命令:

smbclient //127.0.0.1/sambaUser -U sambaUser%fzm

[请在右侧“命令行”里直接体验]

其它操作

案例演示3:

显示远程主机的当前目录,并且显示客户端当前工作目录,显示远程主机的当前目录下的所有文件信息,显示客户端当前工作目录下的所有信息,可以使用如下命令:

  1. pwd
  2. ! pwd
  3. ls
  4. ! ls

[请在右侧“命令行”里直接体验]

案例演示4:

在远程主机上新创建一个文件夹newDir,然后将本地的/home/fzm/testFile上传到newDir目录下,将远程主机上的sambaUser/fzm文件下载到/home/fzm目录下,并重命名为newFzm,最后退出smbclient客户端,可以使用如下命令:

  1. mkdir newDir
  2. put /home/fzm/testFile newDir/testFile
  3. get sambaUser/fzm /home/fzm/newFzm
  4. exit

[请在右侧“命令行”里直接体验]

案例演示5:

Windows系统上通过samba服务器去访问Linux系统共享的文件夹,可以使用如下步骤:

  • Windows主机上打开"运行"(快捷键win+r)输入需要访问的LinuxIP地址(格式为:\\IP);

[请在`Windows`主机上进行验证]

  • 回车后即可看到Linux主机上所共享的文件夹(fzm);

[请在`Windows`主机上进行验证]

  • 打开fzm文件夹进行访问即可(有时需要输入samba的用户名和密码才能访问)。

[请在`Windows`主机上进行验证]

编程要求

本关任务是学会如何使用smbclient命令访问samba服务器的共享资源。

注意:在执行本关任务前,首先执行如下命令来初始化任务环境。

  1. apt-get update
  2. apt-get install smbclient
  3. useradd testUser
  4. smbpasswd -a testUser(输入新设置的密码)
  5. touch testFile
  6. 向文件`/etc/samba/smb.conf`结尾追加如下内容,并且重新启动`Samba`服务器,并且重新启动服务
  1. [homes]
  2.         comment = smbclient homes
  3.         path = /tmp
  4.         browseable = no
  5.         writable = yes
  6.         create mask = 0664
  7.         directory mask = 0775

具体编程要求如下:

  • 启动samba服务;
  • 使用smbclient命令连接本机testUser共享文件夹(将本机作为远程服务器,并且使用testUser用户去访问);
  • 在远程服务器上新建一个目录Dir
  • 将本地的一个文件(/root/testFile)上传到远程主机的Dir目录下并重命名为upLoadFile

任务描述

通过以上关卡的学习,我们学会了使用smbclient命令来登录远程主机,并进行文件的上传和下载操作。接下来我们来学习如何配置samba服务器。

本关任务:学会samba服务器的常见配置。

相关知识

上一关卡中,我们在案例演示前进行了一系列环境的初始化,现在我们详细的介绍为什么我们要做那些环境的配置。

samba服务器提供了很多的配置项,每个配置项都有不同的功能,接下来,我们介绍samba常见的配置项功能,samba服务器的配置文件存放路径为:/etc/samba/smb.conf目录下。

smb.conf结构

smb.conf文件中包括4种结构,[Global]、[Homes]、[printers]、[Userdefined_shareName],其中:

  1. Globa:用于定义全局参数和缺省值;
  2. Homes:用于用户的home目录共享;
  3. Printers:用于定义打印机共享;
  4. Userdefined_ShareName:用于自定义共享(可有多个)。
全局配置参数[Global]

全局配置参数常用的主要有以下几个:

  1. Workgroup:设置 samba 要加入的工作组;
  2. server string:指定浏览列表里的机器描述;
  3. netbios name:设 置samba 的 NetBIOS 名字(需要自己添加);
  4. Intterface:设置接口 IP 地址;
  5. Host allow:设置允许访问的主机 IP;
  6. log file:指定日志文件的名称;
  7. Max  log size:指定日志文件的最大尺寸(KB);
  8. security:是定义 samba 的安装等级。

案例演示1:

修改浏览列表里的机器描述为This is My Samba Server,具体使用如下步骤:

  1. 修改 smb.conf 文件中的 server string 值(sudo vim /etc/samba/smb.conf)
  2. sudo service smbd restart
  3. smbclient -L 127.0.0.1 -U sambaUser%fzm

[修改配置文件]

[请在右侧“命令行”里直接体验]

配置home共享[homes]

home共享默认将用户的宿主目录进行了共享,这是十分危险的。为了安全考虑,我们需要自己指定共享的目录,使用home共享的好处是不同的登录用户看到的共享目录名称是本身用户名。

常见的设置共享目录的属性有如下几个:

  1. comment :描述该共享的名称;
  2. path:定义该共享的目录;
  3. browseable :指定共享的目录是否可浏览;
  4. Writable:指定共享的目录是否有写入权限;
  5. read only:指定共享的目录为只读权限;
  6. Public:指定是否可以允许 Guest 帐户访问;
  7. Guest  ok:通 public 相同,yes 为允许 guest 访问;
  8. create mask:创建文件的默认权限;
  9. directory mask:创建目录的默认权限。

我们现在讲解为什么我们在上一关中要向配置文件添加如下属性:

[上一关配置文件]

可以看到我们将home的共享目录指定为/tmp,并且设置可以有写权限,以及创建文件和目录的默认权限。

案例演示1:

home设置为可浏览,具体使用如下步骤:

  1. 修改 smb.conf 文件中的 server string 值(sudo vim /etc/samba/smb.conf)
  2. sudo service smbd restart
  3. smbclient -L 127.0.0.1 -U sambaUser%fzm

[请在右侧“命令行”里直接体验]

可以看到现在本机共享文件夹又多了一个homes的文件夹。

自定义共享

自定义共享文件夹可以设置多个,设置方式与home的设置方式相似,并且共享文件夹的名字随便起。

案例演示1:

自定义一个共享文件夹,将共享名字设置为MyShare,指定共享目录为/tmp,并且设置其可写属性以及创建文件和目录的默认权限分别是06440755,具体使用如下步骤:

  1. 修改 smb.conf 文件中的 server string 值(sudo vim /etc/samba/smb.conf)
  2. sudo service smbd restart
  3. smbclient -L 127.0.0.1 -U sambaUser%fzm

[追加配置文件]

[请在右侧“命令行”里直接体验]

可以看到新创建的共享文件夹MyShare成功的显示出来,如果登录的只需要输入:smbclient //127.0.0.1/MyShare -U userName%passwd

编程要求

本关任务是学会如何配置samba服务器。

注意:在执行本关任务前,首先执行如下命令来初始化任务环境。

  1. mkdir /testDir
  2. chmod 777 /testDir
  3. useradd testUser
  4. smbpasswd -a testUser(输入新设置的密码)
  5. touch testFile

具体编程要求如下:

  • 自定义一个共享文件夹,将共享名字设置为TestShare,指定共享目录为/testDir,同时设置其可浏览,并且设置其可写属性以及创建文件和目录的默认权限分别是06440755
  • 使用smbclient命令连接本机TestShare共享文件夹(将本机作为远程服务器,并且使用testUser用户去访问);
  • 在远程服务器上新建一个目录Dir;
  • 将本地的一个文件(/root/testFile)上传到远程主机的Dir目录下并重命名为upLoadFile

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
一、 实验目的 1、通过实验了解和熟悉Linux网络服务; 2、掌握Linux下建立Web服务器; 3、掌握Linux下建立FTP服务器。 二、 开发工具和运行环境 1、虚拟机VMware 2、Linux操作系统 三、 实验内容 1、了解和熟悉Linux网络服务 了解NFS网络文件系统,NFS网络文件系统架设及挂载方法,Web服务器的架设方法,FTP服务器的架设方法及访问方法,Samba服务器的架设方法。 2、Linux下建立Web服务器 (1)Apache 服务器的安装及启动 ●检测与安装 Apache rpm -qa | grep httpd ●如果没有检测到软件包,需要进行安装,在安装目录中,执行如下命令: rpm -ivh httpd-tools*. Rpm rpm -ivh mailcap-2.1.31-2.el6.noarch.rpm rpm - ivh httpd-2*. rpm rpm -ivh httpd-manual-2.*.rpm ●重新启动/停止/启动Apache服务: systemctl restart/stop/start httpd.service 或service httpd restart/stop/start ●查看 Apache服务器的运行状态: systemctl status httpd. service 或service httpd status ●测试 Apache服务器运行状态: 在图形界面打开火狐浏览器输入http://127. 0.0.1呈现测试页(CentOS 用户可以在终端使用lynx 浏览器打开,如没有安装,则使用rpm在光盘中安装lynx 浏览器) 在/var/www/html目录下创建test. html页面,使用vi编辑保存内容,重启apache服务 在火狐浏览器输入http://127. 0. 0.1/test. html查看test. html内容 (2)Apache 服务器配置 Apache主要配置文件为httpd.conf,存储位置在/etc/httpd/conf目录下 (3)个人Web站点配置 RedHat方式: a:修改配置文件,使用vi编辑器修改主配置文件 /etc/httpd/conf/httpd. conf,修改如下配置,去掉原文中的注释符号 UserDir disable root//基于安全 考虑,禁止root用户使用自己的站点.UserDir public. _html//设 置对每个用户的Web站点目录 Allow0verride FileInfo AuthConfig Limit Opt ions MultiViews Indexes SymLinkIfOwnerMatch Inc ludeNoExec Order allow, deny Allow from all Order deny, allow Deny from all 保存文件退出,重启httpd服务 b:用户创建个人Web站点 从root用户身份切换成user1用户(如果没有普通用户,需要先创建普通用户): 在user1主目录下面创建个人站点目录$mkdir public_ html 到/home目录下修改user1目录权限 $chmod 711 user1 进入到public. _html 目录下使用vi创建index. html文件,保存退出重启httpd服务 在浏览器中输入网址http://127.0.0.1/ user1/index. html,查看效果======= CentOS方式: a:修改配置文件,使用vi编辑器修改/etc/httpd/ conf.d/userdir.conf修改成如下配置信息 UserDir disable root//基于安全 考虑,禁止root用户使用自己的站点 UserDir public_ html//设置对每个用户的Web站点目录 Allowverride None #修改为 None options None#修改为None Require method GET POST OPTIONS b:用户创建个人Web站点
一、 实验目的 1、 通过实验了解和熟悉Linux文件系统 2、 掌握文件操作命令 3、 了解文件与目录的默认权限,掌握文件权限的设置 4、 掌握文件的链接 二、 开发工具和运行环境 1、虚拟机VMware 2、Linux操作系统 三、 实验内容 1、了解和熟悉Linux文件系统 了解Linux文件系统、文件命名、文件类型和常见目录:根目录(/)、 .bin、boot、dev、etc、home、Lib、lost+found、 opt、root、 usr、mnt、proc、sbin、 tmp、 var. 2、文件操作命令: (文件和目录名自拟、自行设计实验步骤) (1) 1s: 显示目录内容 -a显示指定目录下所有的目录与文件 -1以 长格式显示文件的详细信息。 -d显示目录本身信息 i显示索引号 (2) cd:改变当前工作目录 格式: cd [目录名] cd .. 上移- -层目录(注意,需要有空格) cd 移到自己的主目录 (3) cat: 查看文件信息命令 显示文件信息:格式: cat [选项]文件名 -n输出编号 建立文件: cat>新文件名ctrl+d 合并文件: cat 文件1文件2>新文件 (4) more: 逐屏显示文件内容 格式: more 文件名 (5) cp:复制命令 格式: cp [选项] 源文件或目录目标文件或目录 同时可以复制多个文件 -f 出现覆盖情况不提示 -p复制后,保持原有属性。目标文件保持原有的生成日期和inode编号 -r 复制目录及目录下的文件 普通用户并不能进行这样的操作,只能切换到root用户然后进行-r的递归复制。 (6) rm: 删除文件与目录 格式: mv [选项] 文件名或目录名 -f删除时不提示 -r 删除目录及目录下的文件(常用: -rf ) (7) mv: 文件移动及改名命令 格式: mv [选项]源文件或目录 目 标文件或目录 -f覆盖文件时 不提示 (8) grep: 文件信息检索命令 格式: grep [选项]字符串 [文件 ... ] -i 不区分大小写 (9) sort: 排序命令 格式: sort [选项][文件列表] (10) mkdir 创建目录命令 格式: mkdir [选项] [目录名] 可以同时创建多个目录 p :递归创建目录 -m:创建目录的时候赋予权限 (11) rmdir删除“空”目录命令 格式: rmdir [选项] [目录名] 注意:目录为空才能删除;否则需采用rm - r来删除。 p :递归删除目录,删除子目录,其父目录为空时,也同时删除3、文件权限的设置: (文件和目录名自拟、自行设计实验步骤) 文件的属主与属组 (1) chown [选项] [所有者][:[组]] 文件列表 更改每个文件的所有者和/或所属组。 字母模式形式即“用户对象操作符号操作权限”,其命令格式为:(2) chmod [选项]模式[,模式]文件名 +:添加-:取消=:赋予并取消其他所有 数字形式即由三位八进制数字组成,其命令格式为: chmod八进制模式 文件名 文件的特殊权限: SUID、 SGID 和Sticky 4、文件的链接: (文件和目录名自拟、自行设计实验步骤) (1)硬链接:不带选项,ln命令创建硬链接。在另外的目录或本目录中增加目标文件的一个目录项,一个文件就登记在多个目录中 1n源文件目标文件 (2)软链接(符号链接):用“1n -s”命令建立符号链接时,最好源文件用绝对路径名,这样可以在任何工作目录下进行符号链接。类似于Windows系统中的快捷方式。 In -s源文件目标文件
Linux操作系统实验指导书是一本用于教学和学习Linux操作系统的指导书籍。该指导书的目的是帮助读者快速入门Linux操作系统,并且提供实验练习来巩固所学知识和技能。 指导书的内容一般包括以下几个方面:首先是操作系统的基本概念和原理,包括Linux操作系统的历史、特点、优势等。其次是系统的安装与配置,包括硬件要求、安装步骤、分区与文件系统配置等。然后是系统的基本操作,包括文件与目录管理、用户与权限管理、进程管理、网络配置等。此外,指导书还会介绍一些常用的系统工具和命令,如文本编辑器、压缩解压工具、网络诊断工具等。最后,指导书会提供一些实验案例,通过实践操作来巩固所学知识,并且引导读者进行更深入的学习和应用。 指导书的优势在于能够系统地讲解Linux操作系统的各个方面,让读者能够全面了解和掌握Linux操作系统的使用。通过实验练习,读者能够更加深入地理解所学知识,并且培养自己的动手能力和解决问题的能力。另外,指导书还可以根据读者的学习进度和兴趣,提供一些扩展内容和拓展实验,让读者能够自主学习和拓宽知识面。 总之,Linux操作系统实验指导书是一本很实用的学习工具,能够帮助读者快速入门Linux操作系统,并且提供实验练习来巩固所学知识和技能。无论是初学者还是有一定经验的用户,都可以从中受益,并且逐步提升自己的技术水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Meteor.792

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值