Меню

Mysql linux настройка пароль



ИТ База знаний

Курс по Asterisk

Полезно

— Узнать IP — адрес компьютера в интернете

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Калькулятор инсталляции IP — АТС Asterisk

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Навигация

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Популярное и похожее

15 примеров команды PING для диагностики сети

Руководство по команде grep в Linux

15 примеров CURL в Linux

Как запустить Bash скрипт в Linux

Руководство администратора Linux по устранению неполадок и отладке

Мониторинг пропускной способности и скорости сети в Linux

15 примеров CURL в Linux

Grandstream GXP2200

Еженедельный дайджест

Права доступа к MySQL через Linux

Прямо из консоли

3 минуты чтения

Не все любят управлять MySQL через Linux. Management Studio – говорили они. CLI – говорим мы. Бро, эта статья про то, как дать права доступа (permissions) учетным записям в Linux – среде.

Логинимся

Подключаемся к своему серверу по SSH. В командной строке вводим:

Хоп – и мы уже в режиме управления MySQL:

Вообще, эта статья про права доступа. Но на всякий случай вот тебе синтаксис команды, которая позволит создать нового пользователя с паролем в MySQL:

А теперь права

Друже, синтаксис команды, которая даст нужные тебе права крайне простой. Вот он:

Разберемся слева на право:

  1. права — могут быть следующие:
    • ALL – дает полный доступ к базе данных. Кстати, если база данных не определена в команде, то даст полный доступ ко всему в MySQL (ох не надо так);
    • CREATE – позволяет пользователю создавать базы данных и таблицы;
    • DELETE – дает право пользователю удалять строки из таблиц;
    • DROP – дает право удалять базы данных и таблица целиком (ну, так тоже не надо);
    • EXECUTE – дает право пользователю выполнять хранимые процедуры;
    • GRANT OPTION – с этой опцией юзер сможет давать права (или удалять) другим пользователям;
    • INSERT – дает право хранить молчанию и все что он скажет будет.. Ладно, это просто право на добавление новых строк в таблицу;
    • SELECT – самое распространенное право – парсить (извлекать) данные из SQL для чтения;
    • SHOW DATABASES — этому пользователю можно будет смотреть на список баз данных;
    • UPDATE – дает право пользователю изменять текущие строки в таблице;
  2. база_данных собственно, база данных, внутри которой живет ваша таблица;
  3. таблица — сама таблица. Табличка, table, le tableau;
  4. логин — имя пользователя вашего юзверя;

Все просто. Пробежимся по примерам.

Пример №1

Давайте дадим права юзеру example, с помощью которых он сможет создавать любые БД и таблицы:

Использование звездочки (*) – это как маска, под которое попадает все.

Пример №2

Дадим пользователю example права на удаление любых таблиц в заранее обозначенной базе данных, которая называется easybro

Как видишь, мы юзаем команду DROP. Кстати, лучшая практика после внесения изменения сделать небольшую перезагрузку прав командой:

Как посмотреть права определенного пользователя в MySQL

Посмотреть права очень просто. Опять же, на примере нашего юзера example:

Было полезно?

Почему?

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

😍 Полезные IT – статьи от экспертов раз в неделю у вас в почте. Укажите свою дату рождения и мы не забудем поздравить вас.

Источник

Как изменить (сбросить) root пароль в MySQL

Довольно часто происходит такая ситуация, что пароль для учетной записи root в MySQL необходимо восстановить, поменять или сбросить. Хорошо, если он известен, но бывают случаи, когда пароль был утерян или неизвестен с самого начала. В данной статье пойдет речь о том, как этот пароль восстановить, имея доступ к серверу, на котором запущен mysql-server для обоих случаев, когда пароль о учетной записи root ИЗВЕСТЕН и НЕ ИЗВЕСТЕН.

Читайте также:  Asus rt n56u настройка l2tp

Как поменять пароль root в MySQL

Если пароль root ИЗВЕСТЕН

