Linux系统运维指南

实验linux操作系统版本为:CentOS-7.6-x86_64-DVD-1810.iso

注意:此文档为讨论性材料,均为个人实验截图及网络收集资源,非终版。

建议安装操作系统的磁盘与存放数据的磁盘分开

系统盘本次配置:50G    生产推荐:100-150G以上

数据盘本次:100G+120G 生产推荐:300-500G以上

一  系统安装(以图形化安装演示)

镜像获取:Download Linux | Linux.org

在中国境内有许多镜像网站提供各种操作系统和软件的ISO镜像下载服务,以下是一些常用的国内镜像网站,您可以从这些网站获取ISO镜像:

1. **清华大学开源软件镜像站:** https://mirrors.tuna.tsinghua.edu.cn/
2. **上海交通大学开源软件镜像站:** https://mirrors.sjtug.sjtu.edu.cn/
3. **阿里云开源镜像站:** https://developer.aliyun.com/mirror/
4. **中科大开源镜像站:** https://mirrors.ustc.edu.cn/
5. **华为开发者镜像站:** https://mirrors.huaweicloud.com/
6. **网易开源镜像站:** http://mirrors.163.com/
7. **中国科技大学开源镜像站:** https://mirrors.ustc.edu.cn/
8. **兰州大学开源镜像站:** https://mirror.lzu.edu.cn/
9. **北京交通大学开源镜像站:** https://mirror.bjtu.edu.cn/
10. **南京大学开源镜像站:** https://mirrors.nju.edu.cn/

下载ISO镜像使用国内的为最快 使用距离你所在地越近速度越快(数据的传输路径更短)

使用ISO引导安装操作如下:

上下健,选择:Install CentOS 7 回车

下面进入图形化安装模式!

安装语言选择“简体中文”--继续

点击“语言支持”

 选择添加English(United State)

点击“软件选择”:(选择带GUI的服务器及其配置)

注意,模板机推荐最小化安装

为什么使用最小化安装:

节省资源: 虚拟化环境中的模板机是用作创建新虚拟机的基础。使用最小化安装可以减少模板机的占用空间和资源消耗,从而节省存储空间和计算资源。这样,您可以在虚拟环境中创建更多的虚拟机,而不会过多消耗硬件资源。

安全性: 使用最小化安装的模板机可以减少潜在的安全风险。由于只安装了核心组件,攻击面更小,减少了潜在的漏洞和安全隐患。

 选择“带GUI(图形化界面)的服务器”,选择右边的常规工具:KDE、性能工具、系统工具等。

KDE(桌面环境) 

