一、linux操作系统的开机引导的过程
1、开机自检
根据bios的设置,对cpu,内存,显卡,键盘等设备进行初步检测,如果以上检测设备工作正常,系统会把控制权移交到硬盘
2、MBR引导/GPR引导
分区之后,需要创建文件系统,然后挂载,设备才能正常使用。
操作系统文件都是保存在硬盘,也就是系统的挂载点。MBR和GPT是由分区表组成的-->映射到挂载点。硬盘掌握系统控制权之后,根据分区表来查找操作系统的引导文件,MBR的硬盘第一个扇区的主引导记录,GPT默认的guid1
3、grub菜单
当计算机当中有一个以上的操作系统,就会有grub菜单,多个操作系统,用户可以自行选择需要的系统。控制权--->linux的内核。
4、加载linux的内核
内核是一个编译好的二进制可执行文件,介于硬件和操作系统之间,负责资源分配和调度。
5、systemd进程初始化
串行:按照顺序一个一个的进行
并行:一起执行
总结
检测出包含系统启动操作系统的设备;根据硬盘的分区表,找到操作系统的文件;根据grub菜单选择操作系统类型;加载操作系统的文件到内核;systemd进程初始化,并行处理减少了系统的开机时间
二、服务控制以及系统的运行级别
1、服务控制
systemd是一个管理linux系统服务和进程的管理器,使用单元UNIT,来描述和控制系统服务和资源。
单元种类
单元名称 | 说明 |
service单元 | 管理和启动系统服务以及第三方服务的单元 |
socket单元 | 端口,监听网络的通信套接字 |
target单元 | 一组服务的集合,用来描述系统或者服务的运行级别 |
path单元 | 用来监控文件或者目录的状态 |
mount单元 | 管理文件系统的挂载 |
device单元 | 管理硬件设备的单元 |
swap单元 | 用于管理交换空间的使用权,可以指定交换分区、优先级等 |
scope单元 | 用于管理进程组,可以指定进程组的启动命令、资源限制等 |
slice单元 | 用于管理进程组的资源配额,可以限制进程组的cpu、内存等资源使用 |
automount单元 | 用于按需挂载文件系统,可以在需要使用时自动挂载指定的文件系统 |
snapshot单元 | 用于创建和管理systemd系统的快照,可以备份和还原整个系统状态 |
端口:端口在主机上是唯一的,一旦被使用,其他程序就无法再被使用。它是服务通信的必要条件,也是服务识别的一个标志。
常见端口号
- nginx 80
- tomcat 8080
- mysql 3306
- ssh 22
单元控制的命令
systemctl #控制单元的命令
#控制的的状态
stop 停止
start 启动
restart 重启
reload 当修改了单元文件,需要reload重新加载单元文件
systemctl daemon-reload
systemctl reload 服务名
status 查看服务的状态
状态有三种,active,inactive,failed
以nginx为例
2.系统和进程的运行级别
runlevel
#查看系统运行级别的命令
- N 表示当前系统没有切换过运行级别
- 5 表示当前的运行级别
运行级别
运行级别 | systemd的单元类型 | 说明 |
0 | target | 关机 |
1 | rescue.target | 单用户模式,不需要验证密码就可以登录系统(系统维护) |
2 | multi-user.target | 字符串界面的多用户模式 |
3 | multi-user.target | 字符串界面的多用户模式 |
4 | multi-user.target | 字符串界面的多用户模式 |
5 | graphical.target | 图形化界面的多用户模式 |
6 | reboot.target | 重启 |
通过init调整
init 0 ; poweroff 关机
init 6 ; reboot 重启
三、系统的基本加固和sudo权限
1、账号安全基本措施
修改不需要登录的用户shell
usermod -s /sbin/nologin 用户名 #禁止用户登录
锁定长期不使用的账户或直接删除
usermod -L 用户名 #锁定 usermod -U 用户名 #解锁
passwd -l 用户名 #锁定 passwd -u 用户名 #解锁
userdel -r #删除用户并删除家目录
锁定重要的文件
lsattr 文件的绝对路径 #查看文件状态
用户密码的有效期设置
新建用户:
vim /etc/login.defs
useradd -m -s /bin/bash 用户名
cat /etc/shadow | grep 用户名 #查看结果
已有用户:
chage -M 天数 用户名
限制命令的历史记录
vim /etc/profile
HISTSIZE=50 #设置历史记录为50条
source /etc/profile #让修改过的配置文件生效
history -c #清空历史记录
登录超时
远程登录超时
vim /etc/profile
TMOUT=10 #单位是s
一般设置为60-120s,为了实验见效快设置时间较短
source /etc/profile #使配置生效
2.sudo
sudo #赋予普通用户可以使用管理员命令的权限
/sbin 都是管理员可以用的命令文件
/bin 所有用户都可以使用的命令
/sbin 和 /bin 保存的都是系统可执行的命令文件
把lisi用户添加到sudoers中
su - root
visudo
lisi ALL=(ALL)ALL
保存退出即可