Ubuntu 16.04下MySQL 5.7的正确AppArmor配置文件获取及更新咨询
权威配置文件来源
对于Ubuntu 16.04上的MySQL 5.7,最权威的标准AppArmor配置文件就是系统通过官方deb包提供的版本,路径是:/etc/apparmor.d/usr.sbin.mysqld
这个配置文件是Ubuntu维护团队针对MySQL 5.7和Ubuntu 16.04的环境专门适配过的,完全符合系统的安全规范和MySQL的运行需求,不需要自己从其他地方找。
MySQL源码中的配置情况
MySQL官方源码里确实包含AppArmor的配置模板,一般位于源码包的mysql-server/packaging/deb/apparmor目录下(不同版本的源码结构可能略有调整)。不过这个模板只是基础框架,Ubuntu的deb包已经在此基础上做了系统适配(比如调整了日志路径、socket文件路径等Ubuntu特有的路径),所以直接用系统自带的配置比从源码里拿模板修改更省心。
更新/维护配置文件的标准方法
如果你需要更新或修复配置,推荐遵循以下步骤:
- 先备份旧配置:防止误操作丢失自定义规则
sudo cp /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/usr.sbin.mysqld.bak - 恢复官方默认配置:如果你的旧配置已经混乱,可以通过重新安装MySQL server包来覆盖回标准配置
sudo apt-get --reinstall install mysql-server-5.7 - 自定义规则的正确姿势:不要直接修改主配置文件
/etc/apparmor.d/usr.sbin.mysqld,因为系统更新MySQL时会被覆盖。应该把自定义规则写到/etc/apparmor.d/local/usr.sbin.mysqld这个文件里,这个是专门用来存放本地自定义规则的,不会被系统更新影响。 - 生效配置:修改完配置后,需要重新加载AppArmor规则并重启MySQL服务
sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.mysqld sudo systemctl restart mysql - 验证配置状态:可以用下面的命令确认MySQL的AppArmor规则是否处于生效状态
如果输出里显示sudo aa-status | grep mysqldenforced,说明规则已经正常生效。
内容的提问来源于stack exchange,提问作者Confused Vorlon
相关产品推荐
相关产品推荐

