Access to database files must be limited to relevant processes and to authorized, administrative users.

Severity
Group ID
Group Title
Version
Rule ID
Date
STIG Version
mediumV-253713SRG-APP-000243-DB-000374MADB-10-005600SV-253713r961149_rule2024-12-052
Description
Applications, including MariaDB, must prevent unauthorized and unintended information transfer via shared system resources. Permitting only MariaDB processes and authorized, administrative users to have access to the files where the database resides helps ensure that those files are not shared inappropriately and are not open to backdoor access and manipulation.
ℹ️ Check
By default, all of the MariaDB database files, log files, and backup files are located in the /var/lib/mysql. To find the location of the datadir run this command: Mariadb > SHOW GLOBAL VARIABLES LIKE 'datadir'; Check the /etc/my.cnf file for the following variables to determine if any of these files have a nondefault location configured. Only variables that specify a directory different from datadir will be in a different directory. If the variable only specifies a file name, that file will still be in the default directory. error_log innodb_log_group_home_dir innodb_temp_data_file_path innodb_tmpdir innodb_undo_directory innodb_temp_data_file_path innodb_tmpdir log_bin_basename log_error relay_log_basename relay_log_file_info sql_error_log_filename tmpdir Review the permissions granted to users by the operating system/file system on the database files, database log files, and database backup files. To verify that all files are owned by the database administrator and have the correct permissions, run the following as the database administrator: $ sudo su - root $ ls -lR {datadir} $ ls -lR other directories defined by variables above If using mysqldump or another tool for backups, also run the "ls" command as above on the directory that will be containing the backup file. If any files are not owned by the database administrator or allow anyone but the database administrator to read/write/execute, this is a finding. If any user/role who is not an authorized system administrator with a need-to-know, database administrator with a need-to-know, or system account for running MariaDB processes is permitted to read/view any of these files, this is a finding.
✔️ Fix
By default all of the MariaDB database files, log files, and backup files are located in the /var/lib/mysql. To find the location of the datadir run this command: Mariadb > SHOW GLOBAL VARIABLES LIKE 'datadir'; Check the /etc/my.cnf file for the following variables to determine if any of these files have a nondefault location configured. Only variables that specify a directory different from datadir will be in a different directory. If the variable only specifies a file name that file will still be in the datadir directory. error_log innodb_log_group_home_dir innodb_temp_data_file_path innodb_tmpdir innodb_undo_directory innodb_temp_data_file_path innodb_tmpdir log_bin_basename log_error relay_log_basename relay_log_file_info sql_error_log_filename tmpdir Configure the permissions granted by the operating system/file system on the database files, database log files, and database backup files so that only relevant system accounts and authorized system administrators and database administrators with a need to know are permitted to read/view these files. Any files (e.g., extra configuration files) created in datadir, or a nondefault directory defined by a variable above, must be owned by the database administrator, with only owner permissions to read, write, and execute.