-1.  개요

ubuntu 에 db 구축하는데 apparmor 라는 보안 모듈을 처음 접하여 고생하였던 경험 공유 드립니다.

 

-2. apparmor란

ubuntu의 보안 모듈로 mysql 등의 파일경로와 파일 권한 등을 제어할 수 있는 기능

TEST01V[root /etc/apparmor.d]$ aa-status
apparmor module is loaded.
23 profiles are loaded.
23 profiles are in enforce mode.
.
.
 
   /usr/sbin/mysqld
.
.
   /usr/sbin/ntpd
   /usr/sbin/tcpdump
   webbrowser-app
   webbrowser-app//oxide_helper

=> mysqld 가 apparmor의 제어를 받는 상황
 
 
TEST01V[root /etc/apparmor.d]$ cat usr.sbin.mysqld

# vim:syntax=apparmor
# Last Modified: Tue Feb 09 15:28:30 2016
#include <tunables/global>
.
.
# Allow data dir access
  /var/lib/mysql/ r,
  /var/lib/mysql/** rwk,

# Allow data files dir access
  /var/lib/mysql-files/ r,
  /var/lib/mysql-files/** rwk,

# Allow keyring dir access
  /var/lib/mysql-keyring/ r,
  /var/lib/mysql-keyring/** rwk,

# Allow log file access
  /var/log/mysql.err rw,
  /var/log/mysql.log rw,
  /var/log/mysql/ r,
  /var/log/mysql/** rw,
=> 위처럼 mysql 이 사용하는 파일시스템 , 파일을 지정 및 권한 설정을 하여 정의되지않은 파일은 사용 불가하게 됨
 
=> 위의 기본 설정을 그대로 사용하면 문제 없으나 팀에서 사용하는 파일시스템 표준등에 따라 default 가 아닌 별도의 파일시스템을 설정하여
db를 설정하는 경우에는 apparmor에 걸려 db 기동이 불가함
 

 

-3. apparmor 에서 mysqld 만 제외하는 방법

 
$ apt install apparmor-utils

$ aa-disable mysqld

$ aa-status | grep mysqld