国产操作系统实验指导-实验06:实现文件服务

561 阅读10分钟

一、实验目的

1、了解FTP和SMB;

2、掌握通过vsftpd发布访问FTP服务;

3、掌握使用Samba实现面向全终端的文件共享服务。

二、实验学时

2学时

三、实验类型

综合性

四、实验需求

1、硬件

每人配备计算机1台。

2、软件

安装Edge、Firefox、Chrome等最新版本浏览器,安装Mobaxterm软件。

3、网络

本地主机能够访问教学云计算平台,虚拟机按照配置指南配置网络。

4、工具

无。

五、实验任务

1、完成vsftpd的在线安装与配置;

2、完成vsftpd服务的管理;

3、完成通过vsftpd发布访问FTP服务;

4、完成Samba的安装;

5、完成全终端的文件共享服务。

六、实验环境

1、本实验需要VM 2台。

2、本实验VM配置信息如下表所示。

2025-09-12_112304.png

注意:虚拟机名称、主机名称均需要参考实验课提供的配置指南进行配置。

3、本实验拓扑图。

4、本实验操作演示视频。

本实验操作演示视频为视频集的第6集:www.bilibili.com/video/BV1iH…

七、实验内容及步骤

1、实现面向互联网的FTP文件服务

1.1 场景描述

创建一个允许用户通过互联网连接的文件共享服务器,并进行文件的上传和下载操作。

1.2 需求描述

(1)支持用户通过互联网进行远程连接。

(2)允许用户进行文件的上传和下载操作。

1.3 解决方案

(1)使用专业的FTP服务器软件vsftpd。

(2)在服务器上配置防火墙,开启FTP服务所需的端口。

(3)配置匿名访问选项,允许匿名用户访问。

1.4 具体步骤

(1)使用yum install命令在线安装vsftpd服务。

# 在线安装vsftpd服务
[root@Lab-06-Task-01 ~]# yum install -y vsftpd

(2)使用systemctl命令启动vsftpd服务,设置为开机自启动并查看服务状态。

# 启动vsftpd服务
[root@Lab-06-Task-01 ~]# systemctl start vsftpd
# 设置vsftpd服务为开机自启动
[root@Lab-06-Task-01 ~]# systemctl enable vsftpd
# 查看vsftpd服务状态
[root@Lab-06-Task-01 ~]# systemctl status vsftpd

(3)使用firewall-cmd命令添加防火墙规则,允许所有客户端可以访问ftp服务,重新载入防火墙规则使其生效,并将SELinux设置为permissive模式。

# 允许所有客户端可以访问ftp服务
[root@Lab-06-Task-01 ~]# firewall-cmd --zone=public --add-service=ftp --permanent
# 重新载入防火墙规则使其生效
[root@Lab-06-Task-01 ~]# firewall-cmd --reload
# 将SELinux设置为permissive模式
[root@Lab-06-Task-02 ~]# setenforce 0

(4)使用mkdir创建共享目录/var/ftp/share,设置目录权限为777,并修改目录的所有者和所属组为ftp。

# 创建共享目录,设置目录权限为777,并修改目录的所有者和所属组为ftp并设置用户密码
[root@Lab-06-Task-02 ~]# mkdir -p /var/ftp/share
[root@Lab-06-Task-02 ~]# chmod 777 -R /var/ftp/share
[root@Lab-06-Task-02 ~]# chown ftp:ftp /var/ftp/share
[root@Lab-06-Task-02 ~]# passwd ftp

(5)使用cp命令备份vsftpd服务的配置文件vsftpd.conf。

# 备份vsftpd服务的配置文件vsftpd.conf
[root@Lab-06-Task-01 ~]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak1

(6)使用vi命令修改vsftpd.conf配置文件发布FTP服务。

# 修改vsftpd.conf配置文件发布FTP服务
[root@Lab-06-Task-01 ~]# vi /etc/vsftpd/vsftpd.conf
# --------------------vsftpd.conf文件--------------------
# 允许匿名用户登录
anonymous_enable=YES
# 允许所有登录拥有写权限
write_enable=YES
# 允许匿名用户上传文件
anon_upload_enable=YES
# 允许匿名用户创建目录
anon_mkdir_write_enable=YES
# 允许匿名用户删除、重命名等
anon_other_write_enable=YES
# 权限掩码,匿名用户上传文档时预设的权限掩码
local_umask=022
# --------------------vsftpd.conf文件--------------------

(7)使用systemctl restart命令重启vsftpd服务使其配置生效。

# 重启vsftpd服务使配置生效
[root@Lab-06-Task-01 ~]# systemctl restart vsftpd

1.5 服务测试

1.5.1 安装FTP客户端FileZilla

(1)从FileZilla的官方网站(www.filezilla.cn)获取FTP客户端可执行程序进行安装。