Возьмем самую простую ситуацию, когда пароль от учетной записи root вам известен и все что нужно сделать, это просто его поменять. Чтобы задать новый пароль для учетной записи root, необходимо проделать следующие действия:

1) Подключаемся в консоль MySQL сервера с правами root (не забываем ввести пароль, после появления соответствующего запроса):

2) Меняем пароль для пользователя root:

Для MySQL версий 5.7.6 и новее (5.7.7, 5.7.8. )

Для MySQL версий 5.7.5 и старее (5.7.4, 5.7.3. )

NEW_PASSWORD — это пароль, который вам необходимо поменять на свой собственный.
В результате выполнения данной команды, мы должны получить вот такой вывод в консоли:

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

В результате выполнения данной команды, мы должны получить вот такой вывод в консоли:

3) Перезагружаем привилегии, чтобы изменения вступили в силу:

4) Для выхода из консоли MySQL сервера выполняем команду выхода:

После этого, пароль должен поменяться.

Если пароль root НЕ ИЗВЕСТЕН

Если вы не знаете текущий пароль root (потеряли, забыли) в MySQL, то придется пойти чуть более сложным путем, чем описанные действия выше:

1) Останавливаем mysqld:

2) Проверяем, что нет запущенных процессов mysqld:

Если все нормально, то вывод команды должен состоять лишь из одной строки, примерно такого содержания:

3) Создаем каталог /var/run/mysqld для запуска mysqld в safe режиме из консоли

4) Делаем владельцем данного каталога пользователя mysql (чтобы не было проблем с правами)

5) Запускаем MySQL в ручном режиме из консоли, пропуская проверку прав (опция —skip-grant-tables). А также отключаем доступ к серверу через TCP/IP (с помощью опци и —skip-networking), чтобы злоумышленник не мог воспользоваться тем, что мы отключили проверку прав пользователей. При использовании данной опции, доступ к серверу становится возможным только через localhost.

В случае успешного запуска, вывод в консоли должен быть примерно таким:

6) Подключаемся из консоли к серверу mysqld и выбираем базу данных mysql:

7) Используем плагин mysql_native_password, иначе в некоторых случаях будем получать ошибку «ERROR 1524 (HY000): Plugin ‘auth_socket’ is not loaded«, а нам это не нужно:

Вывод в результате выполнения данной команды должен быть примерно таким:

8) Перезагружаем привилегии:

9) Меняем пароль для нужного пользователя, в нашем случае это root:

Для MySQL версий 5.7.6 и новее (5.7.7, 5.7.8. )

Для MySQL версий 5.7.5 и старее (5.7.4, 5.7.3. )

NEW_PASSWORD — это пароль, который вам необходимо поменять на свой собственный.
В результате выполнения данной команды, мы должны получить вот такой вывод в консоли:

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

В результате выполнения данной команды, мы должны получить вот такой вывод в консоли:

9) После чего, вводим команду exit для отключения:

10) Выключаем запущенный в ручном режиме Mysqld сервер:

Если все пройдет успешно, то вывод должен быть примерно таким:

То можно принудительно завершить процесс с помощью следующей команды:

11) Проверяем, что нет запущенных процессов mysqld:

Если все нормально, то вывод команды должен состоять лишь из одной строки, примерно такого содержания:

12) Запускаем Mysql-server в нормальном режиме:

И пытаемся подключиться к нашему серверу с новым паролем, который мы установили.

Источник

linux-notes.org

В этой статье «Настройка безопасности MYSQL в Unix/Linux» я хотел бы представить материал по настройке безопасности mysql в операционных системах Unix и Linux. Я долго собирал данный материал и собрал все до кучи.

Я не буду рассказывать как установить mysql, а перейду сразу к настройкам, но если кто-то не знает как установить mysql, то могут ознакомится с полезным материалом тут:

Читайте также:  Настройка оттенка насыщенности и яркости

