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

补充日志之-配置文件解析指南(Centos7)

1.CentOS 7 配置文件解析指南

基本介绍

CentOS 7 作为 Red Hat Enterprise Linux (RHEL) 7 的社区版本,其配置文件体系既继承了 Red Hat 系列的严谨架构,又因引入 systemd 初始化系统、NetworkManager 网络管理工具等新组件,在配置文件结构上与 CentOS 6 等早期版本存在显著差异。本文将从系统核心、服务管理、网络配置、软件包管理、用户权限、安全策略及日志系统七个维度,系统介绍 CentOS 7 的关键配置文件。

配置文件基础规律

在 Linux/Unix 系统中,配置文件的存储位置和命名格式(尤其是后缀)通常遵循一定规律,主要由功能定位和历史习惯决定。以下按系统层级和应用类型分类说明:

一、系统级核心配置文件(无固定后缀)

系统级核心配置文件多为无后缀纯文本文件,存放于 /etc/ 及其子目录,用于控制操作系统核心功能(如用户管理、权限控制、网络基础等)。

典型位置/etc/ 及子目录(如 /etc/sysconfig//etc/network/ 等)
示例

  • /etc/passwd:用户账户信息
  • /etc/group:用户组信息
  • /etc/sudoers:sudo 权限配置(特殊文件)
  • /etc/fstab:文件系统挂载配置
  • /etc/hosts:本地域名解析表

二、服务 / 程序配置文件(多以 .conf 结尾)

大多数应用程序和服务的配置文件以 .conf 为后缀(“conf” 即 “configuration” 的缩写),便于识别和管理。

典型位置

  • 系统级服务:/etc//etc/[服务名]/(如 /etc/nginx//etc/mysql/
  • 用户级配置:~/.config/[程序名]/(当前用户专属配置,如 ~/.config/git/

示例

  • /etc/nginx/nginx.conf:Nginx 服务主配置
  • /etc/mysql/mysql.conf.d/mysqld.cnf:MySQL 配置(.cnf.conf 变体)
  • /etc/ssh/sshd_config:SSH 服务配置
  • ~/.gitconfig:当前用户的 Git 配置

三、特定功能配置文件(专用后缀)

部分工具或服务采用专用后缀,通常与其功能特性相关:

  • .ini:初始化配置文件,采用 [section]+key=value 结构(常见于跨平台程序)
    示例:/etc/php/7.4/cli/php.ini(PHP 配置)、~/.config/transmission/settings.ini
  • .yaml/.yml:基于缩进的结构化配置,多用于现代工具(如容器、编排工具)
    示例:docker-compose.yml(Docker 编排)、/etc/prometheus/prometheus.yml
  • .json:JSON 格式配置,常用于 Web 服务、API 相关工具
    示例:/etc/docker/daemon.json(Docker 守护进程配置)
  • .rc:“run commands” 缩写,为程序启动时自动执行的脚本 / 配置
    示例:~/.bashrc(bash shell 配置)、~/.vimrc(Vim 编辑器配置)
  • .list:列表类配置,多为路径或名称集合(如软件源)
    示例:/etc/apt/sources.list(Debian/Ubuntu 软件源)

四、用户级配置文件(隐藏文件为主)

用户专属配置文件通常存放在家目录(~,且多为隐藏文件(以 . 开头),避免与普通文件混淆:

  • 无后缀但以 . 开头:~/.bash_profile(bash 登录配置)、~/.ssh/config(SSH 客户端配置)
  • 带专用后缀:~/.vimrc(Vim 配置)、~/.ssh/authorized_keys(SSH 免密登录公钥列表)

配置规律汇总表

配置类型典型位置常见后缀 / 命名规则示例
系统核心配置/etc/无后缀/etc/passwd/etc/fstab
服务 / 程序配置/etc/[服务名]/~/.config/.conf.cnf/etc/nginx/nginx.conf
初始化配置系统级或用户级目录.iniphp.ini
结构化配置现代工具目录.yaml.yml.jsondocker-compose.yml
启动脚本配置家目录、/etc/profile.d/.rc、带 . 前缀无后缀~/.bashrc~/.zshrc
列表 / 源配置/etc/apt//etc/yum.repos.d/.list.reposources.listCentOS-Base.repo

通过位置和后缀可快速判断配置文件用途(例如 .conf 多为程序配置,.yml 多为编排工具配置)。对不熟悉的文件,可通过 man [程序名] 查看其配置文件说明。

核心配置文件详解

一、系统核心配置文件(/etc/ 目录下)

这些文件控制操作系统基础属性(如主机名、系统标识、文件系统挂载等),是系统启动和运行的核心。

1. 系统版本与标识
  • /etc/os-release
    作用:存储系统版本、ID、名称等标准化信息(兼容 LSB 规范),供脚本和程序调用。
    内容示例:

    NAME="CentOS Linux"
    VERSION="7 (Core)"
    ID="centos"
    ID_LIKE="rhel fedora"
    VERSION_ID="7"
    

    特点:替代 CentOS 6 中的 /etc/redhat-release(CentOS 7 保留其作为兼容软链接)。

  • /etc/machine-id
    作用:系统唯一标识符(UUID),由 systemd 生成,用于集群、容器等场景下区分主机。
    注意:手动修改可能导致 journaldNetworkManager 等依赖服务异常。

2. 主机名与网络标识
  • /etc/hostname
    作用:存储静态主机名,系统启动时由 systemd-hostnamed 服务读取。
    修改方法:
    • 临时生效:hostname 新主机名
    • 永久生效:编辑文件或执行 hostnamectl set-hostname 新主机名(推荐,自动更新文件)。
  • /etc/hosts
    作用:本地域名解析表(优先级高于 DNS),用于映射 IP 与主机名。
    格式:IP地址 主机名 别名
    示例:192.168.1.100 controller node1(将 IP 映射到 controller 和 node1)。
3. 文件系统与挂载
  • /etc/fstab
    作用:定义系统启动时自动挂载的文件系统(磁盘、分区、网络存储等)。
    格式(每行 6 个字段):
    设备路径 挂载点 文件系统类型 挂载选项 备份标识 自检顺序
    示例(挂载 /dev/sdb1/data):
    /dev/sdb1 /data ext4 defaults 0 0
    注意:修改后需执行 mount -a 验证,避免语法错误导致系统无法启动。
  • /etc/mtab
    作用:动态记录当前已挂载的文件系统信息(由 mount 命令自动更新),是 /proc/mounts 的软链接。
    用途:查看当前挂载状态(替代 mount 命令直接读取)。

二、systemd 相关配置文件(核心)

CentOS 7 采用 systemd 替代传统 SysVinit 作为初始化系统,所有服务、进程、开机启动项均由 systemd 管理,配置文件集中在 /etc/systemd//usr/lib/systemd/

1. systemd 主配置
  • /etc/systemd/system.conf
    作用:systemd 系统级全局配置(如默认超时时间、日志级别)。
    常用参数:
    • DefaultTimeoutStartSec=90s:服务启动超时时间
    • LogLevel=info:日志级别(debug/info/warn/err)
  • /etc/systemd/user.conf
    作用:用户级 systemd 配置(针对用户会话管理,较少使用)。
2. 服务单元文件(.service

systemd 用 “单元文件” 定义服务、设备、挂载等资源,其中最常用的是 .service 服务单元

存放路径

  • 系统默认服务:/usr/lib/systemd/system/(如 sshd.servicefirewalld.service
  • 用户自定义服务:/etc/systemd/system/(优先级更高,覆盖系统默认)

结构示例(以 sshd.service 为例):

[Unit]                  # 单元描述、依赖关系
Description=OpenSSH server daemon
After=network.target sshd-keygen.service[Service]               # 服务启动参数
Type=notify
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID[Install]               # 开机启动配置
WantedBy=multi-user.target

管理命令:修改单元文件后需执行 systemctl daemon-reload 生效,再用 systemctl enable/restart 服务名 操作。

3. 目标单元文件(.target

类似传统 “运行级别”,用于定义系统状态(如多用户模式、图形界面)。

关键目标

  • multi-user.target:多用户命令行模式(对应传统 runlevel 3)
  • graphical.target:图形界面模式(对应传统 runlevel 5)

配置文件/usr/lib/systemd/system/multi-user.target 等。
管理命令systemctl get-default 查看当前默认目标,systemctl set-default 目标名 修改。

三、网络配置文件

CentOS 7 主要依赖 NetworkManager 管理网络,同时保留传统的 /etc/sysconfig/network-scripts/ 配置文件兼容。

1. 网卡配置(核心)
  • /etc/sysconfig/network-scripts/ifcfg-<网卡名>
    作用:定义网卡(如 eth0ens33)的 IP、子网掩码、网关等参数。
    常用配置项:

    TYPE=Ethernet               # 网络类型(以太网)
    BOOTPROTO=static            # 启动协议(static/dhcp/none)
    NAME=ens33                  # 网卡名称(与文件名一致)
    DEVICE=ens33                # 设备名
    ONBOOT=yes                  # 开机启动
    IPADDR=192.168.1.100        # IP地址
    PREFIX=24                   # 子网掩码(等价于NETMASK=255.255.255.0)
    GATEWAY=192.168.1.1         # 网关
    DNS1=114.114.114.114        # DNS服务器
    

    生效方法:修改后重启网络服务 systemctl restart networknmcli connection reload

  • /etc/NetworkManager/NetworkManager.conf
    作用:NetworkManager 服务的主配置(如是否管理所有网卡、日志级别)。
    示例:禁用对 eth0 的管理(在 [keyfile] 下添加 unmanaged-devices=interface-name:eth0)。

2. DNS 配置
  • /etc/resolv.conf
    作用:存储 DNS 服务器地址,供系统解析域名。
    注意:CentOS 7 中默认由 NetworkManager 自动生成和管理此文件,手动修改可能被覆盖。若需固定 DNS,建议在网卡配置文件(ifcfg-*)中通过 DNS1DNS2 定义。

四、软件包管理配置(yum

CentOS 7 用 yum(基于 RPM)管理软件包,配置文件控制仓库地址、缓存、安装策略等。

1. 主配置文件
  • /etc/yum.conf

    作用:yum全局配置(如缓存目录、安装跳过依赖检查等)。

    关键参数:

    [main]
    cachedir=/var/cache/yum/$basearch/$releasever  # 缓存目录
    keepcache=0                                   # 安装后是否保留缓存(0=不保留)
    debuglevel=2                                   # 调试级别
    logfile=/var/log/yum.log                       # 日志文件
    exclude=kernel*                                # 排除安装的包(如内核)
    
2. 仓库配置文件(.repo

存放路径/etc/yum.repos.d/(所有 .repo 文件均会被 yum 加载)。

格式示例(以 CentOS-Base.repo 为例):

[base]                          # 仓库ID(唯一)
name=CentOS-$releasever - Base   # 仓库名称
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/  # 仓库地址
gpgcheck=1                      # 是否校验GPG签名(1=开启)
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7  # GPG公钥路径
enabled=1                       # 是否启用仓库(1=启用)

常用操作:添加第三方仓库(如 EPEL)时,只需在 /etc/yum.repos.d/ 中放置对应的 .repo 文件。

五、用户与权限配置

控制用户账户、密码、组及 sudo 权限的核心文件。

1. 用户与组配置
  • /etc/passwd:存储所有用户基本信息(用户名、UID、GID、家目录、默认 shell 等),格式:
    用户名:x:UID:GID:描述:家目录:shell
    示例:root:x:0:0:root:/root:/bin/bash
  • /etc/shadow:存储用户密码哈希(仅 root 可读取),格式: (在centos-7下没有这个文件)
    用户名:加密密码:最后修改时间:最小密码期限:最大密码期限:警告期限:过期宽限:过期时间:保留
  • /etc/sudoers:定义哪些用户或用户组可以执行 sudo 命令(即临时获取 root 权限)。
  • **/etc/sudoers.d**:存放自定义的 sudo 权限规则文件,用于扩展 sudo 配置。
  • /etc/group:存储用户组信息(组名、GID、成员),格式:
    组名:x:GID:成员列表
    示例:wheel:x:10:root,bq
2. sudo 权限配置
  • /etc/sudoers
    作用:定义哪些用户 / 组可以执行 sudo 命令(即临时获取 root 权限)。
    编辑方法:必须用 visudo 命令(自动校验语法,避免错误导致无法使用 sudo)。
    示例:允许 bq 用户免密执行所有命令:
    bq ALL=(ALL) NOPASSWD:ALL
    注意:推荐通过 /etc/sudoers.d/ 目录添加自定义规则(如创建 sudoers.d/bq 文件),而非直接修改主文件。

六、安全相关配置

1. 防火墙(firewalld

CentOS 7 默认用 firewalld 替代 iptables 作为防火墙,配置文件如下:

  • /etc/firewalld/firewalld.conf:主配置(如默认区域、日志级别)。
  • /etc/firewalld/zones/:区域配置(如 public.xml),定义区域内允许的服务 / 端口。
  • /etc/firewalld/services/:服务定义(如 ssh.xml),映射服务到端口(如 SSH=22)。

管理方法:通过 firewall-cmd 命令修改(临时生效),加 --permanent 选项保存到配置文件(永久生效)。

2. 资源限制
  • /etc/security/limits.conf

    作用:限制用户 / 进程的系统资源(如最大文件数、进程数、内存使用)。

    格式:用户名/组名 限制类型 限制项 限制值

    示例:允许bq用户打开最多 65535 个文件:

    bq soft nofile 65535
    bq hard nofile 65535
    

七、日志配置

CentOS 7 用 systemd-journald 实时收集日志,同时保留 rsyslog 进行日志持久化和转发。

1. journald 配置
  • /etc/systemd/journald.conf

    作用:控制journald 的日志存储(内存 / 磁盘)、轮转、权限等。

    关键参数:

    • Storage=persistent:日志持久化到 /var/log/journal/(默认临时存储在内存)
    • MaxRetentionSec=7day:日志最大保留时间
2. rsyslog 配置
  • /etc/rsyslog.conf/etc/rsyslog.d/:定义日志收集规则(如将特定服务日志写入指定文件)。
    示例:将 sshd 服务日志写入 /var/log/sshd.log
    authpriv.* /var/log/sshd.log

总结

CentOS 7 配置文件的核心特点:

  1. systemd 主导:服务、启动项、日志等均围绕 systemd 配置,需重点掌握 .service 单元文件。
  2. 网络双重管理NetworkManager 与传统 ifcfg-* 文件并存,推荐用 nmcli 或图形工具修改网络配置。
  3. 分层配置:重要配置(如 sudoersyum 仓库)支持通过子目录(/etc/sudoers.d//etc/yum.repos.d/)扩展,避免直接修改主文件。

如涉及版权问题请联系作者处理!!!!!!!

http://www.xdnf.cn/news/1303615.html

相关文章:

  • 德州扑克游戏术语
  • 银河麒麟服务器jar包部署自启动配置
  • 第十八讲:哈希2
  • 神经网络 小土堆pytorch记录
  • 开疆智能Ethernet转ModbusTCP网关连接测联无纸记录仪配置案例
  • 《探秘浏览器Web Bluetooth API设备发现流程》
  • 解决 MySQL 查询速度缓慢的问题
  • 前端更改浏览器默认滚动条样式
  • 13_集合框架
  • Linux815 shell:while
  • 口播数字人免费API调用方案
  • Elasticsearch赋能规章制度智能检索:从海量文档到秒级响应
  • linux-----------------锁
  • mysql启动超时
  • 本地生活|MallBook 分账赋能浙江本地生活服务平台,助力实现资金流转效率与合规性的双提升!
  • 高通vendor app访问文件
  • LeetCode hot 100 day2
  • AAAI爆款:目标检测新范式,模块化设计封神之作
  • 办公效率提升指南:完成重复任务自动化
  • 【自动化测试】通过AI技术如何自动建设接口自动化用例(有关必回)
  • GPT-5 官方前瞻:它将如何重塑你的数字生活?
  • 5G赋能井下“毛细血管”:巴拉素煤矿零散排水点智能监控系统
  • [激光原理与应用-283]:理论 - 波动光学 - 电磁波概述
  • 架构需求规格说明(ARD):项目成功的隐形引擎
  • 【nginx端口】修改nginx全局模块、子模块配置,重启后依然监听80端口
  • YOLOv8目标检测网络结构理论
  • 笔试——Day39
  • DevEco Studio 6.0.0 元服务页面跳转失败
  • Spring事物
  • 智能座舱软件架构设计的宏观决策框架