1. 需求分析

1.1 课题简介

随着计算机互联网的迅速发展,大多数学校已经实现教学的信息化,从传统的黑板教学方式转变为现阶段的多媒体教学,教学的资源,素材课件,甚至学生的作业也都实现数字化,为了实现这一功能,运用课程所学知识,构建一种基于 Linux 系统的教学资源服务器。教师可以把资源上传到服务器,供学生下载,可以把教学大纲、课件、资料都上传到服务器,上课时可以从服务器直接下载到教室电脑,学生也可以上传作业,供给老师批改,从而让教师教学更加便利。

1.2 需求分析

服务器主要实现教学资源共享以及学生作业上传两大功能,并且能针对教师和学生所用账号,对资源共享和学生作业两个目录进行权限控制,使得教师可以上传、下载、删除其资源共享和学生作业目录下的内容,而学生只能下载资源共享目录下的内容和上传作业。

2. 总体设计

2.1 账号和目录设计

每个教师应拥有一个账号用于上传和下载文件,此账号为教师私有,带密码,而每个教师对应有另一个账号,让学生使用这个账号来下载教师的课程资料和上传作业。因此,每个教师都对应两个账号,一个私有,带密码的;一个向学生公开,不带密码。

表 1 账号设计

账号类型 所属组 密码
私有账户 教师 123
公开账户 学生 123

表 2 目录设计

目录 教师权限 学生权限
资源共享 完全权限 查看、下载
学生作业 完全权限 查看、上传

2.2 权限控制方案设计

  1. 每个教师都有一个私人账号和一个公开账号,后者的密码和账号相同

  2. 每个教师都有对应的“资源共享”和“学生作业”两个目录

  3. 可通过 FTP 的方式上传和下载文件,权限设置为教师可以上传、下载、删除其资源共享和学生作业目录下的内容,而学生只能下载资源共享目录下的内容和上传作业

3. 服务器构建

3.1 基本系统配置

操作系统:Linux(Ubuntu 14.04.6 LTS)

Web服务器:apache2 (2.4.7)

FTP服务器:proftpd-basic

Samba服务器:Samba

Libtalloc2

3.1.1 软件源服务器地址修改

在路径 /etc/apt/sources.list中编辑下载源服务器

3.1.2 安装Vim

3.2 账号及其对应目录的创建

3.2.1 创建账号

防止ftp用户用终端登录

在/etc/shells上加一行/usr/sbin/nologin

3.2.2 创建目录

设置文件所属组和所属用户

学生加写作业的权限

3.3 FTP服务器安装与配置

3.3.1 软件安装

更新包信息

升级

安装proftpd

查看proftpd状态

3.3.2 服务器配置

sudo vim /etc/proftpd /proftpd.conf

限制student用户组,删除目录(RMD),删除文件(DELE) ,上传(STOR),下载(RETR)

sudo /etc/init.d/proftpd restart

重启ftp服务器

3.4 HTTP服务器安装与配置

3.4.1 软件安装

3.4.2 服务器配置

删除原有的文件,建立软连接

3.5 Samba服务器安装与配置

3.5.1 软件安装

3.5.2 服务器配置

在/etc/samba/smb.conf中配置

创建samba用户

Sudo smbpasswd –a zhangjie

重启samba sudo service sambd restart

