2

У меня есть каталог, /var /www /someProject /backup /mysql, и я хочу, чтобы пользователь mysql написал в него. Каждый раз, когда я пытаюсь записать в него пользователя mysql, я получаю сообщение об ошибке «не могу прочитать / написать». Тем не менее, каталог 777, как вы можете видеть здесь:

drwxrwxrwx 2 aUser users 4096 2010-03-17 17:14 mysql

Я также попытался добавить каталог к mysql:mysql, как домашний каталог пользователя mysql, но не повезло, это ничего не изменило.

Что я здесь не так делаю? Или пользователь mysql ограничен своим домашним каталогом каким-либо другим способом в Ubuntu? Вот уже несколько дней меня мучает эта проблема, поэтому любая помощь очень ценится.

2 ответа2

2

Вы должны убедиться, что пользователь mysql действительно может получить доступ к каталогу /var /www /someProject /backup /mysql, т.е. он должен иметь как минимум право 'x' на все родительские каталоги.

Также убедитесь, что ошибка не вызвана настройкой SELinux (если вы используете SELinux).

2

С помощью вышеупомянутого Доминика я обнаружил, что в Ubuntu работает apparmor. Я цитирую из Википедии:

AppArmor позволяет системному администратору связать с каждой программой профиль безопасности, ограничивающий возможности этой программы.

Конечно же, среди этих программ был mysqld. Так что проблема была не в пользователе, а в ограничениях, наложенных на процесс apparmor. Затем я нашел решение здесь

sudo touch /etc/apparmod.d/disable/usr.sbin.mysqld
sudo /etc/init.d/apparmor reload

Это делает mysqld бесплатным процессом, который для меня, на этом сервере, не является проблемой. Итак, после нескольких дней поиска проблема исправлена!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .