TMAegis
More rules for mysql

MySQL

TMA-MYSQL-3.1

Ensure 'datadir' Has Appropriate Permissions

HighLevel 1Automatedmysql

Description

The data directory is the location of the MySQL databases. Expects drwxr-x--- mysql:mysql (0700 also accepted); run as root on the database host. Runs mysql -NBe with the client defaults: put an administrative account in ~/.my.cnf (mode 0600) or a mysql_config_editor login path, not MYSQL_PWD (see 1.4/1.6).

How it is checked

Audit method: Shell command

shell
[ "$(id -u)" -eq 0 ] || exit 1; d=$(mysql -NBe "SELECT @@global.datadir" 2>/dev/null) || exit 1; s=$(stat -c '%a %U %G' "$d" 2>/dev/null) || exit 1; case "$s" in "750 mysql mysql"|"700 mysql mysql") echo compliant ;; *) echo "$s" ;; esac
Expected output
compliant

How it is fixed

Fix method: Guidance or infrastructure patch

chmod 750 <datadir> && chown mysql:mysql <datadir> (datadir from SELECT @@datadir).

Properties

Operating systems
Any
Tags
mysqldatabasefilesystempermissions
Reference
CIS Oracle MySQL Community Server 8.4 Benchmark v1.1.0 - 3.1 Ensure 'datadir' Has Appropriate Permissions

Check this host

Run this on a machine you are allowed to audit. The scan is read-only.

shell
tmaegis scan --target mysql