首页 > 代码库 > Linux 第九周上课笔记(1) SElinux,系统恢复
Linux 第九周上课笔记(1) SElinux,系统恢复
####selinux的初级管理
1.概念
selinux:内核级加强型防火墙
2.如何管理selinux级别
selinux开启或者关闭
vim /etc/sysconfig/selinux
selinux=disabled##关闭状态
selinux=Enforcing##强制状态
selinux=Permissive##警告状态
说明:
关闭状态:selinux不干扰任何进程
强制状态:selinux开启
警告状态:selinux开启,对敏感操作发出警告,但不干扰系统进程,让你下次别这样做。
getenforce##查看状态
当selinux开启时
setenforce 0|1##更改selinux运行级别
说明:0表示警告模式 ,1为强制模式
3.安全上下文
查看安全上下文:ls -Z
a.什么安全上下文
安全上下文时一个简单的,一致的访问控制属性,在selinux中,类型标识符三安全上下文的重要组成部分,由于历史原因,一个进程的类型通常被成为一个域(domain),由于“域”和“”域“的意思都一样,,即都是安全上下文中的”type”
b.更改安全上下文的方法(临时更改)
chcon -t 安全上下文文件
chcon -t public_content_t /publicftp -R ##-R表示第归
c.永久更改安全上下文
semanage fcontext -l##列出内核安全上下文列表内容
semanage fcontext -a -t public_content_t ‘/publicftp(/.*)?‘
restorecon -FvvR /publicftp/
参数说明:
-i:忽略不存在的文件
-f:iffilename文件infilename中记录的要处理的文件
-e:排除目录
-R/-r:递归处理目录
-n:不改变文件标签
-o:保存文件列表到outfilename,在文件不正确的情况下
-v:显示过程到屏幕上
-F:强制恢复文件安全语境
4.如何控制selinux对服务功能的开关
getsebool -a | grep 服务名称
getsebool -a | grep ftp
setsebool -P 功能bool值 on|off
setsebool -Pftpd_anon_write on ####此处-P表示永久性,注意P为大写
5.监控selinux的错误信息
setroubleshoot-server
###############系统恢复########
1.系统启动流程
通电
||
bios(主板上的只读存储中,basic input or output system)
作用,硬件检测,激活硬件
||
grub系统引导(grub引导分为两个阶段)
Troublemaker part1
执行:dd if=/dev/zero of=/dev/vda bs=446 count=1
1)阶段1 mbr(主引导记录)主引导记录在硬盘上的0磁道,一扇区,446个字节
*)dd if=/dev/zero of=/dev/vda bs=446 count=1 可以清空mbr
*)进入到挽救模式,执行chroot /mnt/sysimage切换到真实/环境,
并执行grub2-install /dev/vda
虚拟机视图如下;
一直卡在从硬盘引导过程中,因为系统开机时,首先读取的是mbr(master boot record)
大小为446个字节。由于我们之前将这个mbr给截取了。系统不知道接下来该读取那里,于是就会卡在这里.
解决方法:
将原来的虚拟机强制关机
在虚拟系统管理器中进行如下操作:
1.找到系统盘的原始镜像(pxe网络引导也可以)。添加一个cdrom盘。选择光盘引导
再次开启虚拟机,进入挽救模式
一直下一步。
最后到命令行模式:进行如下操作:
Chroot /mnt/sysimage ###切换到真实环境
Chroot 要exit 两次才表示完全退出。然后关闭虚拟机,从硬盘启动
这时经过两次启动之后,系统就恢复好了。
2)阶段2 grub文件引导阶段
找到/boot分区
读取/boot/grub2/grub.cfg
文件丢失,grub2-mkconfig >/boot/grub2/grub.cfg
Troublemaker part2
grub文件引导的配置文件在:/boot/grub2/grub.cfg
当我们删除这个文件后:rm -fr /boot/grub2/grub.cfg
在重启之前都可以执行:grub2-mkconfig >/boot/grub2/grub.cfg 重新生成这个文件
重启之后,显示如下界面
解决方法:(不用进入挽救模式)
手动引导grub(grub> set root=‘hd0,msdos1‘ grub> linux16 /boot/vmlinuz-3.10.0-123. el7.x86_64 ro root=/dev/vda1
grub> initrd16 /boot/initramfs-3.10.0-123.el7.x86_64.img
grub> boot
这样问题就解决了
||
启动内核,只读挂载/设备
检测设备
对设备驱动进行初始化
进入系统初始化阶段
内核丢失,从新安装内核安装包就可以解决
rpm -ivh kernel-xxxxx.rpm --force
Troublemaker part3 删除内核
执行命令:
Rm -fr /boot/vmlinuz-3.10.0-123. el7.x86_64
解决方法:
关闭故障虚拟机。将引导方式改为光盘引导
再打开虚拟机,进入挽救模式
解决方式如图所示,(重新安装内核,这一方式适用于一切内核故障问题,简单粗暴)
rpm -ivh kernel-xxxxx.rpm --force
如此以来,系统就恢复了
||
系统初始化阶段
系统初始化阶段加载initrd镜像
开启初始化进程systemd
开始selinux
加载内核参数
初始化系统时钟,键盘,主机名称
重新读写挂载/设备
激活raid,lvm
激活配额
Troublemaker part4 initrd镜像缺失
rm -fr /boot/initramfs-3.10.0-123.el7.x86_64.img
解决方法:
关闭虚拟机,进入挽救模式
执行如下命令:
启动multi-user.target.wants中的所有服务
开启虚拟控制台
启动图形
图形起不来
解决办法:
改密码
在系统启动时按e
进入如下界面
执行ctrl+x
手动修改密码即可
Linux 第九周上课笔记(1) SElinux,系统恢复