Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #52, МАРТ 2005 г.

MySQL в разрезе

Никита Кислицин

Спецвыпуск: Хакер, номер #052, стр. 052-036-3


mysql:*:44:

Затем при помощи утилиты adduser я добавил нового пользователя MySQL, после чего можно было уже переходить непосредственно к установке "мускла". В каталоге с MySQL легко заметить папку scripts. Для ее установки запускаем сценарий scripts/mysql_install_db с параметром --user=mysql, указывающим, под каким пользователем нужно работать программе. Когда сценарий создаст все нужные системные таблицы, идем в корневой каталог с MySQL и назначаем владельцев самых важных папок. Действуем согласно мануалу:

chown -R root .

chown -R mysql data

chgrp -R mysql .

В общем-то, все, Амиго! Осталось запустить демона, чтобы он спокойненько работал в фоне. Напрямую выполнять файл mysqld по ряду причин не рекомендуется. Запускать сервер баз данных лучше всего через своеобразную оболочку mysqld_safe, передавая в качестве параметра уже знакомый флаг –-user, вот так:

bin/mysqld_safe --user=mysql&

После этого сервер запустится и отправится жить в background, поскольку мы указали это добавив к имени бинарника знак амперсанта.

В принципе, после этого сервер уже вполне работоспособен и с ним можно адекватно общаться. Чтобы убедиться в этом, запустим утилиту /usr/local/mysql/bin/mysql. Поскольку мы еще не установили пароль для суперпользователя root, ничего дополнительно вводить не понадобится. Согласись, что это не самый лучший подход – держать службу с паролем по умолчанию. Поэтому сейчас мы его поменяем, а заодно внесем некоторые изменения в саму базу данных.

Простенький тюнинг

Чтобы поменять пароль для суперпользователя, нужно выполнить следующий запрос:

mysql> set password for root@localhost=password("KitEfxcs");

Затем сделаем активной системную базу данных MySQL, в которой хранится вся информация о системных структурах, в том числе - о пользователях MySQL:

mysql> use mysql;

Теперь давай удалим всех пользователей, а пощадим только рута (установочный скрипт насоздавал кучу ненужного и левого):

mysql> delete from user where not user="root";

Что еще полезного можно сделать? Поменяем имя суперпользователя, чтобы любители брутфорсить пароль для рутовой записи пошли лесом:

mysql> update user set user="nikitoz" where user="root";

После этого, чтобы изменения в таблице users были приняты, выполняем команду flush privileges:

mysql> flush privileges;

mysql> quit

Тебя уже мучают несколько вопросов, если ты до этого не работал с MySQL. А самый главный из них: "Неужели информация о пользователях хранится в обычной таблице?"

Да, это так! Если быть точнее, в таблице user базы MySQL. Соответственно, внося изменения в эту таблицу, можно менять пользователям пароли, имена и прочие параметры. Однако тут следует иметь в виду, что пароли, разумеется, хранятся не в открытом виде, а криптуются. Поэтому перед изменением пароль пользователя криптуется с помощью стандартной в MySQL функции password вот так:

Назад на стр. 052-036-2  Содержание  Вперед на стр. 052-036-4