И есть еще много других полезных статей по этой теме, если интересно, то рекомендую использовать поиск или пройтись по рубрикам.

Файл конфигурации my.cnf в Ubuntu и Debian, находится: /etc/mysql/my.cnf

Файл конфигурации my.cnf в CentOS, RedHat и Fedora: /etc/my.cnf

Настройка безопасности MYSQL в Unix/Linux

И так, приступим….

Предварительная установка.

Перед установкой любого программного обеспечения укрепить операционную систему. Это включает в себя функции безопасности для файловой системы:

  • Зашифруйте файловую систему, чтобы предотвратить взлома данных злоумышлинниками.
  • Установите систему обнаружения вторжений, например Tripwire, который смотрит на изменения в критических системных файлах.
  • Нужно заблокировать не использующие порты с помощью брандмауэра, чтобы предотвратить доступ к системным службам.
  • Установить сильные пароли для пользователя root и для других пользователей ОС.
  • Disallowing OS login by application users: set to “nologin” or “/bin/false”.
  • Необходимо настроить sudo всех аккаунтов с привилегиями и требовать пароль для доступа к SUDO.
  • Настроить запуск скрипта для сканирования rootkit-отов по расписанию.
  • Запустить процес «Список контроля доступа» (ACL)на уровне ОС: Расширения SELinux или AppArmor. Эти программы будут ограничивать систему или процессы на сервере от доступа к данным и ресурсам, которые явно не определены.

Настройка безопасности после установки mysql.

После установки MySQL, существуют различные подходы к обеспечению первоначальной настройки.

Первый вариант — это сделать все это самому, вручную:

Проверяем, установлен ли пароль дял пользователя root и если нет, то установим его:

И устанавливаем пароль:

Удаляем анонимных пользователей:

Удалим (запретим) удаленный доступ для пользователя root:

Удаляем стандартную базу данных с именем «test»:

Перезагрузим пользовательские привелегии:

По умолчанию, MySQL будет работать через «mysqld_safe», который не делает MySQL безопасным. Скрипт mysqld_safe обеспечивает функциональность следующим образом: «Скрипт запускает демон MySQL или перезапускает его, если он неожиданно умирает». Таким образом, если кто-то пытается запустить mysql от пользователя root, то скрипт не запустится. Процесс mysql может работать без mysqld_safe, вы можете запустить его следующим образом, через sudo:

Путь к демону может отличатся, все зависит от ОС.

Второй вариант — это запустить «mysql_secure_installation».

2-й способ более простой и скрипт выполнит все за вас. Запустите скрипт «mysql_secure_installation». Это поможет выполнить несколько процедур, которые будут устранять некоторыми значениями по умолчанию, которые являются опасными для использования:

данный скрипт запросит у вас пароль суперпользователя который вы создали во время установки. Сразу же после этого, вам будет предложено ряд вопросов. Вы должны ответить «Y» (Да), на все оставшиеся вопросы.

И так, все установлено и теперь нужно отредактировать конфигурационный файл my.cnf и внести ряд полезных изменений:

Первый параметр, который мы должны проверить это «bind-address» который находится в разделе «[mysqld]». Этот параметр говорит что mysql будет запущен на локальном сервере без выхода в интернет и к нему не смогут подключится, приведите к следующему виду:

Это гарантирует, что MySQL не принимает соединения ниоткуда, за исключением локальной машины. Если вам нужен доступ к этой базе данных с другой машины, то можно сделать отправка данных через SSH туннель.

В этом же разделе данного файла, я добавляю директиву, чтобы отключить возможность загрузки локальных файлов:

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

Вы можете установить путь где будет желать лог-файл ( в этом же разделе»[mysqld]»):

Рекомендуется отключение символических ссылок для предотвращения различного рисков в безопасности:

Это не полный конфиг, чтобы просмотреть полный, перейдите:

Это готовый и оптимизированный конфигурационный файл. Он довольно большой, по этому, я его вынес в отдельный файл. Можете использовать его.

НЕ ДЛЯ ПАРАНОИКОВ! Можно прописать логин и пароль и входить без него, для этого:

user_mysql — пользователь в mysql.
password_mysql — пароль от пользователя user_mysql в mysql.

Читайте также:  Настройка openvpn клиента mac

В следующий раз при запуске mysql команд в mysql, mysqlcheck, mysqdump утилиты будут брать user_mysql & password_mysql с файла и это с экономит ваше время (и не нужно прописывать -u и -p).

Убедитесь, что лог-файл для MySQL, и лог с ошибками, а так же каталог где лежат логи MySQL не доступен для чтения другим пользователям:

Настройка безопасности внутри MySQL.

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

Вам будет предложено ввести пароль суперпользователя, который вы создали ранее.

Обеспечение паролей и Host ассоциаций

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

Как вы можете видеть, в примере, пользователь «Test-user» не имеет пароля и работает независимо от хоста и БД. Это очень небезопасно.

Мы можем установить пароль для пользователя. Измените «newPassWord» и установить пароль который вам нужно:

Если проверим таблицу user снова, то увидим, что пользователь Test-user теперь имеет пароль:

Если вы посмотрите в поле «Host», вы увидите, что у нас еще есть «%», который является джокером. Это означает, что данный пользователь имеет право работать с любым хостом на сервере. Это не то, что нужно и необходимо изменить на «localhost»:

Если еще раз проверить, то можно увидеть, что таблица user теперь имеет соответствующие поля и они корректны:

Если таблица содержит пустых пользователей (В этот примере нет таких, так как я запустил «mysql_secure_installation», но я расскажу об этом в любом случае), мы должны удалить их:

После того как я сделал модифицировать таблицы user, нужно выполнить следующую команду, чтобы активировать новые привилегии:

Назначение пользователей и присваивание им прав.

Каждое приложение, которое использует MySQL должно иметь своего собственного пользователя, который будет имеет доступ к базам данных, необходимымих для запуска. И для примера, я создам новую базу данных:

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

После чего, необходимо предоставить новые привилегии для только что созданного пользователя на новую таблицу с помощью следующей команды:

В качестве примера, если нужно отменить права, например на UPDATE для пользователя, то это можно сделать так:

Если вам нужны все привилегии для определенной базы данных, вы можем сделать это так:

Выполним обновление привелегий для пользователей:

А сейчас проверим что получилось:

Всегда выполняйте «flush privileges», когда вы закончили вносить изменения.

Поменять пользователя root.

Один дополнительный шаг, который вы можете сделать, это изменить имя пользователя root. Если злоумышленник пытается получить доступ к пользователю root в MySQL, то они должны будут выполнять дополнительную стадию нахождения пользователя.

Чтобы переименовать пользователя root, вы можете использовать:

Вы можем увидеть изменения, используя тот же запрос:

Опять же, необходимо очистить привелегии для этих изменений:

Помните, что вы должны будете войти в MySQL, как вновь созданный пользователь. И теперь, вы должны использовать не root, а имя пользователя которое вы использовали при переименовании выше, чтобы выполнять административные задачи:

Если нужно сбросить пароль от пользователя root в mysql, то рекомендую прочитать статью «Сброс пароля root в MySQL»

Защита файла конфигурации MySQL.

Чтобы сохранить настройки, файл не должен быть доступен для всех, кроме себя. Чтобы обеспечить это, выставитепара на файл 400 или 600. Например:

На всех файлах конфигурации должны иметь владельца root:

И напоследок, для полной защиты, я настоятельно рекомендовал бы защитить файл конфигурации. Для этого, стоит выполнить команду:

Подробно о этой утилите можно прочитать тут:

Убедитесь, что mysqld работает на tcp порту №3306:

А на этом статья «Настройка безопасности MYSQL в Unix/Linux» подошла к завершению.

Источник

Adblock
detector