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. VulnHub靶场学习_HA: Pandavas

    HA: Pandavas Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-pandavas,487/ 背景: Pandavas are the warr ...

  2. matplotlib绘制子图

    fig,subs = plt.subplots(2,2) subs[0][0].plot(data_math_C1) subs[0][0].set_title('C_1 曲线') subs[0][1] ...

  3. PHP crypt() 函数

    定义和用法 crypt() 函数返回使用 DES.Blowfish 或 MD5 算法加密的字符串.高佣联盟 www.cgewang.com 在不同的操作系统上,该函数的行为不同,某些操作系统支持一种以 ...

  4. 卷积神经网络 part1

    [任务一]视频学习心得及问题总结 根据下面三个视频的学习内容,写一个总结,最后列出没有学明白的问题. [任务二]代码练习 在谷歌 Colab 上完成代码练习,关键步骤截图,并附一些自己的想法和解读. ...

  5. 解读生成对抗网络(GAN) 之U-GAN-IT

    Unsupervised Generative Attentionnal Networks with Adapter Layer-In(U-GAN-IT) 从字面我们可以理解为无监督生成对抗网络和适配 ...

  6. jpa jpql @query 动态查询

    需求/背景 假设有一个用户表, 对应的用户实体: public class User { @Id Long id; //姓名 String name; //性别,男0女1 String sex; // ...

  7. 在龙芯mips64el平台编译bmon

    bmon 是一个 实时命令行流量监控软件,但作者在github并没有提供mips64el的版本.下面记录一下编译过程.可以在这里下载bmon.v4.0.linux-mips64el.tar.gz. 环 ...

  8. Vue老项目支持Webpack打包

    1.老的vue项目支持webpack打包 最近在学习Vue.js.版本是2.6,webpack的版本也相对较老,是2.1.0版本.项目脚手架只配置了npm run dev和npm run build. ...

  9. 关于GPU你必须知道的基本知识

    图形处理单元(或简称GPU)会负责处理从PC内部传送到所连接显示器的所有内容,无论你在玩游戏.编辑视频或只是盯着桌面的壁纸,所有显示器中显示的图像都是由GPU进行渲染的. 对普通用户来说,实际上不需要 ...

  10. java类的定义与使用

    一 引用数据类型 1.引用数据类型的分类 我们可以把类的类型为两种: 第一种,Java为我们提供好的类,如Scanner类,Random类等,这些已存在的类中包 含了很多的方法与属性,可供我们使用. ...