Мне нужно переместить файл, созданный MySQL, не будучи root
Я создаю сценарий, который перемещает файлы журнала, созданные mysql.
Файлы, которые мне нужно переместить, создаются регулярно и выглядят примерно так
gorf@212370 ~/ Рабочий стол $ ls -l / mysql-log /
-rw-rw ---- 1 mysql mysql 148 ноября 13 18:39 bin-log.000019
-rw-rw ---- 1 mysql mysql 126 13 ноября 18:42 bin-log.000020
-rw-rw ---- 1 mysql mysql 148 ноября 13 18:44 bin-log.000021
-rw-rw ---- 1 mysql mysql 148 13 ноября 18:50 bin-log.000022
-rw-rw ---- 1 mysql mysql 148 13 ноября 18:50 bin-log.000023
-rw-rw ---- 1 mysql mysql 107 13 ноября 18:50 bin-log.000024
-rw-rw ---- 1 mysql mysql 1456 нояб. 13 18:50 bin-log.index
и пользователь, которого я использую для перемещения файлов,
gorf@212370 ~/Desktop $ groups gorf
gorf: gorf adm cdrom sudo dip plugdev lpadmin sambashare mysql
Поскольку файлы принадлежат mysql, а пользователь "gorf" принадлежит группе "mysql", я ожидал, что смогу переместить файлы. Однако, если я пытаюсь переместить файлы, я получаю отказано в разрешении
gorf@212370 ~/Desktop $ mv /mysql-log/bin-log.000023./
mv: невозможно переместить '/mysql-log/bin-log.000023' в './bin-log.000023': разрешение отклонено
но если я их скопирую
gorf@212370 ~/Desktop $ cp /mysql-log/bin-log.000023./
это нормально.
В сценарии мне нужно переместить файлы, так как они являются частью инкрементной резервной копии. Одним из решений было бы запустить скрипт от имени пользователя root, но по соображениям безопасности я ищу более элегантные решения.
Что я могу сделать, чтобы решить эту проблему?
1 ответ
Причина, по которой вы не можете удалить файлы, заключается в том, что root владеет каталогом /mysql-log. Вам необходимо сменить владельца на группу "mysql":
sudo chgrp mysql /mysql-log