文章目录(文章末尾有惊喜!!)
- Linux操作系统实践——Samba服务器搭建
-
- 一、实验目的
- 二、实验内容
-
- ② 学生教师服务
- 三、 题目分析及基本设计过程分析
-
- ② 学生教师服务
-
- 1) 整体思路
- 2) 系统用户和组分配设计说明
- 3) 系统文件权限设计说明
- 4) 统计交作业名单脚本设计说明
- 5) 自动批改指定格式的作业脚本设计说明
- 四、 配置文件关键修改处的说明及运行情况
-
- ② 学生教师服务
-
- 0) samba服务器配置
- 1) 用户组和用户
- 2) /home/class/下相关文件
- 3) 学生上传作业(Linux系统下)
- 4) 学生上传作业(Windows系统下)——接下来大部分操作都在Windows下进行
- 5) 查看脚本统计交作业名单
- 6) 教师使用脚本批改指定格式的作业
- 7) 教师手动查看学生作业并批改
- 8) 学生查看成绩与答案
- 9) 教师上传学习资料
- 10) 学生下载学习资料
Linux操作系统实践——Samba服务器搭建
仅供参考,谢绝抄袭
一、实验目的
熟练掌握 Linux 操作系统的使用,掌握 Linux 的各项系统管理功能,掌握 Linux 下各类网络服务的安装、配置以及使用,并能用 shell 脚本实现简单的管理 任务。
二、实验内容
② 学生教师服务
根据所学内容,使用一种或多种服务(如 ftp、samba、Http 等)搭建一台服务器,支持多用户访问,并能完成下述功能:
1)学生用户能实现学生作业的上传,学生以“姓名+学号”命名作业。学生 能看到作业列表,但是不能下载其他用户的作业。
2)在指定的交作业截止时间到时,编写脚本自动统计交作业的学生名单和 人数,生成文档,供教师查看。
3)教师用户能够查看学生提交的作业,在生成的交作业名单录入成绩, 并发布成绩,供学生查看。
4)对于指定格式的作业,编写脚本自动批改作业并在交作业名单中记录成绩。(注:格式可以自己指定,也可做成模板供学生下载使用)
5)教师可以提供课件和参考资料供学生下载。
三、 题目分析及基本设计过程分析
② 学生教师服务
1) 整体思路
对于这道题,我在RedHat系统上使用了Samba搭建服务器,能使学生和老师在Windows客户机上上传和下载文件,老师能在Linux系统上启动自动批改脚本批改指定格式的作业。
关于Samba服务器的配置,会在第四部分进行说明。
2) 系统用户和组分配设计说明
系统中一共有三个组os,student和teacher
① os组中有所有的学生和教师:stu1,stu2,stu3,stu4以及teacher,服务于课程。
② student组中有所有的学生:stu1,stu2,stu3以及stu4,服务于学生。
③ teacher组中有所有的教师:teacher,服务于教师
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,最后得到所有的交作业学生信息和总数
然后再利用crond进程定时执行该脚本,这里我设置为每天的23:59统计一次交作业名单
而且记录了脚本执行日志。
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
2) /home/class/下相关文件
tree /home/class/
3) 学生上传作业(Linux系统下)
以stu1学生上传为例
学生可以在/home/class/grade****下载作业模板
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FdzLt6kY-1648305528723)(http://r9awog79x.hn-bkt.clouddn.com/image-20220326222858918.png)]
进入homework目录
查看当前作业目录
上传作业成功
无法下载他人作业
4) 学生上传作业(Windows系统下)——接下来大部分操作都在Windows下进行
在Windows系统进入[\192.168.114.130](file://192.168.114.130),输入账号密码
进入到共享文件夹下
上传作业
5) 查看脚本统计交作业名单
出于测试的目的,这里我将执行时间改成了18:35
在Windows系统进入\\192.168.114.130
进入grade文件夹可以看到统计名单grade.txt
也可以下载到自己的电脑中
6) 教师使用脚本批改指定格式的作业
在Linux系统下启动grade-calculate.sh脚本
可以看到自动批改后的交作业名单
因为stu3没有按照格式提交作业,所以系统没有计算他的成绩
7) 教师手动查看学生作业并批改
教师可以查看学生的作业
看完以后,可以手动输入stu3的成绩
8) 学生查看成绩与答案
stu1进入文件夹grade中可以查看grade.txt从而看到自己的成绩
也可以查看correct.txt查看答案
9) 教师上传学习资料
教师可以将学习资料上传到learning文件夹下
10) 学生下载学习资料
stu1进入文件夹learning中可以下载学习资料
无法上传学习资料
接下来我将给各位同学划分一张学习计划表!
学习计划
那么问题又来了,作为萌新小白,我应该先学什么,再学什么?
既然你都问的这么直白了,我就告诉你,零基础应该从什么开始学起:
阶段一:初级网络安全工程师
接下来我将给大家安排一个为期1个月的网络安全初级计划,当你学完后,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web渗透、安全服务、安全分析等岗位;其中,如果你等保模块学的好,还可以从事等保工程师。
综合薪资区间6k~15k
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(1周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(1周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(1周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
那么,到此为止,已经耗时1个月左右。你已经成功成为了一名“脚本小子”。那么你还想接着往下探索吗?
阶段二:中级or高级网络安全工程师(看自己能力)
综合薪资区间15k~30k
7、脚本编程学习(4周)
在网络安全领域。是否具备编程能力是“脚本小子”和真正网络安全工程师的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力。
零基础入门的同学,我建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习
搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime;
Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,没必要看完
用Python编写漏洞的exp,然后写一个简单的网络爬虫
PHP基本语法学习并书写一个简单的博客系统
熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选)
了解Bootstrap的布局或者CSS。
阶段三:顶级网络安全工程师
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉【整整282G!】网络安全&黑客技术小白到大神全套资料,免费分享!
学习资料分享
当然,只给予计划不给予学习资料的行为无异于耍流氓,这里给大家整理了一份【282G】的网络安全工程师从入门到精通的学习资料包,可点击下方二维码链接领取哦。