在我的电脑中输入[\192.168.239.128\zhangjie](file:///\192.168.239.128\zhangjie)然后输入账号密码登录

3.6 shell管理程序的设计与实现

编写namefile.txt文件里面是教师的账号

编写shell.sh

4. 服务器功能测试

4.1 FTP文件传输功能测试

4.1.1 教师私人账号功能测试

教师私人账号拥有对资源共享和学生作业这两个文件夹里面的所有内容的增加和删除功能

4.1.2教师公开账号功能测试

教师的公开账号只能查看并下载共享资源里面的内容,只能上传学生作业,不能删除和下载作业

4.2 HTTP浏览共享资源功能测试

4.3 通过Samba访问共享资源功能测试

在我的电脑上方输入栏输入[\Samba](file:///\Samba)服务器的ip地址

然后通过账号,密码登录

5. 总结

5.1完成的任务情况和心得体会

教学资源服务器主要的功能基本实现。资源共享需要解决文件的存取、查找浏览等问题。利用FTP进行文件的传输,Web服务器建立目录浏览界面,实现了教学资源共享及学生作业上传的两大功能。通过给每个教师配置私有账号和公开账号,并针对“资源共享”和“学生作业”目录进行FTP权限控制,防止学生下载作业及破坏课程资料。由于服务器系统是基于Linux平台,系统的性能及稳定性得到很好的保证、软件安装配置简单。在使用上也非常方便,使用浏览器或FTP方式即可访问教学资源,而无需安装任何客户端软件。

5.2存在的问题和改进思路

ftp用户可以通过远程终端登录主机,存在安全隐患,可在/etc/shells上加一行/usr/sbin/nologin,新增ftp用户时,设置权限防止ftp用户通过远程终端登录。

ftp只能管理文件的上传,下载,不能管理磁盘的空间存储容量等问题,可能会出现文件过多,空间容量不足的情况,可以安装相应的存储空间管理软件,协助管理。

教师的私有账号有学生作业这个文件夹的全部权限,但是公共账号如果在学生作业上传了一个文件,那么教师的私有账号无法删除这个文件夹,只能通过后期管理员修改权限删除。

Linux教学资源服务器构建的更多相关文章

  1. 优化系统资源ulimit《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》

    优化系统资源ulimit<高性能Linux服务器构建实战:运维监控.性能调优与集群应用> 假设有这样一种情况,一台Linux 主机上同时登录了10个用户,在没有限制系统资源的情况下,这10 ...

  2. 优化Linux内核参数/etc/sysctl.conf sysctl 《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》

    优化Linux内核参数/etc/sysctl.conf  sysctl  <高性能Linux服务器构建实战:运维监控.性能调优与集群应用> http://book.51cto.com/ar ...

  3. 常见的linux服务器构建

    Linux常用服务器构建-ftp服务器 ftp服务器 FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”. 用于Internet上的控制文件的双 ...

  4. NodeJS4-8静态资源服务器实战_构建cli工具

    Cli(command-line interface),中文是 命令行界面,简单来说就是可以通过命令行快速生成自己的项目模板等功能(比较熟悉的是vue-cli脚手架这些),把上述写的包做成Cli工具. ...

  5. Linux建立FTP服务器

    http://blog.chinaunix.net/uid-20541719-id-1931116.html http://www.cnblogs.com/hnrainll/archive/2011/ ...

  6. Linux下不同服务器间数据传输--转载

    因为工作原因,需要经常在不同的服务器见进行文件传输,特别是大文件的传输,因此对linux下不同服务器间数据传输命令和工具进行了研究和总结.主要是rcp,scp,rsync,ftp,sftp,lftp, ...

  7. Linux下不同服务器间数据传输

    因为工作原因,需要经常在不同的服务器见进行文件传输,特别是大文件的传输,因此对linux下不同服务器间数据传输命令和工具进行了研究和总结.主要是rcp,scp,rsync,ftp,sftp,lftp, ...

  8. linux下不同服务器间数据传输(rcp,scp,rsync,ftp,sftp,lftp,wget,curl)(zz)

    linux下不同服务器间数据传输(rcp,scp,rsync,ftp,sftp,lftp,wget,curl) 分类: linux2011-10-10 13:21 8773人阅读 评论(1) 收藏 举 ...

  9. 原 Linux搭建SVN 服务器2

    原 Linux搭建SVN 服务器 发表于1年前(2014-08-05 17:55)   阅读(12257) | 评论(3) 31人收藏此文章, 我要收藏 赞3 摘要 Linux搭建SVN 服务器 目录 ...

随机推荐

  1. Python os.fchmod() 方法

    概述 os.fchmod() 方法用于改变一个文件的访问权限,该文件由参数fd指定,参数mode是Unix下的文件访问权限.高佣联盟 www.cgewang.com Unix上可用. 语法 fchmo ...

  2. #define IOFFSETOF(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)

    #include <iostream> #define IOFFSETOF(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) usi ...

  3. MySQL(版本8.0.19)服务的启动/停止、登录/登出、修改密码

      [先说明一点 ,windows系统下,英文字母不分大小写.] MySQL 服务的 启动 / 停止 方式一: (我的系统是windows10) 找到 此电脑 图标 右键点击,选择"管理&q ...

  4. asp.net core 3.1 自定义中间件实现jwt token认证

    asp.net core 3.1 自定义中间件实现jwt token认证 话不多讲,也不知道咋讲!直接上代码 认证信息承载对象[user] /// <summary> /// 认证用户信息 ...

  5. Redis服务之常用配置(三)

    上一篇博客我们聊了下redis的rdb持久化.安全连接.资源限制相关配置;回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/13394411.html;今天我们来 ...

  6. 当asp.net core偶遇docker一(模型验证和Rabbitmq 一)

    比如我们有一些设计,依赖于某些软件,比如rabbitmq 当管理员功能,反复错误三五次之后,就发送一条消息到队列里去,我们又不希望对原先设计带来侵入式的改变业务 这个时候,我们就可以在模型验证里面加入 ...

  7. TF签名 外部测试 内部测试 TestFlight

    1.将release包传到iTunes connect 2. 绿线是内部测试 A.需要添加测试员 B.最多25个测试员 C.提交到iTunes connect不需要等待审核,即可测试 红线是外部测试( ...

  8. PYTHON实战完整教程1-配置VSCode开发环境

    一.安装 为降低学习门槛,保证学习目标的聚焦,我们在windows(使用WinServer2019虚拟机)上搭建开发环境.(系列教程最后结束时,也会部署到linux上) 打开Python官网 http ...

  9. Java 基础 —— 注解 Annotation

    简介 Annotation 是从 JDK 5.0 引入的. 注解使得我们可以以编译器验证的格式存储程序的额外信息.注解可以生成描述符文件,甚至是新的类定义,并且有助于减轻编写"样板" ...

  10. C#LeetCode刷题-数学

    数学篇 # 题名 刷题 通过率 难度 2 两数相加   29.0% 中等 7 反转整数 C#LeetCode刷题之#7-反转整数(Reverse Integer) 28.6% 简单 8 字符串转整数 ...