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