TL; DR
Я не понимаю, как mysql работающему от имени root@localhost , не позволил бы писать в /usr/lib/? Написание файла - это обычный шаг от перехода от SQL к root оболочке. Подробности ниже.
В этом задании, которое я делаю, мне удалось получить доступ администратора к панели WordPress. Оттуда я могу редактировать php файлы, позволяя мне выполнять запросы к базе данных на досуге.
Моим первым шагом было проверить, какой пользователь запускает сервер MySQL:
$results = $wpdb->get_results( 'select system_user() ', OBJECT );
var_dump($results);
Это показало, что mysql работает как root@localhost . На мой взгляд, root должен иметь все права на систему. Я подтвердил, что у него были разрешения FILE :
... "'root'@'localhost'" ["privilege_type"]=> string(4) "FILE" ["is_grantable"]=> string(3) "YES" }
Просто чтобы быть уверенным, что я попытался записать файл в /tmp/:
select "hello world" into outfile "/tmp/test"
Это сработало. Теперь мне нужна root оболочка в системе, поэтому я продолжил следовать этой методологии, которая включает в себя запись файла в /usr/lib/:
select "hello world" into dumpfile "/usr/lib/test"
Но я получаю ошибку, связанную с разрешением:
[Can't create/write to file '/usr/lib/raptor_udf2.so' (Errcode: 13)]
Используя веб-оболочку, работающую как пользователь с низкими привилегиями, я проверил права на /usr/lib/:
drwxr-xr-x 173 root root 53248 Sep 29 2011 lib
Ничего прикольного здесь, root должен уметь писать.
