Вопрос или проблема
Я хотел бы поместить логи MariaDB в легкодоступное место (без необходимости использования ssh), но у меня это не получилось.
Моя текущая конфигурация следующая:
[mysqld]
general_log
general_log_file=/volume1/logs/mysql/general.log
# log_error=/volume1/logs/mysql/error.log # в ожидании работы общих логов
Я выполнил chown -R mysql:mysql /volume1/logs/mysql
drwxrwxrwx+ 1 mysql mysql 0 Jun 8 00:12 mysql
Если есть способ перенести логи в центр логов Synology, я приму его!
Установленные вами разрешения позволяют всем, у кого есть доступ к системе, читать, записывать и выполнять файлы в вашей папке. Это не лучшая практика и представляет собой угрозу безопасности.
Что я сделал: авторизовался в системе через ssh, получил с помощью
id
свои числовые идентификаторы пользователя и группы, а затем добавил
user: 1026:100
атрибут в файл compose (замените их вашими id, полученными в предыдущей команде). Добавьте папку через bash и измените разрешения с помощью
mkdir foldername
chmod +w
Вы должны были установить “Проход по папкам/Выполнение файлов” для общей папки и сделать так, чтобы дочерние элементы наследовали это.
Разрешения ACL > Чтение > Проход по папкам/Выполнение файлов
помощь: https://kb.synology.com/en-us/DSM/help/DSM/AdminCenter/file_share_privilege?version=7#b_25
.
Ответ или решение
Для решения проблемы с доступом к логам MariaDB на Synology DS420+ необходимо учитывать много аспектов, связанных как с конфигурацией системы, так и с управлением правами доступа. Ваша ситуация вызывает ошибки "permission denied", когда MariaDB пытается записать логи в директорию /volume1/logs/mysql
. Основная задача состоит в обеспечении правильного доступа к соответствующим файлам и директориям, не ставя при этом под угрозу безопасность системы.
Теория
MariaDB — это реляционная база данных с открытым кодом, которая часто используется в сочетании с различными устройствами хранения данных, такими как NAS Synology. Основной механизм работы MariaDB с файлами логов заключается в том, что она требует надлежащих прав доступа к директориям, где эти логи сохраняются.
Общие логи и логи ошибок предоставляют ценные сведения о работе серверной части. Правильная настройка может дать вам возможность размещать эти логи в легкодоступных местах без необходимости использования SSH для доступа.
Проблема с "permission denied" часто связана с неправильной установкой прав на папку или с недостаточными правами ACL (Access Control List). Важно, чтобы служба базы данных MariaDB могла свободно записывать данные в назначенные директории.
Пример
С вашей стороны уже были предприняты следующие меры:
- Конфигурация MariaDB настроена для хранения логов в
/volume1/logs/mysql
. - Установлены права владельца с помощью команды
chown -R mysql:mysql /volume1/logs/mysql
. - Проведена проверка текущих прав с помощью команд
id
иchmod +w
.
Приведенные настройки, на первый взгляд, должны разрешать MariaDB запись в указанную директорию. Однако этого недостаточно, если ACL не настроена должным образом.
Применение
-
Проверка текущих прав и корректировка:
Убедитесь, что пользователь
mysql
действительно владеет директориями и имеет полноценные права на запись. Несмотря на то что вы уже провелиchown
, необходимо убедиться, что нет конфликтов с ACL:getfacl /volume1/logs/mysql
Эта команда покажет, какие права установлены через ACL.
-
Настройка ACL:
Для корректной работы MariaDB необходимы права на чтение, запись и выполнение для пользователя
mysql
. Выполните следующие команды для настройки:setfacl -m u:mysql:rwx /volume1/logs/mysql setfacl -R -m u:mysql:rwx /volume1/logs/mysql
Эти команды обеспечат рекурсивное предоставление нужных прав.
-
Разрешение доступа через Synology DSM:
Откройте интерфейс Synology DSM и перейдите в
Control Panel
->Shared Folder
. Убедитесь, что у соответствующего пользователя или группы есть необходимые права для работы с данной директорией. Флажок "Traverse folders/Execute files" должен быть установлен. -
Несколько рекомендаций по безопасности:
- Избегайте присвоения прав
777
, так как это ставит под угрозу безопасность системы, позволяя любому пользователю читать, записывать и выполнять файлы. - Регулярно проверяйте списки пользователей и групп для актуализации прав доступа и исключения нерелевантных записей.
- Избегайте присвоения прав
-
Интеграция с лог центром Synology:
Если вы хотите интегрировать логи MariaDB в Synology Log Center, воспользуйтесь встроенными инструментами или сторонними расширениями, которые могут предоставить возможность отслеживания логов в более удобной форме.
-
Перезапуск служб:
После внесения изменений необходимо перезапустить MySQL или MariaDB:
sudo service mysql restart
Также убедитесь, что Synology NAS перезапустила все связанные службы для применения новых настроек.
Заключение
Настройка MariaDB и обеспечение правильных прав доступа на NAS Synology — это процесс, требующий детального внимания и понимания специфики работы системы. Важно учитывать, что безопасность должна быть приоритетом, особенно когда речь идет о критически важных сервисах, таких как базы данных. Следуя указанным шагам, вы сможете настроить корректную работу логов и интегрировать их с Log Center, обеспечивая при этом защиту данных.