20199315《网络攻防实践》假期作业
前言
这个作业属于哪个课程:https://edu.cnblogs.com/campus/besti/19attackdefense
这个作业的要求在哪里:https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10228
我在这个课程的目标是:学习网络攻防相关知识,提升专业技能
这个作业在哪个具体方面帮助我实现目标:继续加深Linux系统命令、Markdown编辑命令的使用
作业一
你对网络攻击和防御了解多少?该课程需要计算机和网络相关的基础知识,你原专业是什么专业,目前你掌握多少基础知识?
对网络攻击和防御不太了解。
原专业是电子商务,从本科课程到考研准备到读研期间,与计算机和网络相关的基础知识大概了解的有:计算机网络、C语言程序设计、数据结构、操作系统、计算机组成、Linux……(不过学的时候也是简单了解一些,而且有的感觉忘得差不多了= =)
作业要使用Markdown格式,Markdown入门参考(需掌握)
上学期选修过娄老师的《Linux内核分析》,对于markdown的编辑格式较为熟悉。
作业二
你自己动手安装过操作系统吗?如果没有话现在动手学一下吧。
学习基于VirtualBox虚拟机安装Ubuntu图文教程(https://www.cnblogs.com/rocedu/p/6012545.html)。在自己笔记本上安装Linux操作系统,也可以使用VMWare安装虚拟机,安装方法自己百度。
上学期娄老师的课程要求下安装过虚拟机:
通过实践学习别出心裁的Linux命令学习法(https://www.cnblogs.com/rocedu/p/4902411.html),掌握Linux命令的学习方法
1 Linux命令
登录Linux后,我们就可以在#或$符后面去输入命令,有的时候命令后面还会跟着选项(options)或参数(arguments)。即Linux中命令格式为:
command [options] [arguments] //中括号代表是可选的,即有些命令不需要选项也不需要参数
其中选项(option)是调整命令执行行为的开关,选项不同决定了命令的显示结果不同,参数(arugment)是指命令的作用对象。
如ls命令,ls或ls .是两条等价的命令,显示是当前目录的内容,这里“.”就是参数,表示当前目录,这个参数缺省可以省略。我们可以用ls -a .显示当前目录中的所有内容,包括隐藏文件和目录。其中“-a” 就是选项,改变了显示的方式,如下图所示:
以上简要说明了Linux命令以及选项和参数的区别,但具体Linux中哪条命令有哪些选项及参数,以及如何使用,需要我们靠经验积累或者查看Linux的帮助文档了。
以与文件新建删除的几条命令为例:
mkdir//创建一个新的目录
cd//切换目录
pwd//显示目前的目录
rmdir//删除一个空的目录
2 man命令
不论学习编程还是Linux命令,掌握帮助文档的使用都是很重要的,是举一反三的重要途径。
man是manual的缩写,我们可以通过man man
来查看man的帮助,如下图:
帮助文档包含:
1 Executable programs or shell commands(用户命令帮助)
2 System calls (系统调用帮助)
3 Library calls (库函数调用帮助)
4 Special files (usually found in /dev)
5 File formats and conventions eg /etc/passwd(配置文件帮助)
6 Games
7 Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)
8 System administration commands (usually only for root)
9 Kernel routines [Non standard]
解释一下:
1是普通的Linux命令
2是系统调用,操作系统的提供的服务接口
3是库函数, C语言中的函数
5是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6是给游戏留的,由各个游戏自己定义
7是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8是系统管理用的命令,这些命令只能由root使用,如ifconfig
man有一个-k
选项用起来非常好,这个选项让你学习命令,编程时有了一个搜索引擎,可以举一反三。
我们通过一个例子来说明,比如数据结构中学过排序(sort),我不知道C语言中有没有完成这个功能的函数,可以通过“man -k sort”来搜索,因为是找C库函数,我们关注带3的,qsort好像是个好选项,如下图:
参考上面的学习方法通过实践学习Linux 基础入门(新版)课程(https://www.shiyanlou.com/courses/1),掌握常用的Linux命令,重点是3/4/5/6/7/8节。
实验上学期做过,详情见博客:https://www.cnblogs.com/qianxiaoxu/p/11524112.html
用户及文件权限管理
添加一个用户 loutest,使用 sudo 创建文件 /opt/forloutest,设置成用户 loutest 可以读写。
1.添加用户loutest
$ sudo adduser loutest
2.用shiyanlou用户(sudo用户组用户)执行sudo命令将loutest 用户添加到sudo用户组,使其也可以使用sudo命令获得root权限
$ su shiyanlou
$ groups loutest
$ sudo usermod -G sudo loutest
$ groups loutest
3.使用sudo创建文件/opt/forloutest,为其随便写入一些内容,然后设置成用户loutest可以读写
$ su loutest
$ cd /home/loutest
#创建文件/opt/forloutest
$ sudo touch /opt/forloutest
$ echo "echo /"hello lou/""> forloutset
#使用chmod命令修改文件权限
$ chmod 600 forloutest
#测试该用户是否可以查看文件
$ ll forloutest
#切换一个用户,测试其是否拥有forloutest文件的读写权限
$ su lilei
#经检验,设置完成后,用户lilei无法读写该文件
$ cat /home/loutest/forloutest
遇到的问题
一开始不知道shiyanlou用户的密码,经过在论坛上搜索,得知可以在右侧SSH直连环境中查看。
Linux 目录结构及文件基本操作
创建一个 homework 目录,建立名为 1.txt~10.txt 文件,并删除 1.txt~5.txt
#使用mkdir命令可以创建一个空目录
$ mkdir homework
#使用touch命令创建文件,使用shell通配符{c1..c2}可以一次性同时创建
$ touch {1..10}.txt
#使用rm命令创建文件
$ rm {1..5}.txt
Linux 的日志文件在哪个目录?
日志文件的默认路径是:/var/log
- 下面是几个重要的日志文件的路径及其包含的信息
- var/log/syslog:它和/etc/log/messages日志文件不同,它只记录警告信息,常常是系统出问题的信息。
- /var/log/messages:包括整体系统信息,其中也包含系统启动期间的日志。此外,还包括mail,cron,daemon,kern和auth等内容
- /var/log/user.log:记录所有等级用户信息的日志。
- /var/log/auth.log:包含系统授权信息,包括用户登录和使用的权限机制等。
- /var/log/daemon.log:包含各种系统后台守护进程日志信息。
- /var/log/kern.log:包含内核产生的日志,有助于在定制内核时解决问题。
环境变量与文件查找
找出 /etc/ 目录下的所有以 .list 结尾的文件
#使用find命令可以细而精地查找文件或目录
$ sudo find /etc/ -name *.list
遇到的问题
find命令基本格式为 find [path] [option] [action] ,一开始错写成
$ sudo find /etc/ -name .list
忘记添加通配符*,表示0或多个字符。
文件打包与解压缩
创建一个名为 test 的文件,分别用 zip 和 tar 打包成压缩包,再解压到 /home/shiyanlou 目录
zip
$ cd /home/shiyanlou
$ touch test
$ zip test.zip test
#使用 du 命令查看打包后文件的大小
$ du -h test.zip
#将文件解压到指定目录
$ unzip -q test.zip -d /home/shiyanlou
tar
$ cd /home/shiyanlou
$ touch test
$ tar -cf test.tar test
$ du -h test.tar
$ tar -xf test.tar -C /home/shiyanlou
Linux下的帮助命令
help命令是用于显示 shell 内建命令的简要帮助信息。
man没有内建与外部命令的区分,显示系统手册页中的内容,大多数都是对命令的解释信息,还有一些相关的描述。
info是 GNU 的超文本帮助系统,能够更完整的显示出 GNU 信息
参考文献
-
基于VirtualBox虚拟机安装Ubuntu图文教程(https://www.cnblogs.com/rocedu/p/6012545.html)
-
别出心裁的Linux命令学习法(https://www.cnblogs.com/rocedu/p/4902411.html)
-
Linux 基础入门(新版)课程(https://www.shiyanlou.com/courses/1)
————————————————————————————————————————————————————————————————————————————————————————————————————
如有不足,还请批评指正,不胜感激。
以上