最新Linux操作系统实践——Samba服务器搭建_linux建立samba服务器(1)

文章详细描述了一个教育管理系统中,如何通过Linux的文件权限设计来保护学生数据隐私,以及grade-count.sh和grade-calculate.sh脚本的作用。涉及os、student和teacher组的划分,以及homework、learning、grade目录的权限设置。同时,介绍了samba服务器配置和两个关键脚本的功能与使用场景。
摘要由CSDN通过智能技术生成

系统中一共有三个组os,student和teacher

① os组中有所有的学生和教师:stu1,stu2,stu3,stu4以及teacher,服务于课程。

② student组中有所有的学生:stu1,stu2,stu3以及stu4,服务于学生。

③ teacher组中有所有的教师:teacher,服务于教师

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hcAOgDTc-1648305528719)(C:/Users/26969/AppData/Roaming/Typora/typora-user-images/image-20220325200000679.png)]

3) 系统文件权限设计说明

作业管理所用的文件都在linux系统的/home/class目录下,一共有三个目录homework,grade,learning,三个文件grade-count.sh,grade-calculate.sh,grade_log.log

homework目录:用于学生上传作业和教师下载学生作业。该目录的权限设置为6777,其中6设置了s权限使得学生上传文件的组和homework一致,都是teacher,这是为了保证学生不能下载其他学生的作业。该目录的拥有者为teacher。而学生上传文件的权限被设置为750,即上传者学生可以管理自己的作业,但是不能下载或查看其他学生;而教师可以下载学生的作业,但是不能更改学生的作业。

learning目录:用于教师上传学习资料以及学生可以下载学习资料。该目录的权限设置为6750,其中6设置了s权限使得教师上传文件的组和learning一致,都是os, 而该目录的拥有者为teacher。教师上传的资料的权限被设置为750,保证学生可以下载文件但是无法修改文件,教师可以任意管理上传学习资料。

grade目录:用于教师统计学生交作业名单以及录入成绩。该目录的权限设置为6750,其中6设置了s权限使得教师上传文件的组和grade一致,都是os, 而该目录的拥有者为teacher。目录中的文件权限都被设置为750,保证学生可以下载交作业名单与成绩,可以下载作业模板和答案(答案会在交作业时间截止后由教师上传),教师可以任意管理上传文件。

correct.txt:作业的正确答案

answer-standardtxt:作业模板,供学生下载使用

grade.txt:交作业名单与成绩统计

grade-count.sh:统计交作业名单的脚本,由系统按时执行,权限为777.

grade-calculate.sh:自动批改符合格式的作业的脚本,由教师自己执行,属于teacher组,权限为750。

grade_log.log:记录grade-count.sh脚本执行的情况。

4) 统计交作业名单脚本设计说明

该脚本名称为grade-count.sh

① 利用命令 date "+%Y-%m-%d %H:%M:%S记录统计的时间

② 利用正则表达式将作业文件名划分为姓名和学号,如stu1-2194411245.txt就被划分为stu1和2194411245。

③ 利用for循环统计homework目录下的所有文件,每有一个文件,count就+1,最后得到所有的交作业学生信息和总数

image-20220326222526120

然后再利用crond进程定时执行该脚本,这里我设置为每天的23:59统计一次交作业名单

image-20220326222542132

而且记录了脚本执行日志。

5) 自动批改指定格式的作业脚本设计说明

该脚本名称为grade-calculate.sh

这里我测试使用的作业格式如下:

其中开头的#standard template用于区别是否使用指定格式的作业,每一道题都以数字+.+答案为格式,因此可以设计脚本如下:

① 遍历homework目录下的文件

② 对于每一个文件,遍历十次

③ 利用文本分析工具awk,将学生作业每一行的答案解析出:以.分割序号和答案,将第二个参数打印赋给answer。

④ 同理解析标准答案的值correct,如果correct=answer,则该作业加十分

⑤ 将遍历得到的分数利用流编辑器sed加入到每一个学生作业记录的后面

在这里插入图片描述

四、 配置文件关键修改处的说明及运行情况

② 学生教师服务
0) samba服务器配置
[homework]  
comment = this folder is for students to submmit homework  
path = /home/class/homework  
valid users = @os  
read only = no  
public = no  
create mask = 0750  
force create mode = 0750  
  
[learning]  
comment = this folder is for teacher to share learning material  
path = /home/class/learning  
valid users = @os  
read only = no  
admin users = @teacher  
public = no  
create mask = 0750  
force create mode = 0750  
  
[grade]  
comment = this folder is for teacher to register student grades  
path = /home/class/grade  
valid users = @os  
read only = no  
admin users = @teacher  
public = no  
create mask = 0750  
force create mode = 0750:


1) 用户组和用户

cat /etc/group

image-20220326222812778

2) /home/class/下相关文件

tree /home/class/

image-20220326222832310

3) 学生上传作业(Linux系统下)

以stu1学生上传为例

学生可以在/home/class/grade****下载作业模板

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FdzLt6kY-1648305528723)(http://r9awog79x.hn-bkt.clouddn.com/image-20220326222858918.png)]

进入homework目录

image-20220326222921656

查看当前作业目录

image-20220326222939071

上传作业成功

image-20220326222952909

无法下载他人作业

image-20220326223011879

4) 学生上传作业(Windows系统下)——接下来大部分操作都在Windows下进行

在Windows系统进入[\192.168.114.130](file://192.168.114.130),输入账号密码

进入到共享文件夹下

上传作业

5) 查看脚本统计交作业名单

出于测试的目的,这里我将执行时间改成了18:35

在Windows系统进入\192.168.114.130

image-20220326223453813

进入grade文件夹可以看到统计名单grade.txt

image-20220326223511512

也可以下载到自己的电脑中

image-20220326223546130

6) 教师使用脚本批改指定格式的作业

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 11
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值