如何为 MySQL 禁用 AppArmor

Hoo*_*ini 7 mysql apparmor

我已按照此处的说明设置 Galera 集群。该说明说我需要禁用 appArmor:

禁用 AppArmor


默认情况下,某些服务器(例如 Ubuntu)包含 AppArmor,这可能会阻止 mysqld 打开其他端口或运行脚本。您必须禁用 AppArmor 或将其配置为允许 mysqld...

所以我按照说明执行了以下命令:

sudo ln -s /etc/apparmor.d/usr /etc/apparmor.d/disable/.sbin.mysqld
sudo service apparmor restart
Run Code Online (Sandbox Code Playgroud)

我已经完成了集群配置。但我不确定我是否正确禁用了 AppArmor,因为当我运行时:

sudo aa-status
Run Code Online (Sandbox Code Playgroud)

我得到:

... some more output here
2 processes have profiles defined.
1 processes are in enforce mode.
   /usr/sbin/mysqld (1938)
1 processes are in complain mode.
snap.amazon-ssm-agent.amazon-ssm-agent (1295)
0 processes are unconfined but have a profile defined.
Run Code Online (Sandbox Code Playgroud)

我看到 mysqld 处于强制模式...这是什么意思?这是否意味着针对 MySQL 禁用了 AppArmor?是否可以同时禁用 AppArmor?

小智 16

如果您在 20.04 中在钥匙串中存储密码时遇到错误,那就是 AppArmor 保护快照应用程序。

您可以通过在查看 MySQL Workbench 应用程序时单击 Ubuntu 软件中的“权限”来解决此问题。开启读/写密码权限。


Geo*_*sen 13

AppArmor 限制是通过加载到内核中的配置文件提供的,通常是在启动时。AppArmor 配置文件可以采用以下两种模式之一:强制执行和投诉。以强制模式加载的配置文件将导致配置文件中定义的策略的强制执行以及报告策略违规尝试(通过 syslog 或 auditd)。投诉模式下的配置文件不会强制执行策略,而是报告策略违规尝试。

  • “这是什么意思?”; 这意味着将强制执行对 mysql 的 AppArmor 配置文件的限制。

  • "可以禁用吗"; 是的,它可以,如何:

    sudo ln -s /etc/apparmor.d/{profile.name-here} /etc/apparmor.d/disable/    
    sudo apparmor_parser -R /etc/apparmor.d/{profile.name-name-here}
    
    Run Code Online (Sandbox Code Playgroud)

例子:

sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld
Run Code Online (Sandbox Code Playgroud)

然后运行命令sudo aa-status查看是否加载了mysql配置文件。

重新启用:

sudo rm /etc/apparmor.d/disable/usr.sbin.mysqld
sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.mysqld
sudo aa-status
Run Code Online (Sandbox Code Playgroud)

看:

https://www.cyberciti.biz/faq/ubuntu-linux-howto-disable-apparmor-commands/

https://wiki.ubuntu.com/AppArmor

https://help.ubuntu.com/community/AppArmor