使用 root 权限运行 mysqld

使用 root 权限运行 mysqld

我们知道,不建议使用 root 权限运行 mysql,因为这会导致使用 UDF 提升权限。我正在尝试设置一台机器来演示这一点,我想以 root 用户身份运行 mysqld。

MySQL UDF 漏洞利用了解更多信息。

我正在运行 ubuntu 21.04 和 mysql-server

mysql 版本:

mysql  Ver 8.0.25-0ubuntu0.21.04.1 for Linux on x86_64 ((Ubuntu))

将文件所有权更改为 root

chown -R root /var/lib/mysql

/etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]
user        = root
pid-file    = /var/run/mysqld/mysqld.pid
socket  = /var/run/mysqld/mysqld.sock
port        = 3306
datadir = /var/lib/mysql

我收到错误

mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Tue 2021-05-25 08:29:56 PDT; 23s ago
    Process: 2413 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
    Process: 2421 ExecStart=/usr/sbin/mysqld (code=exited, status=1/FAILURE)
   Main PID: 2421 (code=exited, status=1/FAILURE)
     Status: "Server startup in progress"
      Error: 13 (Permission denied)

但是,如果我更改文件权限/var/lib/mysql回到mysql用户服务启动。请告诉我如何以 root 身份运行它的解决方案。如果我做错了什么,请提出明确的步骤。

参考:

答案1

服务默认以服务文件中指定的用户mysqld身份运行mysql。没有理由以 root 身份运行它,因为这样做不会提供以用户身份运行时不存在的任何内容mysql。PostgreSQL 和 MongoDB 也以各自的用户身份运行,而不是以 root 身份运行。

没有理由去修复没有损坏的东西。

相关内容