当前位置: 首页 > news >正文

C02S11-Linux系统的安全与控制

一、Linux系统启动过程

1. 开机自检

计算机加电后,BIOS会检查计算机的硬件状态,包括CPU、内存、硬盘等,确保所有的硬件可以正常工作。

2. MBR引导或GPT引导

开机自检完成后,BIOS会根据设置的启动顺序来查找启动设备(硬盘、U盘、光驱等)。MBR分区方案中,BIOS会从启动设备的MBR读取记录引导信息的扇区。这步的主要作用是,告诉计算机到启动设备的哪个位置去寻找操作系统。

3. GRUB菜单

完成MBR引导或GPT引导后,会启动引导加载程序,Linux系统上常见的引导加载程序是GRUB。GRUB是一个多操作系统引导管理器,允许用户在启动时选择不同的操作系统,或根据默认配置加载系统。GRUB会显示一个菜单,列出所有可启动的内核和操作系统选项。

4. 加载Linux内核

选择好操作系统后,GRUB会加载选定的操作系统内核以及初始内存映像(initramfs)。Linux内核是一个预先编译好的二进制可执行文件,介于各种硬件资源与系统程序之间, 负责资源分配与调度。初始内存映像是一个临时的文件系统,包含了启动Linux系统所需的基本工具和驱动程序。

5. init进程初始化

内核加载完成后,会启动init进程。这是Linux系统中的第一个进程,是系统所有进程的起点,没有这个进程,系统中任何进程都不会启动。init进程负责启动系统运行级别,根据配置文件(如/etc/inittab)或使用systemd的配置文件来启动系统服务和应用程序。

二、Linux服务控制

1. init和Systemd的比较

init依赖于串行执行Shell 脚本启动服务,导致效率低下,系统启动速度较慢。而Systemd能够将更多的服务进程并行启动,并且具有提供按需启动服务的能力,使得启动更少进程,从而提高系统启动速度 。

2. Systemd单元类型

2.1 Systemd单元概述

在Systemd中,不同类型的Systemd对象被称为单元,Systemd单元类型是用于定义系统启动和服务管理的不同种类的配置文件。每种单元类型对应不同的系统资源或服务,并定义了如何启动和管理这些资源或服务。

单元类型扩展名说明
Service.service描述一个系统服务
Socket.socket描述一个进程间通信的套接字
Device.device描述一个内核识别的设备文件
Mount.mount描述一个文件系统的挂载点
Automount.automount描述一个文件系统的自动挂载点
Swap.swap描述一个内存交换设备或交换文件
Path.path描述一个文件系统中文件或目录
Timer.timer描述一个定时器
Snapshot.snapshot用于保存一个systemd的状态
Scope.scope使用systemd的总线接口以编程的方式创建外部进程
Slice.slice描述居于Cgroup的一组通过层次组织的管理系统进程
Target.target描述一组systemd的单元

2.2 systemctl命令 – 管理系统服务

systemctl命令来自英文词组system control的缩写,功能是管理系统服务。Systemd服务的管理就是通过systemctl命令来实现的。

systemctl [选项] 控制命令 服务

常见的控制命令:

控制命令功能
start启动
stop停止
reload重新加载服务配置
restart重启
enable设置开机自启动
disable取消开机自启动
reenable重新设置开机自启动

2.3 运行级别

运行级别Systemd单元类型说明
0target关机
1rescue.target单用户模式
2multi-user.target字符串界面多用户模式
3multi-user.target字符串界面多用户模式
4multi-user.target字符串界面多用户模式
5graphical.target图形化界面多用户模式
6reboot.target重启
  • 可用使用runlevel查看系统当前的运行级别。

  • 可用使用init命令设置系统的运行级别。

    init 运行级别
    

三、Linux系统安全应用

1. 账号安全设置

1.1 系统账号清理

  1. 修改不需要登录的用户的Shell。

    usermod -s /sbin/nologin 用户
    
  2. 锁定长期不使用的用户账号。

    # usermod
    usermod -L 用户 # 锁定用户
    usermod -U 用户 # 解锁用户# passwd
    passwd -l 用户 # 锁定用户
    passwd -u 用户 # 解锁用户
    
  3. 删除长期不用的用户账号。

    userdel 用户 # 删除用户
    userdel -r 用户 # 删除用户的同时删除用户家目录
    

1.2 锁定重要文件

  1. 锁定与用户相关,比如psswd、shadow等重要文件。

    chattr +i 文件 # 锁定文件
    chattr -i 文件 # 解锁文件
    

2. 密码安全设置

2.1 密码有效期设置

  1. 适用于新建用户:修改/etc/login.defs文件,设置新建用户的密码有效期。

    PASS_MAX_DAYS # 密码的最长有效时间
    
  2. 适用于已建用户:使用change命令设置用户密码的有效期限。

    change -M 有效天数 用户
    

3. 历史命令限制

3.1 设置历史命令条数

  1. 编辑/etc/profile文件,在里面设置历史命令的保存条数。

    HISTSIZE=保存条数
    

    保存文件后,执行下面命令,刷新系统环境。

    source /etc/profile
    

4. 终端自动注销

4.1 设置终端最大空闲时间

  1. 编辑/etc/profile文件,在里面设置终端的最大空闲时间。当终端空闲时间超过设置的时间,终端就会断开连接。

    TMOUT=空闲时间 # 单位为秒
    
  2. 保存文件后,执行下面命令,刷新系统环境。

    source /etc/profile
    

四、用户提权设置

1. sudo命令– 授权普通用户执行管理员命令

sudo命令来自英文词组super user do的缩写,功能是授权普通用户执行管理员命令。

sudo 命令

在Ubuntu系统中,默认sudo可用让普通用户使用所有超级用户可以使用的命令。而在CentOS系统中,还需要通过设置授权普通用户执行某些指定的命令。


http://www.mrgr.cn/news/66870.html

相关文章:

  • 【sqlmap使用手册-持续更新中】
  • oracle insert忽略主键冲突,忽略重复记录
  • 跳出与空语句
  • [Unity Demo]从零开始制作空洞骑士Hollow Knight第十八集补充:制作空洞骑士独有的EventSystem和InputModule
  • 学习记录:js算法(八十六):全排列 II
  • 刘艳兵-DBA023-控制文件是Oracle 数据库用来查找数据库文件,控制文件包含以下哪些信息:
  • 电脑贬值率长期计算【伸手党福利】
  • c++基础17for循环
  • 29.5 日志消费组和日志正则处理对象AnalysPoint
  • 2023下半年上午(1~11)
  • 数据库概论实验一
  • 【云岚到家】-day09-1-项目迁移6-秒杀抢购介绍
  • Spark SQL大数据分析快速上手-DataFrame应用体验
  • 【Orange Pi 设备】window11主机下使用VNC可视化控制RK3566
  • python之dict
  • mac上的一些实用工具
  • 【5.10】指针算法-快慢指针将有序链表转二叉搜索树
  • 基于YOLOv8 Web的安全帽佩戴识别检测系统的研究和设计,数据集+训练结果+Web源码
  • 一文彻底搞懂大模型 - Dify(Agent + RAG)
  • 会议室有了智能中控系统价值,会议效率和效果还不飞升。
  • 自动化运维
  • 前端面筋(持续更新)
  • GESP4级考试语法知识(算法概论(一))
  • 会话技术 Cookie和Session对象
  • golang安装,常用框架安装,记忆点
  • 2024系统架构师---论软件系统架构风格论文