# 文件管理 ## ACL访问控制 # 网络管理 ## nmcli命令管理网络配置 ### 1.管理网络连接与状态 ```sh # 显示所有连接​(包括名称、UUID、类型、设备) nmcli connection show #​仅显示活动连接​ nmcli connection show --active # 查看所有网络设备及其状态​(如连接状态、类型): nmcli device status # 查看指定设备的详细信息​(如 IP、MAC 地址 nmcli device show eth0 # 删除网卡 nmcli conn delete eth0 # 添加物理网卡 nmcli connection add type ethernet ifname ens38 con-name my-ens38 # 添加网桥从接口网卡 nmcli conn add type bridge-slave ifname enp1s0 con-name enp1s0 master bridge0 # ​激活(启用)指定连接 nmcli connection up "Wired connection 1" # 停用指定连接 nmcli connection down "Wired connection 1" # 启用所有网络管理 nmcli networking on # 禁用所有网络管理 nmcli networking off # 禁用再启用设备​(相当于重启某个网卡 nmcli device disconnect eth0 && nmcli device connect eth0 # 重新加载连接配置​(修改配置文件后 nmcli connection reload # 检查网络连通性 nmcli networking connectivity # 监控网络状态变化 nmcli monitor # 重载配置 nmcli conn reload # 修改设备名称 sudo nmcli connection modify "旧连接名" connection.id "新连接名" ``` ### 2.wifi管理 ```sh # 列出所有可用的 Wi-Fi 网络​ nmcli device wifi list # 连接到有密码保护的 Wi-Fi 网络 nmcli device wifi connect "SSID名称" password "你的密码" # 连接到隐藏的 Wi-Fi 网络​ nmcli device wifi connect "SSID名称" password "你的密码" hidden yes # 断开当前 Wi-Fi 连接​ nmcli device disconnect wlan0 # wlan0 为你的无线设备名 # 打开 Wi-Fi​ nmcli radio wifi on # 关闭 Wi-Fi​ nmcli radio wifi off # 扫描wifi nmcli device wifi rescan ``` ### 3.有线网络管理 ```sh # 配置静态 IP 地址 nmcli connection modify "eth0" ipv4.method manual \ ipv4.addresses 192.168.1.100/24 \ ipv4.gateway 192.168.1.1 \ ipv4.dns 8.8.8.8 # 激活配置使其生效 nmcli connection up "eth0" # 配置动态 IP(DHCP) # 将 IPv4 方法设置为自动以通过 DHCP 获取 IP nmcli connection modify "eth0" ipv4.method auto nmcli connection up "eth0" # 添加多个 IP 地址 # 为连接 eth0 添加一个辅助 IP 地址 nmcli connection modify "eth0" +ipv4.addresses "192.168.1.101/24" nmcli connection up "eth0" ``` # 磁盘管理 ### LVM虚拟磁盘 #### LVM功能介绍 ​**LVM**​(Logical Volume Manager,逻辑卷管理)是Linux系统中一种强大的**磁盘管理机制**,它在物理磁盘和文件系统之间增加了一个抽象层,使管理员能够**灵活地管理存储空间**。LVM通过将物理存储资源虚拟化,允许动态调整磁盘容量而无需重新分区或中断系统运行,极大提高了存储管理的便捷性和效率。 LVM的核心组件包括**物理卷(PV)​**、**卷组(VG)​**和**逻辑卷(LV)​**。物理卷是LVM的基本存储单元,可以是整个物理磁盘或磁盘分区,卷组由一个或多个物理卷组成,形成一个存储池,用于统一管理物理存储资源 逻辑卷是从卷组中划分出的虚拟磁盘分区,可以在其上创建文件系统并挂载使用,LVM的最小存储单元是**物理扩展块(PE)​**,默认大小为4MB,物理卷被划分为多个PE,逻辑卷则由多个逻辑扩展块(LE)组成,LE与PE一一对应。 LVM的**工作原理**是通过抽象层屏蔽下层物理磁盘的布局,提供统一的存储视图。管理员可以动态调整逻辑卷的大小,添加或移除物理卷,而无需关心数据的物理存储位置,这种机制使得存储管理更加灵活,特别适用于需要频繁调整存储空间的场景。 _表:LVM核心组件及其功能 |​**组件**​|​**全称**​|​**功能描述**​| |---|---|---| |​**PV (Physical Volume)​**​|物理卷|LVM的基本存储单元,可以是物理磁盘或分区,被划分为多个PE| |​**VG (Volume Group)​**​|卷组|由一个或多个PV组成的存储池,用于集中管理物理存储资源| |​**LV (Logical Volume)​**​|逻辑卷|从VG中划分出的虚拟磁盘分区,可格式化为文件系统并挂载使用| |​**PE (Physical Extent)​**​|物理扩展块|PV中可分配的最小存储单元,默认大小为4MB| |​**LE (Logical Extent)​**​|逻辑扩展块|LV中可分配的最小存储单元,与PE大小相同且一一对应| ##### LVM分区与传统分区对比 |特性|传统分区|LVM (逻辑卷管理)| |---|---|---| |​**灵活性**​|分区大小固定,调整困难且风险高|​**可动态调整**逻辑卷大小,无需重启| |​**存储池**​|每个分区独立,无法合并使用|将**多个物理磁盘/分区**整合为单一存储池(卷组)| |​**扩展性**​|新增硬盘需手动迁移数据|可轻松将新硬盘加入现有存储池,​**无缝扩展**容量| |​**高级功能**​|不支持|支持**快照**​(用于备份)、**条带化、镜像**等| |​**管理复杂度**​|简单直观|需要学习额外概念和命令| |​**性能**​|无额外开销|有**轻微性能开销**​| |​**数据恢复**​|相对简单|略复杂,需专用工具| ​**✅ 推荐使用 LVM 的场景:​**​ - ​**服务器环境**​:需要灵活调整分区大小,避免因某个分区空间耗尽而停机维护 - ​**多磁盘系统**​:希望轻松整合多个物理磁盘的容量,并能够从存储池中按需分配空间 - ​**需要高级功能**​:如使用快照功能进行在线备份 - ​**不确定未来存储需求时**​:LVM 提供了未来调整的余地,无需在初始分区时就精确设定不可更改的大小 ​**❌ 可能无需 LVM 的场景:​**​ - ​**简单的桌面系统**​:磁盘分区结构固定,没有调整需求 - ​**嵌入式设备或小型系统**​:对存储需求非常固定,且资源有限 - ​**对 I/O 性能极其敏感的应用**​:希望避免 LVM 可能带来的轻微性能开销 #### 物理卷PV操作 ```sh # pvcreate将物理设备初始化为物理卷 pvcreate /dev/sdb1 #将分区/dev/sdb1初始化为物理卷 # pvdisplay显示物理卷的详细信息 pvdisplay /dev/sdb1 #显示指定物理卷的详细信息 # pvscan扫描系统中所有的物理卷 pvscan #列出系统中所有物理卷 # pvs以简洁格式显示物理卷信息 pvs #提供物理卷的概要信息 # pvremove移除物理卷上的LVM元数据 pvremove /dev/sdb1 #移除/dev/sdb1上的LVM标识,使其不再为物理卷 # pvmove在卷组中移动物理卷上的数据 pvmove /dev/sdb1 #将数据从/dev/sdb1移动到卷组中的其他物理卷 # pvchange更改物理卷的属性 pvchange -x n /dev/sdb1 #禁止从物理卷/dev/sdb1分配PE ``` #### 卷组VG操作 ```sh #vgcreate创建卷组 vgcreate my_vg /dev/sdb1 /dev/sdb2 #使用两个物理卷创建名为 my_vg的卷组 # vgdisplay显示卷组的详细信息 vgdisplay my_vg #显示指定卷组的详细信息 # vgscan扫描系统中所有的卷组 vgscan #检测并列出系统中所有卷组 # vgs以简洁格式显示卷组信息 vgs #提供卷组的概要信息 # vgextend扩展卷组容量(添加物理卷) vgextend my_vg /dev/sdc1 #将物理卷/dev/sdc1添加到卷组my_vg中 # vgreduce缩减卷组容量(移除物理卷) vgreduce my_vg /dev/sdb1 #从卷组my_vg中移除物理卷/dev/sdb1 # vgremove删除卷组 vgremove my_vg #删除名为 my_vg的卷组 # vgchange更改卷组属性(如激活/停用) vgchange -a n my_vg #停用卷组 my_vg # vgexport导出卷组 vgexport my_vg #将卷组 my_vg从系统中导出(常用于系统间移动卷组) # vgimport导入卷组 vgimport my_vg #将卷组 my_vg导入系统 ``` #### 逻辑卷LV操作 ```sh # lvcreate创建逻辑卷,大写L指定容量,小写l使用百分比 lvcreate -L 10G -n my_lv my_vg #在卷组 my_vg中创建大小为10G、名为 my_lv的逻辑卷 lvcreate -l 100%FREE -n lv_name vg_name #将卷组所有空间划分给逻辑卷 # lvdisplay显示逻辑卷的详细信息 lvdisplay /dev/my_vg/my_lv #显示指定逻辑卷的详细信息 # lvscan扫描系统中所有的逻辑卷 lvscan # 检测并列出系统中所有逻辑卷 # lvs以简洁格式显示逻辑卷信息 lvs #提供逻辑卷的概要信息 # lvextend扩展逻辑卷容量 lvextend -L +5G /dev/my_vg/my_lv #将逻辑卷 my_lv扩展5G # lvreduce缩减逻辑卷容量 (需谨慎操作) lvreduce -L -2G /dev/my_vg/my_lv #将逻辑卷 my_lv缩减2G (务必先备份数据并卸载文件系统) # lvremove删除逻辑卷 lvremove /dev/my_vg/my_lv #删除逻辑卷 my_lv # lvresize调整逻辑卷大小(扩展或缩减) lvresize -L 15G /dev/my_vg/my_lv #将逻辑卷 my_lv大小调整为15G # lvrename重命名逻辑卷 lvrename my_vg old_lv_name new_lv_name #将逻辑卷重命名 ``` #### 创建新卷组和逻辑卷 ```sh # 1.使用lsblk命令查看磁盘设备树 # 2.将新磁盘初始化为lvm sudo pvcreate /dev/sdb1 # 3.将一个或多个物理卷加入卷组 sudo vgcreate vg_name /dev/sdb1 /dev/sdc1 # 4.创建一个逻辑卷 sudo lvcreate -L 20G -n lv_name vg_name # 5.格式化新创建的逻辑卷为ext4 sudo mkfs.ext4 /dev/vg_name/lv_name # 挂载格式化后的逻辑卷 sudo mkdir /mnt/data && mount /dev/vg_name/lv_name /mnt/data ``` #### 逻辑卷扩容 ```sh # 1.使用lsblk命令查看磁盘设备树 # 2.将新磁盘初始化为lvm sudo pvcreate /dev/sdb1 # 3.将新的物理卷加入卷组 sudo vgextend vg_name /dev/sdb1 # 4.扩展已有的lv逻辑卷 sudo lvextend -L +10G /dev/my_vg/my_lv # 扩展逻辑卷后需要更新文件系统,新创建的不需要,否则df命令看不到空间扩容 # 针对ext4格式 resize2fs /dev/vg_data/lv_data # 针对xfs格式 xfs_growfs /dev/vg_data/lv_data # xfs系统不支持缩容,ext4缩容风险较高,注意备份 ``` #### 移除LVM磁盘步骤 ```sh # 1.确认物理磁盘使用情况 pvs -o+pv_used # 2.检查其他卷组是否有空间进行数据迁移 vgs # 均匀迁移sdb1的数据到其他卷组 sudo pvmove /dev/sdb1 # 迁移sdb1的数据到指定卷组 sudo pvmove /dev/sdc1 # 使用pvs -o+used确认卷组清空,然后移除卷组 sudo vgreduce vg_name /dev/sdb1 # 移除物理卷元数据 sudo pvremove /dev/sdb1 ``` ## 挂载外置存储 ```sh # 挂载nfs存储 showmount -e 服务器地址 # 显示目标服务器的可挂载路径 sudo mkdir /mnt/nfs #创建挂载目录 sudo mount -t nfs 服务器地址:/path/name /mnt/nfs # 挂载本地iso文件 sudo mkdir /mnt/iso mount -o loop /path/file.iso /mnt/iso ``` # 安全管理 # 系统管理 # 用户管理 # 软件源管理 ## 添加软件源 ```sh # 查看所有软件源 dnf repolist all # 安装epel源 rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-10.noarch.rpm # 启用epel源 subscription-manager repos --enable epel ```