(2)安装完成后,启动FileZilla客户端,在左上角的“主机”输入框中输入“172.31.0.161”,用户名密码留空,端口默认,点击“快速连接”,如图6-1所示。

1.5.2 上传文件测试

(1)在Window本地客户端创建名为“upload.txt”的文件。

(2)在FTP客户端将“upload.txt”文件上传到FTP服务器的/share目录下,如图6-2所示。

1.5.3下载文件测试

(1)使用ssh远程终端进入到FTP服务器的/var/ftp/pub目录下,创建“download.txt”文件。

# 进入到FTP服务器的/var/ftp/pub目录下
[root@Lab-06-Task-01 ~]# cd /var/ftp/pub
# 创建“download.txt”文件
[root@Lab-06-Task-01 pub]# touch download.txt

(2)在FTP客户端,将FTP服务/pub目录下的“download.txt”文件下载到Windows本地客户端,如图6-3所示。

1.5.4 创建、删除和重命名文件测试

(1)在FTP服务/share目录下创建“file1”文件,创建“dir1”目录。

(2)使用FTP客户端删除FTP服务/share目录下的“file1”文件,将“dir1”目录重命名为“dir2”,如图6-4、6-5所示。

2、实现团队内部的SMB文件共享服务

2.1 场景描述

某团队为提高信息化应用水平,提高数据共享和资源服务水平,现需要构建内部网络存储,并能够全面支持移动终端等智能设备,实现灵活的资源共享。

2.2 需求描述

(1)建设内部文件共享服务;

(2)支持全终端智能设备。

2.3 解决方案

(1)通过Samba建设网络存储服务;

(2)仅允许团队内部网络访问;

(3)支持多操作系统、支持多终端。

2.4 具体步骤

(1)使用yum install命令在线安装Samba软件。

# 在线安装Samba服务
[root@Lab-06-Task-02 ~]# yum install -y samba samba-client

(2)使用systemctl启动Samba服务,设置为开机自启动,并查看服务状态。

# 在线安装Samba服务
[root@Lab-06-Task-02 ~]# yum install -y samba samba-client
# 启动Samba服务
[root@Lab-06-Task-02 ~]# systemctl start smb nmb
# 设置Samba服务为开机自启动
[root@Lab-06-Task-02 ~]# systemctl enable smb nmb
# 查看Samba服务状态
[root@Lab-06-Task-02 ~]# systemctl status smb nmb

(3)使用firewall-cmd命令添加防火墙规则,允许所有客户端可以访问Samba服务,并重新载入防火墙规则使其生效,并将SELinux设置为permissive模式。

# 允许所有客户端可以访问Samba服务
[root@Lab-06-Task-02 ~]# firewall-cmd --zone=public --add-service=samba --permanent
# 重新载入防火墙规则使其生效
[root@Lab-06-Task-02 ~]# firewall-cmd --reload
# 将SELinux设置为permissive模式
[root@Lab-06-Task-02 ~]# setenforce 0

(4)使用mkdir命令创建文件共享目录/srv/smbfile/smbshare、/srv/smbfile/smbwork和/srv/smbfile/smbpublic,并分别设置目录权限为777。

# 创建共享服务目录,并设置目录权限为777
[root@Lab-06-Task-02 ~]# mkdir -p /srv/smbfile/smbshare
[root@Lab-06-Task-02 ~]# mkdir -p /srv/smbfile/smbwork
[root@Lab-06-Task-02 ~]# mkdir -p /srv/smbfile/smbpublic
[root@Lab-06-Task-02 ~]# chmod 777 -R /srv/smbfile/smbshare
[root@Lab-06-Task-02 ~]# chmod 777 -R /srv/smbfile/smbwork
[root@Lab-06-Task-02 ~]# chmod 777 -R /srv/smbfile/smbpublic

(5)使用useradd命令创建用户smbshareuser和smbworkuser,并使用smbpasswd命令分别设置用户smbshareuser和smbworkuser的密码为smbshareuser@pwd、smbworkuser@pwd。

# 创建用户smbshareuser、smbworkuser
# 设置smbshareuser用户密码为smbshareuser@pwd,设置smbworkuser用户密码为smbworkuser@pwd
[root@Lab-06-Task-02 ~]# useradd smbshareuser -s /sbin/nologin
[root@Lab-06-Task-02 ~]# useradd smbworkuser -s /sbin/nologin
[root@Lab-06-Task-02 ~]# smbpasswd -a smbshareuser
[root@Lab-06-Task-02 ~]# smbpasswd -a smbworkuser

(6)使用cp命令备份Samba服务配置文件,并使用vi命令修改Samba服务配置文件,修改完成后使用systemctl reload命令重新载入配置文件使其生效。

