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. SAP四代增强实现:销售订单复制项目文本时不需要显示文本框和回车

    最近接收到一个业务需求,在SAP依据销售订单复制时,如果订单里面的项目有多个文本,系统就会显示复制的文本框处理,让用户选择是否复制,这个就让销售很不舒服,如果有几十个项目,每个项目有几个文本,那就就要 ...

  2. PHP str_rot13() 函数

    实例 编码并解码字符串: <?php高佣联盟 www.cgewang.comecho str_rot13("Hello World");echo "<br&g ...

  3. luogu P2607 [ZJOI2008]骑士 tarjan dp

    LINK:骑士 本来是不打算写的 发现这道题在tarjan的时候有一个坑点 所以写出来记录一下. 可以发现图可能是不连通的 且一个连通块中是一个奇环树. 做法:类似tarjan找割点 然后把环给拉出来 ...

  4. zabbix 邮件报警和微信报警

    # 邮件报警 一.定义邮件发件人 #密码来源 完成操作会看到 二.定义邮件收件人 三.启动动作 #先开启 2.触发操作 3.恢复操作 4.开启发送消息 1.2. 微信报警 一. 首先要注册一个企业微信 ...

  5. Jenkins总结3-shell脚本

    我写shell脚本的功力还很初级,基本都是现学现卖,写得不是很健壮,只能提供个思路,请大家包涵. 我使用的系统只能发函数放到shell最前面.本人还是比较推崇函数式脚本的,方便复用,目前只简单的封装了 ...

  6. Armv8-A Memory management

    本文介绍Armv8-A的内存管理.内存管理指的是在系统中,内存访问是如何实现的. 使用内存管理机制,可以让每个应用之间的内存地址分离,即sandbox application,也可以让多个在物理内存上 ...

  7. python获取系统内存占用信息的实例方法

    psutil是一个跨平台库(http://code.google.com/p/psutil/),能够轻松实现获取系统运行的进程和系统利用率(包括CPU.内存.磁盘.网络等)信息.它主要应用于系统监控, ...

  8. C#-Func<>

    与C#-Action十分相似, Func<> 也是c#内置的委托类型,不同的是, Func<> 只能用来引用具有返回值的方法,也就是说,在使用它时,至少需要在尖括号内指定一种类 ...

  9. 使用java API进行zip递归压缩文件夹以及解压

    一.概述 在本篇文章中,给大家介绍一下如何将文件进行zip压缩以及如何对zip包解压.所有这些都是使用Java提供的核心库java.util.zip来实现的. 二.压缩文件 首先我们来学习一个简单的例 ...

  10. (数据科学学习手札93)利用geopandas与PostGIS进行交互

    本文完整代码及数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 PostGIS作为postgresql针对 ...