Linux安全(第一日)
1. 学习目标
1.1 整体目标
- 系统安装与初始化
- Linux命令行目录操作
- Linux命令行文件操作
1.2 终极目标
1.2.1 Linux基础命令
- 熟练使用Linux操作系统,可以根据需求配置系统环境
1.2.2 Linux典型服务
- 通过搭建常用典型服务,了解服务原理和配置项用途
- 进一步提升对系统的使用熟练度
1.2.3 Shell脚本
- 可以使用Shell脚本实现对系统的配置修改
- 服务的安装配置
- 获取关键信息
1.3 章节学习计划
安装CentOS Linux
- 检测安装光盘的完整性
- 配置安装程序
- 初始化CentOS8系统
Linux的引导过程
- 引导过程总览
- 系统初始化进程及文件
服务控制及优化启动过程
- 系统服务控制
- 切换运行级别
- 优化启动过程
2. 计算机组成理论
2.1 磁盘分区表示方法
Linux中将硬盘、分区等设备均表示为文件,一切皆文件
比如”/dev/hda5“
- “/dev“是硬件设备文件所在的目录
- “hd“表示IDE设备,”sd“表示SCSI设备
- “a“表示硬盘的顺序号 a、b、c…(代表硬盘插在第几个接口,第一个接口就是a)
- “5“表示分区的顺序号1、2、3、4…(1-4代表主磁盘分区或者逻辑磁盘分区,5往后代表虚拟磁盘分区)
硬盘分区规则:一块硬盘最有四个主分区,主分区的作用除了存放文件外还可以被激活,被激活的主分区就可以用来引导操作系统的分区,一块硬盘可以分出一个扩展分区,一个扩展分区可以有无数个逻辑磁盘分区。
2.2 常见的文件系统
目前CentOS使用的文件系统类型:
XFS:日志文件系统
SWAP:交换文件系统
1 | tree / -L 1 # 属性1层 |
- /etc 存放关于系统、管理相关的用户文件,比如:账号”/etc/passwd “和”etc/shadow “
- /home 用户目录
- /lib 存放共享链接库
- /proc 存放系统进程、核心程序的信息
- /root root用户主目录
- /sbin 存放启动的一些命令(root常用)
- /tmp 用户存放的临时文件 —-木马常放
- /usr 存放程序
- /var 存放系统日志、web日志、数据库日志、web源代码、邮箱
2.3 元数据(inode与块)
元数据:创建者、创建日期、大小等,也叫索引节点
inode区域 :存储元数据的区域,如:文件字节数、权限、归属、时间戳、连接、数据块位置等
inode bitmap :inode使用情况,如:空闲的inode
black bitmap :块的使用情况,如:空闲inode与空闲块信息等
数据块:由多个扇区组成,常见4KB一块,存放文件数据和目录数据。
2.3.1 读取过程
读取:只看inode表,会有一个inode表里面装着inode索引集。
查看”/var/log/messages“文件:
- 先找到根目录,然后找var所对应的inode号
- 然后找到var的inode号之后就找到了他的对应块信息,然后找到log的inode号
- 再根据log的inode号找到他对应的块信息,然后根据messages的inode号找到这个文件
总结 :根据inode找对应块信息,然后找到下一个inode。
2.3.2 创建过程
创建:创建”/root/chaitin.txt “
- 创建前先查看有没空余的inode号和inode块,先预约好。
- 然后根据inode号找到对应块信息,找到root的inode号再找对应的根信息
- 再找到chaitin.txt的inode号,找到这个inode对应的块,向里面写入。
- 在创建前会有一个审核机制,会检查预分配的空闲inode号是否为该块的inode号,确认完毕后写入。
3. Linux初始化
关闭防火墙:
1 | systemctl stop firewalld |
关闭SElinux:
1 | setenforce 0 # 临时关闭,宽容模式 |
1 | SELINUX = disabled |
3.1 Linux系统引导过程
- 开机自检(BIOS)
- MBR引导
- GRUB菜单
- 加载内核
- init进程初始化
3.1.1 init进程
概念:
由Linux内核加载运行**/sbin/init** 程序是系统第一个进程,PID永远为1 。
3.1.2 Systemd进程
代替init成为主流,程序位于**/usr/lib/systemd/systemd** 速度更快结构更合理。
1 | init 1 # 关机 |
3.1.3 Centos6的命令
1 | /etc/init.d/nginx start/stop |
3.1.4 查看当前系统所有已激活的系统服务
1 | systemctl list-units -type=service |
3.1.5 查看服务的依赖项
1 | systemctl list-dependencies |
3.1.5 Shell
直接输入
/bin/*
即可
/bin/sh :
/bin/bash: 默认终端
4. 常见快捷键、帮助
4.1 快捷键
- Esc+B 移动光标到行首
- Esc+F 移动光标到行尾
- Ctrl+C 中断
4.2 帮助
- man 使用手册
- help 命令
- –help选项
4.3 管道 |
- ls -l | more 过长分页
- ls | wc -l >> nihao.txt 将当前文件个数追加到nihao.txt
- ls -l |head -n 10
4.4 重定向 > >>
>
覆盖>>
重定向
4. Linux常用命令
通过type判断命令
4.1 whereis
查找命令存放位置:
1 | whereis systemctl |
4.2 whoami
当前用户
4.3 which
查找命令的所在位置
4.4 pwd
当前路径
4.5 alias
别名
1 | alias ls = `ls --color=auto` |
4.6 mkdir
-p
一次创建多层文件
1 | mkdir -p /c/b/d |
4.7 ln
软硬链接
相同点:不管修改啥软硬链接都可以修改成功
不同点:删除后软链接就不能用了,硬链接还可以继续使用
4.7.1 硬链接
可以看inode节点确认,允许一个文件有多个有效的路径名,这样就可以连接到这个硬件的重要文件以防误删
ls -li
查看当前目录下所有的文件的节点
1 | ln a.txt a1.txt |
发现两个文件的inode值是一样的
4.7.2 软链接
inode节点不同,而且文件存在指向,且在权限处有标识,如果原文件a1删了就没有a2了
ls -s
建立软链接
1 | ln -s a.txt a1.txt |
4.8 find
查找命令
1 | find [查找范围] [查找表达式] |
4.8.1 -name
根据名字查找某个目录下的文件
1 | find /etc -name httpd.conf |
4.8.2 -size
表示文件大小查找
1 | find / -size +10k -name '*.config' |
4.8.3 -type
表示文件查找
find -type f/d/b
- f:普通文件
- d:目录
- b:设备文件
1 | find -name "*.conf" -type f |
4.8.3 多文件查找
- “-a”表示而且 (and)
- “-o”表示或者 (or)
1 | find /boot -size +1024k -a -name "vmlinuz*" |
4.9 cat
查看现实文件的内容
- -n显示行号
- -b显示行号,不包括空行
4.10 more/less
全屏方式分页显示文件内容
4.11 head
查看头部文件,默认10行
head -n 10
4.12 tail
查看末尾文件,默认10行
tail -n 10
查看最后十行
tail -i
动态监视文件末行
4.13 wc
统计文件中的单词数量
- -l:统计行数
- -w:统计单词个数
- -c:统计字节数
1 | cat /etc/root|wc -l |
4.14 grep
在文件中查找并显示包含指定字符串的行
1 | grep [选项]... 查找条件 目标文件 |
- -i:查找时忽略大小写
- -v:反转查找,输出与查找内容不相符的行
- “^xx”表示以“xx”开头
- “xx$”表示以”xx”结尾
- “^$”表示空行
4.15 gzip/bzip2
gzip和bzip2命令使用的压缩算法不同,bzip2的压缩效率要好一些
制作压缩文件、解开压缩文件
不常用
4.16 tar
制作档案文件、释放归档文件
- -c 创建.tar格式的包文件
- -x 解开.tar格式的包文件
- -v 输出详细信息
- -f 表示使用归档文件
- -p 打包时保留原始文件及目录的权限
- -t 列表查看包内的文件
- -C 解包时指定释放的目录文件夹
- -z 调用gzip程序进行压缩或解压
- -j 调用bzip2程序进行压缩或解压
4.16.1 创建归档
1 | # 先写打包的 /root/test.tar.gz 然后写来源地址/etc/httpd /etc/shadow |
4.16.2 解包归档
1 | # -C指定目录 |
4.16.3 查看归档
1 | tar ztf /root/test.tar.gz |