# 备份Samba服务配置文件smb.conf
[root@Lab-06-Task-02 ~]# cp /etc/samba/smb.conf /etc/samba/smb.conf.bak1
# 修改Samba服务配置文件
[root@Lab-06-Task-02 ~]# vi /etc/samba/smb.conf
# --------------------smb.conf文件--------------------
[global]
        workgroup = Lab06
        server string = Welcome to samba server version %v
        netbios name = Lab06
        # 日志文件的存储位置以及日志文件名称
        log file = /var/log/samba/samba-log.%m
        # 日志文件的最大容量
        max log size = 10240
        security = user
        interfaces = ens33
        # 用户后台类型
        passdb backend = tdbsam
        # 限制访问范围
        hosts allow = 172.31.0.0/24
        # 限制最大连接数10
        max connections = 10
[smbpublic]
        comment = workgroup public share disk
        path = /srv/smbfile/smbpublic
        # 该共享的管理者
        admin users = smbworkuser
        public = yes
        browseable = yes
        readonly = yes
        guest ok = yes
[smbshare]
        comment = workgroup open share disk
        path = /srv/smbfile/smbshare
        admin users = smbshareuser
        public = no
        browseable = yes
        # 允许访问该共享的用户
        valid users = smbshareuser,smbworkuser
        readonly = no
        writable = yes
        # 允许写入该共享的用户
        write list = smbshareuser,smbworkuser
        # 新建文件的掩码
        create mask = 0777
        # 新建目录的掩码
        directory mask = 0777
        # 强制创建文件权限
        force directory mode = 0777
        # 强制创建目录权限
        force create mode = 0777
[smbwork]
        comment = workgroup work share disk
        path = /srv/smbfile/smbwork
        admin users = smbworkuser
        public = no
        browseable = yes
        valid users = smbshareuser,smbworkuser
        readonly = no
        read list = smbshareuser
        writable = yes
        write list = smbworkuser
        create mask = 0777
        directory mask = 0777
        force directory mode = 0777
        force create mode = 0777
# --------------------smb.conf文件--------------------

# 重新载入配置文件使其生效
[root@Lab-06-Task-02 ~]# systemctl reload smb nmb

2.5 服务测试

在主机Lab-06-Task-02上(Samba服务器端)分别在/srv/smbfile/smbpublic、/srv/smbfile/smbshare、/srv/smbfile/smbwork目录下创建samba.txt文件,并编辑文件内容“Samba Server.”。

# 创建文件并写入内容“Samba Server.”
[root@Lab-06-Task-01 ~]# echo "Samba Server." > /srv/smbfile/smbpublic/samba.txt
[root@Lab-06-Task-01 ~]# echo "Samba Server." > /srv/smbfile/smbshare/samba.txt
[root@Lab-06-Task-01 ~]# echo "Samba Server." > /srv/smbfile/smbwork/samba.txt

在Linux上进行测试,以openEuler为例,访问文件共享服务。

(1)在测试主机Lab-06-Task-01上创建资源目录。

# 创建资源目录
[root@Lab-06-Task-01 ~]# mkdir -p /srv/smbshare
[root@Lab-06-Task-01 ~]# mkdir -p /srv/smbwork
[root@Lab-06-Task-01 ~]# mkdir -p /srv/smbpublic

(2)挂载Samba服务的共享目录到创建的资源目录。

# 挂载共享目录
[root@Lab-06-Task-01 smbshare]# mount -t cifs -o username=smbshareuser,password='smbshareuser@pwd' //172.31.0.162/smbshare /srv/smbshare
[root@Lab-06-Task-01 smbshare]# mount -t cifs -o username=smbworkuser,password='smbworkuser@pwd' //172.31.0.162/smbwork /srv/smbwork
[root@Lab-06-Task-01 smbshare]# mount -t cifs -o username=smbshareuser,password='smbshareuser@pwd' //172.31.0.162/smbpublic /srv/smbpublic

(3)查看资源目录中的文件内容。

# 查看文件
[root@Lab-06-Task-01 ~]# cat /srv/smbpublic/samba.txt
Samba Server.
[root@Lab-06-Task-01 ~]# cat /srv/smbshare/samba.txt
Samba Server.
[root@Lab-06-Task-01 ~]# cat /srv/smbwork/samba.txt
Samba Server.

八、实验考核

实验考核分为【实验智能考】和【实验线上考】两个部分。

实验智能考:通过AI智能体、实验操作日志智能分析等措施,由AI智能对实验学习过程进行综合评分。

实验线上考:每个实验设置10道客观题。通过线上考核平台(如课堂派)进行作答。

实验智能考的成绩占本实验成绩的30%,实验线上考的成绩占本实验成绩的70%。

1、实验智能考

实验4-6为openEuler的服务器部署,学生通过教学云计算平台的统一运维平台和堡垒机,在提供的云计算平台上进行实验,并提交最终实验成果的URL地址,通过AI和大数据技术对学生操作命令进行实验过程和成果的综合考核,最终由人工智能评定最终成绩。

2、实验线上考

本实验线上考共10题,其中单选5题、多选1题、判断2题、填空2题。