性能工具(监视和分析系统性能

兼容性程序库(确保应用程序在特定环境中正常运行的软件库) 

开发工具(软件开发的工具集合,包括编译器、调试器、集成开发环境(IDE)

系统管理工具(用于管理和维护服务器的工具。

 

 点击安装位置(系统安装位置选择几块磁盘中的一块

如下图:

1 操作系统将安装的位置

2 我要配置分区

 创建根分区、交换分区、用户数据分区。自行划分每个分区的大小、位置和文件系统类型

 这里如果选择自动分区:

根分区:用于容纳操作系统和文件系统,一般20G到30G

交换分区:一般为系统内存的一倍到两倍

用户数据分区(/home):剩余空间全部在这里

其他分区(/var(系统日志)、/tmp(临时文件)等)

3 完成

如下图

1 选择LVM

2 点击“+”手动分区

接上图:点击 完成 ,点击下图中 接受更改!

 接上图:点击 完成 ,点击下图中 接受更改!

 点击开始安装

账户和密码设置 :

设置root 用户密码,如果不符合复杂要求,需要点击2次完成。

系统安装完成,点击 Reboot 重新启动 操作系统安装完毕!

 点击 LICENSING,并接受许可证

 

 点击 完成配置进入系统

 

于安装的是带GUI的服务器,所以首次必须创建一个用户不能直接用root登录(如果是最小化安装无图形界面则不需要)

新建一个用户:user,密码:Qwe123!@#

该处设置密码有很复杂的要求,建议多试几次就明白了

密码复杂度:

一个复杂的密码可能是一个混合了大小写字母、数字和特殊字符的长密码,避免常见单词,避免个人信息,不使用连续字符。例如,一个符合要求的密码可以是 "P@ssw0rd2023!"。

 

虚拟机同步时间

 如果需要让虚拟机同步时间,可以让虚机同步主机,主机同步ntp的方式,设置方法:右击编辑该linux虚拟机,在虚拟机选项中勾选如下图所示:

 系统安装完毕

二  做模板机方便以后克隆使用

需要从原始系统中删除与唯一性和安全性相关的信息,以便在使用镜像创建新的虚拟机时避免冲突和潜在的安全问题。

1.首先删除SSH主机密钥

root账户下执行:rm -rf /etc/ssh/ssh_host_*

2. 在 /etc/sysconfig/network 中添加:(这里本来可以不用设置的,但鉴于标准化还是设置了一个主机名)

HOSTNAME=localhost.localdomain

3. 从 /etc/sysconfig/network-scripts/ifcfg-ens* 中

删除 HWADDR 行和 UUID 行。(如果有的话)

 删除后如下图所示:

 4.删除/var/log中所有的日志

5.最后运行以下命令:# sys-unconfig虚拟机被关机。它已被封装,并可用来创建模板。

sys-unconfig 命令时,系统将重置为类似于首次启动时的状态,您需要重新配置一些基本系统设置,如主机名、网络配置等。

新克隆的虚拟机:可以选择更改root密码,创建新用户,也可以直接进入。

直接进入后,仍然有user用户,密码与之前的一样,需要注意,最小化安装则不需要

三  网络配置(命名规范化配置)

登录操作系统,用户名:root    密码:12345

首先需要查看网络接口名称:

nmcli d stat 

网络设备名称为:ens192  --这是系统分配标识数字,你的环境可能不同,如果网卡多起来,分辨困难,建议采取命名规范化配置,这样日后维护看到名字就知道是哪块网卡

以配置连接名称为 public的网络为例

nmcli c add con-name public ifname ens192 type ethernet ip4 192.168.X.X/24 gw4 192.168.X.1

`nmcli c add` 是 NetworkManager 命令行工具中用于添加新连接的命令。它允许你创建新的网络连接配置。以下是 `nmcli c add` 命令的语法和参数说明:

```
nmcli c add con-name <连接名> ifname <设备名> type <连接类型> [连接参数]
```

- `<连接名>`: 要创建的连接的名称。
- `<设备名>`: 要将连接绑定到的网络设备的名称。
- `<连接类型>`: 连接的类型,例如 `ethernet`(以太网连接)、`wifi`(无线连接)等。

除了上述基本参数,你还可以根据连接类型提供其他特定的参数。例如,对于以太网连接,你可以指定 IP 地址、网关等。以下是一些可能的连接类型和相关参数:

1. **以太网连接**(Ethernet Connection):
   
   ```
   nmcli c add con-name <连接名> ifname <设备名> type ethernet ip4 <IP地址/子网掩码> gw4 <网关>
   ```

   - `<IP地址/子网掩码>`: 你要设置的 IP 地址和子网掩码,例如 `192.168.1.2/24`。
   - `<网关>`: 网关的 IP 地址,例如 `192.168.1.1`。

2. **Wi-Fi 连接**(Wireless Connection):

   ```
   nmcli c add con-name <连接名> ifname <设备名> type wifi ssid <SSID> [-- wifi-sec.key-mgmt <加密方式> -- wifi-sec.psk <密码>]
   ```

   - `<SSID>`: 无线网络的名称。
   - `<加密方式>`: 加密类型,例如 `wpa-psk`。
   - `<密码>`: 无线网络密码。

这只是两种连接类型的示例,实际上还有许多其他类型和相关参数可以使用。要详细了解每种连接类型的参数和选项,你可以在终端中键入 `nmcli c add help` 或者查阅 NetworkManager 的文档。在使用 `nmcli c add` 命令时,你应该根据实际情况提供正确的参数值以配置连接。

nmcli c up public  (启动配置public网卡)

nmcli c    (显示配置)

nmcli d stat (显示接口状态)

ip a   (显示IP信息)

# cat /etc/sysconfig/network-scripts/ifcfg-public  (检查配置)

查看这条“onboot=yes” ----确认开机启动为yes即可

指令nmcli解读:

`nmcli` 是 NetworkManager 的命令行界面工具,它允许你在命令行中管理网络连接和网络配置。以下是一些常用的 `nmcli` 命令和它们的解释:

1. **nmcli c**: 这个命令用于管理连接(connections)。你可以使用不同的子命令来添加、修改、删除和列出连接。

   - `nmcli c add`: 添加新连接。
   - `nmcli c modify`: 修改现有连接的设置。
   - `nmcli c delete`: 删除连接。
   - `nmcli c show`: 列出所有连接及其详细信息。

2. **nmcli d**: 这个命令用于管理设备(devices)。你可以使用不同的子命令来显示设备信息、启用或禁用设备等。

   - `nmcli d show`: 显示设备信息。
   - `nmcli d connect`: 连接设备。
   - `nmcli d disconnect`: 断开设备连接。

3. **nmcli g**: 这个命令用于显示全局设置(global settings)。

   - `nmcli g hostname`: 显示主机名设置。
   - `nmcli g permissions`: 显示权限设置。

4. **nmcli radio**: 这个命令用于管理无线电(radio)设备状态。

   - `nmcli radio all on`: 打开所有无线电设备。
   - `nmcli radio wifi off`: 关闭 Wi-Fi 设备。

5. **nmcli networking**: 用于管理网络功能。

   - `nmcli networking on`: 打开网络功能。
   - `nmcli networking off`: 关闭网络功能。

6. **其他命令**:
   
   - `nmcli general`: 显示 NetworkManager 的一般信息。
   - `nmcli device`: 显示设备的详细信息。

四 挂载系统ISO作为yum源(必会)

1. 新建/home/ISO/  上传CentOS-7.6-x86_64-DVD-1810.iso文件到ISO目录

一定要确保这个ISO文件上传完毕后再进行下面的操作。

2. 创建挂载目录

mkdir /media/CentOS7

3. 挂载iso文件

mount -t iso9660 -o loop  /home/ISO/CentOS-7.6-x86_64-DVD-1810.iso  /media/CentOS7

mount -t  挂载的文件类型   循环设备允许将一个文件作为块设备来访问。
mount -o  loop  指定挂载ISO镜像的循环设备 
 `-o` 是用来指定挂载选项(mount options)的参数。
通过 `-o` 参数,你可以指定一系列的选项来控制挂载的行为。

以下是一些常见的挂载选项和示例:

- `-o ro`: 以只读(read-only)模式挂载文件系统。
- `-o rw`: 以读写(read-write)模式挂载文件系统(默认模式)。
- `-o remount`: 对一个已挂载的文件系统进行重新挂载,可以用来修改挂载选项。
- `-o noexec`: 禁止在该文件系统中执行可执行文件。
- `-o nodev`: 禁止在该文件系统中创建设备文件。
- `-o nosuid`: 禁止在该文件系统中执行 SUID/SGID 程序。
- `-o uid=xxx,gid=xxx`: 指定挂载的文件系统中文件和目录的用户和组身份。
- `-o defaults`: 使用默认的挂载选项。

 df  -TH  查看挂载情况(显示磁盘分区或文件系统的使用情况)

4. 设置开机自动挂载光盘镜像

执行 vi /etc/fstab

(fstab 输入错误会使主机无法正常启动而进入emergency mode紧急状态,)

在最后一行添加(按 i进入编辑模式,按 ESC退出编辑模式,再输入 :wq! 再回车,保存后退出)

/home/ISO/CentOS-7.6-x86_64-DVD-1810.iso  /media/CentOS7  iso9660  defaults,ro,loop   0 0

5. 配置源

首先备份原始repo文件

cd /etc/yum.repos.d/

ls

mkdir  ./bak

mv  ./*.repo  ./bak/

执行   vi /etc/yum.repos.d/CentOS7-Localsource.repo  #打开repo文件,如果这一文件不存在则被创建

按i 进入编辑模式,输入以下内容:

[CentOS7-Localsource]
name=CentOS7
baseurl=file:///media/CentOS7
enabled=1
gpgcheck=0  (相当于后面gpgkey密钥的一个开关 设置为0不开启 为1开启检验)
gpgkey=file://etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7


- `[CentOS7-Localsource]`:这是仓库的名称,用方括号括起来。
- `name=CentOS7`:这是仓库的名称,可以自定义。在这个示例中,它被命名为"CentOS7"。
- `baseurl=file:///media/CentOS7`:这是仓库的基本URL,指向本地路径。在这个示例中,它指向一个挂载在`/media/CentOS7`目录下的目录,表示本地的CentOS 7安装介质。
- `enabled=1`:这表示启用该仓库。如果设置为0,仓库将被禁用。
- `gpgcheck=0`:这是GPG检查的设置,用于验证软件包的真实性。在这个示例中,GPG检查被禁用,设置为0。
- `gpgkey=file://etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7`:这是GPG密钥的路径,用于对软件包进行数字签名验证。在这个示例中,GPG密钥的路径是`/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7`。

总之,这个配置文件指定了一个本地的CentOS 7软件仓库,允许你从本地路径挂载的介质中安装和更新软件包。请注意,禁用GPG检查可能会降低软件包的安全性,建议在生产环境中仅在安全的情况下禁用。

按ESC退出编辑 输入 :wq 再回车 保存后退出

6. 生成 本地yum 缓存  执行

yum clean all

yum makecache

五  磁盘(LVM)的扩容

查看磁盘信息执行命令:

lsblk (快速了解系统中的存储设备布局)

显示设备的层次结构,展示设备之间的父子关系,并提供了设备的大小、挂载点等信息

全新的磁盘 sdb 100G 和sdc 120G未做任何的分区

下面将以创建卷组 test_vg 逻辑卷 test_lv 并挂载到 /test下为例演示!

第一阶段完成:分别用sdb物理盘直接创建pv和sdc 分区后创建pv共同组建lvm卷,挂载给/test,实现容量叠加。

主要演示两个方案:直接PV和分区PV

     CentOS7系统中支持直接创建物理卷(PV)和先进行分区后再创建物理卷

sdb直接创建pv,而sdc进行fdisk分区后再创建pv:

方案一:直接创建物理卷(直接PV

将设备 /dev/sdb 加入到物理卷;显示物理卷 pvs----物理磁盘到物理卷

pvcreate /dev/sdb

pvs

其次,创建 test_vg 卷组并将物理卷指派给 test_vg;显示卷组 vgs

---创建组虚拟卷,加入虚拟卷,可加多个

vgcreate   test_vg   /dev/sdb

vgs

最后,创建 test_lv 逻辑卷并分配磁盘空间;显示逻辑卷 lvs

---逻辑卷套虚拟卷组,可加多个虚拟卷组,对外服务

lvcreate -L 50G -n test_lv test_vg    ---创建50G的逻辑卷
或者也可全分配,此次演示采取全部分配方式:
lvcreate -l +100%FREE -n   test_lv   test_vg

lvs

接下来需要格式化逻辑卷,并挂载到 /test目录下

mkfs.xfs /dev/test_vg/test_lv

mkdir -p /test

echo  '/dev/test_vg/test_lv /test xfs defaults 0 0' >> /etc/fstab

-----开机启动

mount -a

df -h

 方案二:将sdc采取分区方式创建pv(分区PV),并扩容给/test (此时/test为100G)

fdisk /dev/sdc  (gdisk使用的是 GPT 分区表功能更强大,fdisk使用的是MBR 分区表(传统)简单)

依次输入 n --新建分区   p --主分区  默认回车两次  t --改变分区ID

8e --创建为lvm分区  w --保存并退出

partprobe /dev/sdc(是在对磁盘进行分区操作后,通知操作系统重新读取分区表,以便在运行时更新分区信息

为sdc1创建pv

pvcreate /dev/sdc1

扩容vg;查看vgs

vgextend test_vg /dev/sdc1

为test_lv扩容

lvextend -l +100%free /dev/test_vg/test_lv -r         
-l  +100%free :将逻辑卷扩展到卷组中的所有可用空闲空间。
-r 表示在扩容后自动调整文件系统的大小,确保文件系统能够利用新增的空间。

可以看到/test此时变为了220G,等于sdb 100G + sdc 120G

下面进行第二阶段:分别为sdb和sdc扩容后,再扩容到/test

编辑配置虚拟机,将100G和120G分别改为200G和300G

注意:如果虚拟机有快照,则不支持扩容磁盘,需删除所有快照。

lsblk查看当前磁盘大小,发现并未识别到新增容量

sdb和sdc仍然为100和120,

此时需要重新扫描SCSI设备

有两个办法: 在vsphere上测试用第一种有效,首选第一种

第一种:手动查找总线ID,执行扫描:

  1. 检查 scsi 设备的名称。先查看当前磁盘挂载在哪条总线上:
ls -l /sys/block/sda       ---host32表示在32总线

 ls /sys/class/scsi_device/    ---检查ID号,此次显示的是32

2. 然后重新扫描 scsi 总线。用上一步找到的总线名称替换“0:0:0:0”: 

echo 1 > /sys/class/scsi_device/0\:0\:0\:0/device/rescan

本案例实际命令为:

echo 1 > /sys/class/scsi_device/32\:0\:1\:0/device/rescan     ---重扫sdb

echo 1 > /sys/class/scsi_device/32\:0\:2\:0/device/rescan     ---重扫sdc

再次执行lsblk,可以看到容量已经识别

第二种:利用通配符轮询总线并扫描:

for i in $(ls /sys/class/scsi_host/); do echo "- - -" > /sys/class/scsi_host/$i/scan; done

第一种不奏效或者磁盘较多的时候可以用第二种。

此时sdb和sdc都以识别到空间,接下来给分区扩容,最终目的是让/test容量到达500G总和

首先是sdb直接创建pv的扩容方式:

pvresize /dev/sdb

pvs      ----查看pv扩容情况

直接扩容lv,由于之前已经将test_lv挂载给了/test,因此lv扩容后便直接给/test扩容。执行如下

lvextend -l +100%free /dev/test_vg/test_lv -r

lvs     ----查看lv扩容后容量

df -h   ----查看/test容量

此时/test已经拿到sdb的200G,变成320G,接下来还有sdc的

sdc跟之前一样,首先执行分区格式化

fdisk /dev/sdc

依次输入 n --新建分区   p --主分区  默认回车两次  t --改变分区ID

2 --此处为sdc2更改分区   8e --创建为lvm分区  w --保存并退出

partprobe /dev/sdc

为sdc2创建pv

pvcreate /dev/sdc2

扩容vg;查看vgs

vgextend test_vg /dev/sdc2

为test_lv扩容

lvextend -l +100%free /dev/test_vg/test_lv -r

可以看到/test此时变为了500G,等于sdb 200G + sdc 300G

总结:第五章演示了同时由两块磁盘提供一个lvm分区的容量:由不同的分区方式(物理盘直接创建pv与分区后创建pv),并且还为两块盘都修改了容量进行扩容,同时演示了两种不同创建pv方式后的扩容办法,最终实现lvm分区的扩容。

六  防火墙的日常操作探讨

6.1 查看firewall服务状态

两个命令,均可用

systemctl status firewalld

firewall-cmd --state

6.2 开启、重启、关闭、禁用防火墙服务

# 开启

systemctl start firewalld

# 重启

systemctl restart firewalld

# 关闭

systemctl stop firewalld

# 禁用

systemctl disable firewalld

6.3 查看防火墙规则

  • 查看所有防火墙规则:firewall-cmd --list-all
  • 查看指定区域的规则:firewall-cmd --list-all --zone=public

6.4 查询、开放、关闭端口

# 查询80端口是否开放

firewall-cmd --query-port=80/tcp

# 开放80端口

firewall-cmd --permanent --add-port=80/tcp

# 移除80端口

firewall-cmd --permanent --remove-port=80/tcp

#重启防火墙(修改配置后要重启防火墙)  (每次操作完不要忘记重新加载防火墙规则以使变更生效

firewall-cmd --reload

6.5 参数解释

1firwall-cmd:是Linux提供的操作firewall的一个工具;

2--permanent永久生效,没有此参数重启后失效(--permanent放在前面与后面都行)

3--add-port:标识添加的端口;

七 主机名修改的方法详解(主机名是不能一样的,这样会导致)

主机名在网络环境中应该是唯一的,因为它用于标识网络中的不同计算机。如果多台计算机使用相同的主机名,可能会导致网络通信和识别问题。在配置主机名时,确保每台计算机都有唯一的主机名是很重要的。

当多台计算机有相同的主机名时,可能会引发以下问题:

1. **网络通信问题**:其他计算机可能无法准确地识别和定位与相同主机名的计算机进行通信,导致通信故障。

2. **DNS解析问题**:如果您的网络中使用DNS来解析主机名和IP地址之间的关系,相同的主机名可能会导致DNS解析混乱,导致错误的IP地址分配。

3. **系统标识问题**:系统标识是通过主机名来识别计算机的一种方式,如果主机名相同,可能会导致系统标识混乱,影响系统管理和监控。

4. **安全问题**:安全性可能受到影响,因为一些安全性措施可能基于主机名来实施,如果有重复的主机名,可能导致安全性问题。

在CentOS7中,有三种定义的主机名:

  1. 静态的(Static hostname)

“静态”主机名也称为内核主机名,是系统在启动时从/etc/hostname自动初始化的主机名。

  1. 瞬态的(Tansient hostname)

“瞬态”主机名是在系统运行时临时分配的主机名,例如,通过DHCP或mDNS服务器分配。

  1. 灵活的(Pretty hostname)

“灵活”主机名也有人叫做“别名”主机名。

“灵活”主机名则允许使用自由形式(包括特殊/空白字符)的主机名,以展示给终端用户(如xh01@f5)。

“静态”主机名和“瞬态”主机名都遵从作为互联网域名同样的字符限制规则。

#如何查看主机名:

hostname          ---查看到的是瞬态的

cat /etc/hostname  ---查看主机名配置文件,查看到的是静态的

#查看当前Linux操作系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等):

uname -a ---查看到的是瞬态的

cat /etc/redhat-release ---查看操作系统环境

#四种办法来修改主机名:

方法1:临时有效

hostname 主机名 --只能临时修改的主机名,当重启机器后,主机名称又变回来了。

举例:   hostname testhost      ---不推荐

方法2:永久生效—重新登陆

hostnamectl set-hostname xxx    ---永久性修改主机名,重启不影响

hostnamectl set-hostname ""     ---删除hostname

    在修改静态/瞬态主机名时,任何特殊字符或空白字符会被移除,而提供的参数中的任何大写字母会自动转化为小写。

    一旦修改了静态主机名,/etc/hostname 将被自动更新。然而,/etc/hosts 不会更新以保存所做的修改,所以你每次在修改主机名后一定要手动更新/etc/hosts,之后再重启CentOS 7。否则系统再启动时会很慢。

#手动更新/etc/hosts

vim /etc/hosts

#127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

127.0.0.1  testhost     ----前面用#注释掉,然后添加解析(IPV4)

#::1       localhost localhost.localdomain localhost6 localhost6.localdomain6

::1        testhost     ----前面用#注释掉,然后添加解析(IPV6)

一个是针对 IPv4 地址 127.0.0.1,另一个是针对 IPv6 地址 ::1,都将主机名 testhost 解析到本地回环地址,这样可以确保在本机上通过这个主机名访问自己时,能够正确解析到本地。

#重启CentOS 7

reboot -f

重启之后

[root@testhost ~]# hostname

testhost

    其实,你不必重启机器以激活永久主机名修改。hostnamectl命令会立即修改内核主机名,注销并令行提示来重新登入后在命观察新的静态主机名

[root@testhost ~]# hostnamectl set-hostname woo

[root@testhost ~]# hostname

woo

[root@testhost ~]# logout

重新连接后:

[root@woo ~]#

时刻记得修改/etc/hosts文件里面的解析。

方法3:永久生效—重启主机

修改配置文件/etc/hostname来实现主机名的修改。把该文件内容hostname name中的name替换成自己想要的主机名重启即可。

vim /etc/hostname

hostname  testhost

方法4:永久生效—重启服务

#通过nmtui修改,之后重启hostnamed

nmcli general hostname testhost

(是用来通过 NetworkManager 命令行工具 nmcli 修改主机名的命令。这个命令会立即修改主机名,并且不需要重新启动机器。)

systemctl restart systemd-hostnamed

logout

重新连接即可看到修改的主机名,也要记得修改/etc/hosts解析

八  root密码忘记后的处理办法

CentOS6破解密码

进入单用户模式 

CentOS6进入单用户模式比较简单,重新启动后在启动界面任意按一个字符,进入选择启动项菜单->a->输入S,s,single,1中的任意一个即可进入单用户模式。

1、重启进入启动菜单

2、键盘输入a

输入S,s,single,1中的一个即可进入单用户模式,此处输入single。 

3、修改密码

passwd进行修改密码,就不用多说了 

CentOS7破解密码

CentOS7进入单用户模式,和CentOS5,6系列不同,有点复杂,同样进入启动菜单->e->找到linux16开头的行,删除rhgb和quiet,同时在后面添加init=/sysroot/bin/sh->重新以可读可写方式挂载/分区.

这里有两种方法,不过都差不多,第二种方法只写一下大致流程。

方法一:

1、进入菜单,输入e

找到linux16开头的行 

 

添加init=/sysroot/bin/sh,找到ro将其改为rw 

 ----------init=/sysroot/bin/sh

2、Ctrl+x启动

开始启动即可进入单用户模式

3、修改密码

由于/目录在/sysroot下面,所以最好将根目录切到这个目录下面 

使用下面行

chroot /sysroot #这个命令就是将/sysroot目录当成/目录

因为CentOS7受SELinux(内置安全机制)控制,所以要更新一下/.autorelabel文件,如下图:

SELinux 通过将每个对象(如文件、进程、用户等)都分配一个安全标签,
然后定义策略规则来控制对象之间的交互。这些策略规则规定了哪些
操作是允许的,哪些是不允许的。因此,即使用户具有操作系统层
面的权限,但只有在满足 SELinux 策略的情况下才能访问或执行操作。

touch /.autorelabel 命令用于创建一个名为 .autorelabel 的文件,
该文件用于在下次系统启动时触发 SELinux 的自动标签重建过程。
在重建标签过程中,SELinux 会重新检查系统上所有的文件和目录,
然后根据 SELinux 策略为它们分配正确的标签。

这个过程通常在需要修改 SELinux 配置或者在系统出现 SELinux 
相关问题时使用。当你修改了 SELinux 的策略或配置,或者在一些
情况下需要恢复被修改的文件的 SELinux 标签时,可以创建 .autorelabel 
文件并重启系统,使 SELinux 对文件进行重新标记。

重要提示:运行 .autorelabel 过程可能需要一段时间,具体时间取决于
文件系统大小和数量。在这个过程中,系统可能会变得不稳定,一些服务
可能会受到影响。因此,在运行 .autorelabel 之前,确保你已经备份了
重要的数据,并且在适当的情况下进行操作。

发现已经修改成功了 

方法二:

(1)启动时任意键暂停启动 

(2)按e键进入编辑模式 

(3)将光标移动linux16开始的行,添加内核参数rd.break 

(4)按ctrl-x启动 

(5)mount  / -o remount,rw (方法一因为修改了ro为rw,就不需要重新挂载了) 

(6)chroot /sysroot 

#chroot /sysroot /bin/bash

(7)passwd root 

(8)touch /.autorelabel 

如果开启了SELinux需要在‘/‘分区上创建.autorelabel文件

#touch /.autorelabel    用来使selinux的所有的关联标签发生改变,以接受新的ROOT密码

(9)exit 

(10)reboot

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值