一、系统阶段
1. 查看当前用户的 uid
bash
id
2. systemd 与 init 的区别
- (1)并行处理所有服务,加速开机流程:在init启动流程中,服务是一项一项启动的。在systemd可以所有服务同时启动。(2)命令相对简单:和之前的SystemV相比,所有操作都是systemct1命令来控制。而之前的systemV中有init、service、chkconfig等 (3)服务依赖性检测:如果B服务是架构在A服务上启动的,当没有启动A服务时就先动B服务的话,systemd会自动启动A服务
3. 查看当前的 Swap 分区大小
bash
free -m
4. 查看系统平均负载的命令
bash
uptime
top
w
5. sudo 和 su 及 su --
sudo
命令可以让普通用户以超级用户的权限执行特定命令。在使用sudo
命令时需要输入当前用户的密码进行身份验证。su -
(完全切换),但该命令会同时启动一个新的 shell 会话,并将环境变量设置为目标用户的环境变量。
6. 普通用户为什么能执行 passwd
它有 suid
权限。
7. 为什么对文件有写权限,却不能删除文件
没有上级目录权限。
8. 查看系统内存,IO 分别用什么命令
bash
free
iostat
9. OSI 七层模型及作用
- 物理层:数据实际传输,电气特性定义(哪些供电,哪些传输数据)
- 数据链路层:MAC 地址编址
10. 创建用户的命令及常用选项,用户家目录模板
bash
useradd -m -s /bin/bash -G groupname username
用户家目录模板 /etc/skel
权限 755。
11. Linux 系统中,点开头,点 swp 结尾的文件是什么
临时交换文件,隐藏文件。
12. 在 shell 脚本中有哪几种注入变量的方式
- 用户自定义
read
获取- 位置参数变量(
$@
、$*
、$#
、$n
) - 预定义变量(
$?
、$!
、$$
)
13. 在启动流程中,有一个步骤为从虚拟根切换为真实根,那么先挂载虚拟根目录的目的是什么?
这个根目录是为了调用 USB、SATA、SCSI 硬盘和 LVM、RAID 文件系统的驱动,在加载驱动后才可以加载真正的系统根目录。
14. 系统日志管理的几种方案,分别用什么机制实现
- syslog :传统的日志管理方式,通过
rsyslog
或syslog-ng
实现。 - journald :
systemd
内置的日志管理工具,提供更强大的日志管理功能。
15. Linux 系统中对于权限的分类分别有哪些
- 常见权限:rwx
- 隐藏属性 :iae
i
:如果对文件设置i
属性,那么不允许对文件进行删除、改名,也不能添加和修改数据;如果对目录设置i
属性,那么只能修改目录下文件的数据,但不允许建立和删除文件。a
:如果对文件设置a
属性,那么只能在文件中增加数据,但是不能删除也不能修改数据;如果对目录设置a
属性,那么只允许在目录中建立和修改文件(echo 追加覆盖),但是不允许删除。e
:Linux 中绝大多数的文件都默认拥有e
属性。表示该文件是使用 ext 文件系统进行存储的,而且不能使用chattr -e
命令取消e
属性。
- Suid:只有可以执行的二进制程序才能设定 SUID 权限,命令执行者要对该程序拥有 x(执行)权,命令执行者在执行该程序时获得该程序文件属主的身份,SUID 权限只在该程序执行过程中有效。
- Sgid:用户将获得该文件所属组的权限。
- Sbit:只能用于设置在目录上,设置了这种权限的目录,只有该文件的创建者、目录的拥有者和 root 可以删除自己的文件。
- ACL 权限:ACL(access control list)访问控制列表,可以对单一的用户或者组设置对文件或目录的独立 rwx 权限。
16. CentOS7 启动流程
- 系统从BIOS或UEFI中加载硬件信息并进行检测。
- 根据BIOS的设置,系统从指定的启动设备中读取MBR(主引导记录)。
- MBR加载Boot Loader(如Grub2),它进一步引导内核。
- 内核加载后,会将initramfs文件系统装载到RAM中,形成一个临时的根文件系统。
- 在这个阶段,内核完成一些必要的初始化工作,包括加载硬件驱动。
- 随后,initramfs文件系统的根目录会被切换成真实磁盘上的根文件系统根目录。
- 最后,内核启动的第一个进程
systemd
接管启动流程,同时并发地启动其他服务和应用程序。
17. 系统运行慢应从哪些方面进行排查
- 检查磁盘 IO 情况
- 检查网络延迟
- 检查系统资源占用情况
- 检查系统日志
- 检查应用程序本身
18. 系统启动中 grub v1 v2 版本区别及其作用
- GRUB1 :配置文件为
/boot/grub/menu.lst
,主要用于早期的 Linux 发行版。 - GRUB2 :配置文件为
/boot/grub2/grub.cfg
,功能更强大,支持更多功能,如图形界面、多内核选择等。
19. top 命令查看系统负载很低,实际访问却很卡如何排查
- 检查磁盘 IO 情况
- 检查网络延迟
- 检查系统资源占用情况
- 检查系统日志
- 检查应用程序本身
20. 介绍一下 LVM 和 Raid 的相关
- LVM:逻辑卷管理,可以动态调整磁盘空间,支持快照等功能。
- RAID :磁盘阵列,通过多个磁盘组合提高性能和数据冗余。
- RAID 0:条带化,提高读写速度,无冗余。
- RAID 1:镜像,数据冗余,提高数据安全性。
- RAID 5:条带化加奇偶校验,提高读写速度和数据安全性。
- RAID 6:双奇偶校验,提高数据安全性。
- RAID 10:结合 RAID 1 和 RAID 0,提高性能和数据安全性。
硬链接:多个文件,名称、保存路径都不相同,但是inode相同。
1.文件创建硬链接后,链接数量+1。每删除一个文件,文件链接数量-1。
2.互为硬链接的文件之间,修改任意一个其余均会发生变化。
3.硬链接无法跨分区创建。
4.目录无法创建硬链接。
软链接(符号链接):
1.软链接和原文件之间inode号不同。
2.软链文件类型为l,软链接默认权限最大。
3.修改软链接,源文件会发生变化。修改源文件,软链接也会发生变化。
4.删除软链接,源文件不受影响。删除源文件,软链接失效。
5.软链接可以跨分区创建。
6.创建软链接,建议写绝对路径。
7.目录可以创建软链接。
源码包
定义 软件的源代码是软件的原始数据,要通过编译将源代码转换为计算机可以识别的机器语言。
优点
- 开放源代码,可以自行修改源代码。
- 可以自由选择安装所需功能。
- 软件是编译安装,更加稳定高效。
- 卸载方便,直接删除安装目录即可。
缺点
- 安装过程中过程较为复杂。
- 编译过程时间较长(与 RPM 包相比)。
RPM 安装
定义
RPM 提供了一种可升级、具有强大查询功能和支持安全验证的通用型 Linux 软件包管理工具。由于这种软件管理方式非常方便,所以逐渐被其他 Linux 发行版所借用。
优点
安装简单方便。
- 安装时不用指定安装位置。
- 方便升级、卸载。
缺点
-
大多数 RPM 安装需要解决依赖关系。
YUM
可以从多个源当中搜索软件及软件安装所需的依赖包,并自动安装相应的依赖软件。
计算机五大组成部分 :由冯诺依曼在1945年提出,包括运算器、控制器、存储器、输入设备、输出设备。
磁盘分区:划分扇区的范围。- 扇区:圆心以放射状分割出磁盘的最小存储单位。
- 磁道:由扇区组成的圆。
- 柱面:若有多个盘片,所有盘片都在同一磁道相互堆叠在一起就是一个柱面。
GPT 与 MBR 区别:
- 传统 MBR 分区方式有诸多限制,如只能有4个主分区,无法创建大于2TB的分区。
- GPT 分区方式则没有这些限制,还提供了分区表的冗余以实现分区表的备份与安全。
XFS 优势:
- 单个文件系统量最大支持8EB,单个文件支持16TB,CentOS 7起默认文件系统变为XFS。
- XFS 文件系统在数据分布上主要划分为数据区、文件系统活动登录区、实时运行区。
LVM 快照:
- 在做快照时有两个分区,一个是快照区,另一个是被快照区。
- 快照分区默认不存数据,被快照分区文件发生改变才把旧文件移到快照分区中。
磁盘配额:
- 用来限制用户创建inode和block。
- 包括软限制、硬限制、宽限天数等概念。
- 软限制(soft):用户在超过软限制之后,每次用户登录系统时系统会发出警告信息,并且给予一定的宽限天数 centos7 中因为有实时运行区导致没有软限制提示
- 硬限制(hard):表示用户的用量绝对不会超过这个限制值,如果超过硬限制则会锁住该用户对磁盘的使用权。
- 宽限天数:宽限时间只有在用户的磁盘用量介于软限制和硬限制之间时会出现。宽限天数默认为7天
备份策略:
-
完全备份:每次备份都复制所有数据。
-
增量备份:仅备份上次备份后改动的数据。
-
差异备份:与首次备份比较并备份差异数据。
中断处理
- 定义:中断是优先级最高的信号,中断信号到达CPU时,CPU需要从当前进程切换到新进程,这一过程称为中断处理。
- 类型:硬中断和软中断。
上下文切换
- 定义:执行的进程被加载到寄存器的代码被称为上下文,随着进程的切换会切换代码即为上下文切换。
- 影响:频繁的上下文切换会导致CPU性能下降。
父进程与子进程
- 复制地址空间:父进程复制自己的地址空间,创建一个新的进程即子进程。
- PID与PPID:进程ID(PID)和父进程ID(PPID)。
僵尸进程
- 定义:子进程代码执行结束,但父进程未处理退出信号,导致子进程变为僵尸进程。
- 处理 :使用
kill
命令无法杀死僵尸进程,可以通过杀死僵尸进程的父进程使僵尸进程消失。
线程
- 定义:进程中产生的一个执行单元,用于进程间共享内存地址空间。
Shell脚本执行方式
- 执行脚本方式:
1.以绝对路径或相对路径方式执行,需要执行权限。
2.以source或.的方式执行,不需要执行权限。
3.以bash的方式执行,不需要执行权限。
命令执行顺序
- 绝对或相对路径执行的命令。
- 别名。
- Bash内部命令。
- 按照$PATH环境变量定义的目录查找顺序找到的第一个命令。
二、数据库阶段
- ssh秘钥验证过程
首先,客户端事先生成一对密钥,并互换公钥文件。接下来,客户端不用密码,而是用密钥对来验证身份。客户端用服务器的公钥来加密自己的公钥,然后把加密后的信息发送给服务器。服务器用自己的私钥解密这些信息,得到客户端的公钥,并检查是否与服务器存储的客户端公钥匹配。如果匹配,服务器会进一步确认这个公钥是客户端创建的,于是发送一个加密的质询信息给客户端,让客户端用它的私钥来解密。如果客户端能正确解密并用服务器的公钥重新加密后发回,服务器就能确认这个公钥属于客户端,从而验证了客户端的身份
3./etc/ssh/ssh_config和sshd_config的区别
/etc/ssh/ssh_config:配置SSH客户端的行为,可以用来配置主机别名。
/etc/ssh/sshd_config:配置SSH服务器。可以设置服务器监听的端口和IP地址,可以控制用户登录。
4.TCP Wrappers的工作原理、如何发挥作用
TCP Wrappers 首先检查 /etc/hosts.allow 白名单文件,如果找到匹配的允许规则,则连接请求被允许;如果未找到匹配规则,则继续检查 /etc/hosts.deny黑名单文件,如果找到匹配的拒绝规则,则连接请求被拒绝;如果在两个文件中都未找到匹配规则,连接请求将被默认拒绝。因为白名单优先级比黑名单高,TCP Wrappers可以通过这个发挥作用
5.DHCP的原理、租约流程、续租流程、端口及作用、软件名和服务名、单臂路由实验的原理及作用、中继实验的原理及作用、路由转发功能如何实现
原理:DHCP是一个工作在应用层的局域网网络协议,使用UDP不可靠传输协议工作
租约流程:首先客户端通过广播DHCP Discover数据包来寻找可用的DHCP服务器;服务器接收到请求后,从其可用的IP地址池中选择一个地址,并通过DHCP Offer数据包将此地址及相关配置信息发送给客户端;客户端收到并决定接受后,会发送DHCP Request确认;最后,DHCP服务器通过发送DHCP ACK数据包正式确认分配,客户端据此设置其IP,网关等网络参数并开始通信。
续租流程 当客户端使用租约达到50%,以单播形式向服务器请求续约
如果续约失败,则继续使用IP,达到租约87.5%,以广播形式形式向服务器续租
如果续约继续失败,客户端则使用租约至100%,重新发送DHCP Discover包,重新广播寻找新的DHCP服务器
端口 67
作用 dhcp主要在工作中主要用于批量装机
软件名 dhcp
服务名 dhcpd
单臂路由原理主要是基于DHCP服务器在单个物理网络上为客户端提供多个作用域租约地址
单臂路由使用作用:我们如果想要让两个广播域之间通信就可以用到单臂路由
中继实验的原理及作用:作用: DHCP服务器利用了DHCP中继器来实现不同广播域分配不同IP地址,它的主要作用是在不同的广播域中代理DHCP服务器,原理:当中继器收到请求后,会检查该请求是通过哪个网关进入的,并根据该网关所属的网络段来确定应从哪个地址池分配IP地址。
路由转发是实现不同网段之间通信
6.DNS解析的过程、软件名和服务名、端口及作用、四个配置文件的位置、记录类型、各个实验的含义
过程:首先客户端查看查找本地hosts文件,本地缓存,如果有则不需要在找DNS服务器域名解析,没有就将请求转发给DNS服务器,DNS服务器首先在缓存中查找,没有就向根域服务器发起请求,根域服务器无法解析返回一级域名,让DNS服务器像一级域名服务器发起请求,一级域名服务器无法解析返回二级域名,让DNS服务器像二级域名服务器发起请求,二级域名服务器解析出IP后,返回给客户端,让客户端成功访问到想要访问的服务器
软件名:bind
服务名 named
端口UDP 53给客户端作为解析请求的目标端口 TCP 53 DNS主从同步的数据传输端口
DNS用于IP和域名的相互转化
/etc/named.conf #主配置文件
/etc/named.rfc1912.zones #区域配置文件(声明要解析的对象)
/var/named/named.localhost #正向解析文件
/var/named/named.loopback #反向解析文件
记录类型 A 正向解析记录 CNAME 将域名指向另一个域名 NS:名称服务器 PTR 反向解析记录 AAAA 指定域名的IPv6地址的记录 MX 邮件交换记录
主从DNS服务器 数据备份(从服务器向主服务器发起请求,然后主服务器将相关数据发送给从服务器),分摊压力
DNS缓存服务器保存部分常用的数据副本,以加快访问速度,提高工作效率
分离解析DNS服务器在解析给不同客户端时,会根据客户端来源地址的不同解析给响应的服务 这就叫分离解析,或者叫智能DNS 智能DNS采用"就近原则"
7.VSFTP的连接类型、工作模式及特点、端口及作用、软件名和服务名、登录后可以使用的命令、三种登录方式、配置文件里控制权限的参数
连接类型命令连接 TCP 21**:用于发送FTP命令。
数据连接 TCP 20:Port模式下用于数据传输。
TCP 随机端口**:Passive模式下用于数据传输
工作模式 主动模式 客户端与服务器的TCP 21端口建立连接,客户端通过PORT命令指定数据接收端口,服务器通过TCP 20端口连接客户端指定端口发送数据。特点 主动模式需考虑客户端防火墙配置。
被动模式客户端与服务器的TCP 21端口建立连接,客户端发送Pasv命令,服务器打开一个(>1023)临时端口 并通知客户端连接此端口传输数据。特点:被动模式客户端无需关注防火墙设置,使用方便。服务器端需要管理员配置端口放行策略。
服务端软件名 vsftpd
服务名 vsftpd
客户端软件名 ftp
命令: 用?打开命令提示
delete 删除
rename 重命名
ls 列出文件
pwd 当前所在的绝对路径
mkdir 创建文件
get 拉取文件
put 推送文件
lcd 切换目录
匿名用户验证 开放性资源共享 默认权限受到严格限制。
anonymous_enable=YES #启用匿名访问
anon_umask=022 #匿名用户所上传文件的权限掩码
anon_root=/var/ftp #匿名用户的FTP根目录
anon_upload_enable=YES #允许上传文件
anon_mkdir_write_enable=YES #允许创建目录
anon_other_write_enable=YES #开放其他写入权(删除、覆盖、重命名)
anon_max_rate=0 #限制最大传输速率(0为不限速,单位:bytes/秒)
本地用户验证 非开放性资源的共享
虚拟用户验证 非开放性资源的共享 虚拟用户创建后会保存到数据库,用户登录后与Linux用户进行映射,即虚拟用户借用映射用户来上传下载文件等功能 安全性和管理性高
local_enable=YES #是否启用本地系统用户
local_umask=022 #本地用户所上传文件的权限掩码
chroot_local_user=YES #是否将用户的家目录当做根目录
allow_writeable_chroot=YES#忽略安全性警告{centos7中需要添加此选项}
local_max_rate=0 #限制最大传输速率
ftpd_banner=Welcome to blah FTP service #用户登录时显示的欢迎信息
userlist_enable=YES
userlist_deny=YES
#禁止/etc/vsftpd/user_list文件中出现的用户名登录FTP
userlist_enable=YES
userlist_deny=NO
#仅允许/etc/vsftpd/user_list文件中出现的用户名登录FTP
pasv_enable=YES 被动模式
-
如何提高数据库数据的安全性?
- 提高数据库数据安全性的方法包括客户端连接时的身份验证和授权、网络连接状态管理、防火墙策略、最小权限授权、合理设计数据库和表结构以防止不合理数据存储以及通过备份、日志记录、主从同步等方式实现数据的本地或异地备份。
- 数据库的持久化是什么意思,以及为什么要进行持久化?
- 持久化是指将内存空间中的数据保存到永久存储介质的过程。因为他可以保证数据的一致性和完整性,防止由于硬件故障导致的数据丢失。
事务特征
- 原子性:一个事务内的操作统一成功或失败 有回滚机制,能够触发还原
- 一致性:事务前后的数据总量不变
- 隔离性:事务与事务之间并发访问时互不影响。
- 持久性:事务一旦提交发生的改变不可逆,事务结果持久化。
优化数据库的例子 索引
1)另外搞个机器,也搭建好一样的数据库服务器
2)创建表,建立索引(此时是空表)
3)把旧的数据库的数据,导入到新的数据库中,(非常耗时)慢慢导,
4)数据导好了,把应用程序的请求切换到新的服务器上
此时,就可以顺利完成切换,确保数据库不会挂前提啥,把索引给加上了
关系和非关系数据库
- 关系型数据库 :大体上可以认为是通过"表格"(Excel) 这样的方式来组织的,每一行都是一条数据.每一行中都包含很多列,每个列还会有不同的类型, 小中型数据库 #MySQL MariaDB 大型 Oracle SQL Server
- 非关系型数据库 #redis mongoDB 对于数据的格式上的要求不严格.往往是按照键值对的形式来进行组织的
1. 唯一索引
所有列的值必须唯一,但是允许有空值。普通索引和唯一索引可以称为辅助索引。