Linux 运维中怎么为数据库数据目录(如 /var/lib/mysql)配置严苛的属主隔离

秋墨酱_3550

秋墨酱_3550

2026-09-20

892人浏览

原创

核心是创建专用系统用户并禁用交互、严格绑定目录属主与750权限、通过systemd限制运行身份与能力、配合selinux上下文及安全挂载选项,实现mysql进程最小权限隔离。

linux 运维中怎么为数据库数据目录(如 /var/lib/mysql)配置严苛的属主隔离

为数据库数据目录(如 /var/lib/mysql)配置严苛的属主隔离,核心是让 MySQL 进程只能以最小权限身份访问自身数据,同时彻底切断其他用户、组或进程的越权路径。这不是仅改个 chown 就完事,而是一套从用户创建、目录归属、权限收紧到运行时约束的闭环控制。

一、创建专用系统用户并禁用所有交互入口

不复用 root 或普通用户,也不用带 shell 的账户:

  • 执行 sudo useradd -r -s /sbin/nologin -M -U mysql:-r 确保 UID 落在系统范围(1–999),-s /sbin/nologin 彻底关闭登录能力,-M 避免生成家目录,-U 自动建同名主组
  • 检查 /etc/passwdmysql 行的 shell 字段必须是 /sbin/nologin,不是空值或 /bin/bash
  • 确认 /etc/shadow 中 mysql 密码字段为 *!,无有效哈希
  • 确保该用户未加入 wheelsudodocker 等任何高权限组

二、精确绑定数据目录归属与权限基线

所有权必须严格对齐,且禁止“过度放行”:

onewo-rtlinux
onewo-rtlinux

Linux 实时编程助手。生成、审查并修改用于周期性控制任务和中断驱动程序的 C 代码。强制实施实时调度策略。

下载
  • 递归设置属主属组:sudo chown -R mysql:mysql /var/lib/mysql
  • 设目录权限为 750sudo chmod 750 /var/lib/mysql(属主全权、属组可读+进入、其他人无任何权限)
  • 上级路径(如 /var/lib)也需收紧:sudo chmod 750 /var/lib,防止通过遍历进入
  • 禁用 setuid/setgid 位:sudo find /var/lib/mysql -type f -perm /6000 -exec chmod a-s {} \;

三、配合 systemd 强制运行身份与能力限制

即使用户和目录都对了,进程仍可能获得过高能力,必须在服务层再锁一道:

  • 编辑 MySQL 的 systemd 单元文件(如 /usr/lib/systemd/system/mysqld.service 或覆盖片段),确保含以下关键项:
  • User=mysqlGroup=mysql
  • NoNewPrivileges=yes(禁止 fork 后提权)
  • CapabilityBoundingSet=~CAP_SYS_ADMIN CAP_NET_RAW CAP_IPC_LOCK CAP_SYS_MODULE(显式剔除危险能力)
  • 如需监听低端端口,只加必要项:CapabilityBoundingSet=CAP_NET_BIND_SERVICE

四、补充加固:SELinux 上下文与挂载选项

在启用 SELinux 的系统上,仅改属主不够,上下文不匹配照样被拒:

  • 为数据目录打正确标签:sudo semanage fcontext -a -t mysqld_db_t "/var/lib/mysql(/.*)?"
  • 应用变更:sudo restorecon -Rv /var/lib/mysql
  • 若使用独立磁盘分区,挂载时添加 noexec,nosuid,nodev 选项,从文件系统层阻断恶意执行

整套操作完成后,MySQL 进程将以无登录能力、无密码、无 sudo、无危险 capability、仅能访问自己目录的身份运行——既满足功能需求,又守住最小权限边界。不复杂但容易忽略。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

397

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

820

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2312

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

796

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

669

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

354

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2076

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

3792

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

627

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

CLion 远程开发实战
CLion 远程开发实战

共0课时 | 0人学习