По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
В этой статье мы объясним, как узнать, кто использует тот или иной файл в Linux. Это поможет вам узнать системного пользователя или процесс, который использует открытый файл.
Как узнать, кто использует файл в Linux?
Мы можем использовать команду lsof (которая является аббревиатурой от List Of Opened Files), чтобы узнать, использует ли кто-то файл, и если да, то кто. Он читает память ядра в поиске открытых файлов и перечисляет все открытые файлы. В этом случае открытый файл может быть обычным файлом, каталогом, специальным файлом блока, специальным файлом символов, потоком, сетевым файлом и многими другими, поскольку в Linux все является файлом.
Lsof используется в файловой системе, чтобы определить, кто использует какие-либо файлы в этой файловой системе. Вы можете запустить команду lsof в файловой системе Linux, и выходные данные идентифицируют владельца и информацию о процессах для процессов, использующих файл, как показано в следующих выходных данных.
$ lsof /dev/null
Список всех открытых файлов в Linux
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1480 merionet 0r CHR 1,3 0t0 6 /dev/null
sh 1501 merionet 0r CHR 1,3 0t0 6 /dev/null
sh 1501 merionet 1w CHR 1,3 0t0 6 /dev/null
dbus-daem 1530 merionet 0u CHR 1,3 0t0 6 /dev/null
xfce4-ses 1603 merionet 0r CHR 1,3 0t0 6 /dev/null
xfce4-ses 1603 merionet 1w CHR 1,3 0t0 6 /dev/null
at-spi-bu 1604 merionet 0r CHR 1,3 0t0 6 /dev/null
dbus-daem 1609 merionet 0u CHR 1,3 0t0 6 /dev/null
at-spi2-r 1611 merionet 0u CHR 1,3 0t0 6 /dev/null
xfconfd 1615 merionet 0u CHR 1,3 0t0 6 /dev/null
xfwm4 1624 merionet 0r CHR 1,3 0t0 6 /dev/null
xfwm4 1624 merionet 1w CHR 1,3 0t0 6 /dev/null
xfce4-pan 1628 merionet 0r CHR 1,3 0t0 6 /dev/null
xfce4-pan 1628 merionet 1w CHR 1,3 0t0 6 /dev/null
Thunar 1630 merionet 0r CHR 1,3 0t0 6 /dev/null
Thunar 1630 merionet 1w CHR 1,3 0t0 6 /dev/null
xfdesktop 1632 merionet 0r CHR 1,3 0t0 6 /dev/null
xfdesktop 1632 merionet 1w CHR 1,3 0t0 6 /dev/null
....
Чтобы вывести список файлов, открытых для конкретного пользователя, выполните следующую команду: замените merionet вашим именем пользователя.
$ lsof -u merionet
Список файлов, открытых пользователем:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1480 merionet cwd DIR 8,3 4096 2 /
systemd 1480 merionet rtd DIR 8,3 4096 2 /
systemd 1480 merionet txt REG 8,3 1595792 3147496 /lib/systemd/systemd
systemd 1480 merionet mem REG 8,3 1700792 3150525 /lib/x86_64-linux-gnu/libm-2.27.so
systemd 1480 merionet mem REG 8,3 121016 3146329 /lib/x86_64-linux-gnu/libudev.so.1.6.9
systemd 1480 merionet mem REG 8,3 84032 3150503 /lib/x86_64-linux-gnu/libgpg-error.so.0.22.0
systemd 1480 merionet mem REG 8,3 43304 3150514 /lib/x86_64-linux-gnu/libjson-c.so.3.0.1
systemd 1480 merionet mem REG 8,3 34872 2497970 /usr/lib/x86_64-linux-gnu/libargon2.so.0
systemd 1480 merionet mem REG 8,3 432640 3150484 /lib/x86_64-linux-gnu/libdevmapper.so.1.02.1
systemd 1480 merionet mem REG 8,3 18680 3150450 /lib/x86_64-linux-gnu/libattr.so.1.1.0
systemd 1480 merionet mem REG 8,3 18712 3150465 /lib/x86_64-linux-gnu/libcap-ng.so.0.0.0
systemd 1480 merionet mem REG 8,3 27112 3150489 /lib/x86_64-linux-gnu/libuuid.so.1.3.0
systemd 1480 merionet mem REG 8,3 14560 3150485 /lib/x86_64-linux-gnu/libdl-2.27.so
...
Еще одно важное использование lsof - выяснение процесса прослушивания определенного порта. Например, определите процесс, прослушивающий порт 80, с помощью следующей команды.
$ sudo lsof -i TCP:80
Процессы, прослушивающие порт:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 903 root 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 1320 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 1481 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 1482 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 1493 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 1763 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 2027 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 2029 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 2044 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 3199 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 3201 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
Примечание: поскольку lsof читает память ядра при поиске открытых файлов, быстрые изменения в памяти ядра могут привести к непредсказуемым результатам. Это один из основных недостатков использования команды lsof.
Для получения дополнительной информации, смотрите справку lsof:
$ man lsof
На этом все! В этой статье мы объяснили, как узнать, кто использует тот или иной файл в Linux.
Может так случиться, что вы забудете или потеряете свой root пароль MySQL, но не стоит отчаиваться – его можно сбросить и восстановить доступ. Что нам нужно знать так это то, что пароль хранится в таблице пользователей. Это означает, что нам нужно найти способ обойти аутентификацию MySQL, чтобы мы могли обновить запись пароля.
К счастью, это легко сделать, и это руководство проведет вас через процесс восстановления или сброса пароля root в версии MySQL 8.0.
Согласно документации по MySQL, существует два способа сброса корневого пароля MySQL и в этой статье мы рассмотрим оба.
Сброс MySQL root пароля с использованием –init-file
Один из способов сброса пароля root - создать локальный файл, а затем запустить службу MySQL, используя параметр --init-file, как показано ниже:
# vim /home/user/init-file.txt
Важно убедиться, что файл доступен для чтения пользователю mysql. В этот файл вставьте следующее и измените «new_password» на пароль, который вы хотите использовать:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
Теперь убедитесь, что служба MySQL остановлена. Вы можете сделать следующее:
# systemctl stop mysqld.service # для дистрибутивов использующих systemd
# /etc/init.d/mysqld stop # для дистрибутивов использующих init
Далее запустите следующее:
# mysqld --user=mysql --init-file=/home/user/init-file.txt --console
Это запустит службу MySQL и во время процесса выполнит созданный вами файл инициализации, и, следовательно, пароль для пользователя root будет обновлен. Обязательно удалите файл после сброса пароля.
После этого обязательно остановите сервер и запустите его как обычно.
# systemctl stop mysqld.service # для дистрибутивов использующих system
# systemctl restart mysqld.service # для дистрибутивов использующих systemd
# /etc/init.d/mysqld stop # для дистрибутивов использующих init
# /etc/init.d/mysqld restart # для дистрибутивов использующих init
Теперь вы должны иметь возможность подключиться к серверу MySQL от имени пользователя root, используя новый пароль.
# mysql -u root -p
Сброс MySQL root пароля с использованием –skip-grant-tables
Второй вариант - запустить службу MySQL с параметром --skip-grant-tables. Это менее безопасно, так как пока служба запускается таким образом, все пользователи могут подключаться без пароля.
Если сервер запущен --skip-grant-tables, опция для --skip-network активируется автоматически, поэтому удаленные подключения не будут доступны.
Сначала убедитесь, что служба MySQL остановлена.
# systemctl stop mysqld.service # для дистрибутивов использующих systemd
# /etc/init.d/mysqld stop # для дистрибутивов использующих init
Затем запустите службу с помощью следующей опции.
# mysqld --skip-grant-tables --user=mysql &
Теперь вы можете подключиться к серверу MySQL, просто используя:
# mysql
Поскольку управление учетными записями отключается при запуске службы с параметром --skip-grant-tables, нам придется перезагрузить гранты. Таким образом, мы сможем изменить пароль позже:
# FLUSH PRIVILEGES;
Теперь вы можете выполнить следующий запрос, чтобы обновить пароль. Обязательно замените «new_password» реальным паролем, который вы хотите использовать.
# ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';
Теперь остановите сервер MySQL и запустите его как обычно.
# systemctl stop mysqld.service # для дистрибутивов использующих system
# systemctl restart mysqld.service # для дистрибутивов использующих systemd
# /etc/init.d/mysqld stop # для дистрибутивов использующих init
# /etc/init.d/mysqld restart # для дистрибутивов использующих init
Теперь вы сможете подключиться с новым паролем:
# mysql -u root –p
Ядро - это центральный компонент операционной системы. Ядро также считается сердцем операционной системы. Он отвечает за управление всеми процессами, памятью, файлами и т. д. Ядро функционирует на самом низком уровне операционной системы. Он действует как интерфейс (мост) между пользовательским приложением (программным обеспечением) и аппаратным обеспечением. Поэтому связь между программным обеспечением и аппаратным обеспечением осуществляется через ядро.
Основные функции, которые выполняет ядро:
управление процессами
управление памятью
управление устройством
обработка прерываний
операции ввода/вывода
Теперь давайте разберемся подробнее в этих функциях ядра...
Функции ядра в операционной системе
Управление процессами
Создание, выполнение и завершение процессов выполняются внутри системы всякий раз, когда система находится во включенном состоянии (режиме ON). Процесс содержит всю информацию о задаче, которую необходимо выполнить. Таким образом, для выполнения любой задачи внутри системы создается процесс. В то же время существует множество процессов, которые находятся в активном состоянии внутри системы. Управление всеми этими процессами очень важно для предупреждения тупиковых ситуаций и для правильного функционирования системы, и оно осуществляется ядром.
Управление памятью
Всякий раз, когда процесс создается и выполняется, он занимает память, и когда он завершается, память должна быть освобождена и может быть использована снова. Но память должна быть обработана кем-то, чтобы освобожденная память могла быть снова назначена новым процессам. Эта задача также выполняется ядром. Ядро отслеживает, какая часть памяти в данный момент выделена и какая часть доступна для выделения другим процессам.
Управление устройствами
Ядро также управляет всеми различными устройствами, подключенными к системе, такими как устройства ввода и вывода и т. д.
Обработка прерываний
При выполнении процессов возникают условия, при которых сначала необходимо решить задачи с большим приоритетом. В этих случаях ядро должно прерывать выполнение текущего процесса и обрабатывать задачи с большим приоритетом, которые были получены в промежутке.
Операции ввода/вывода
Поскольку ядро управляет всеми подключенными к нему устройствами, оно также отвечает за обработку всех видов входных и выходных данных, которыми обмениваются эти устройства. Таким образом, вся информация, которую система получает от пользователя, и все выходные данные, которые пользователь получает через различные приложения, обрабатываются ядром.
Типы ядер в операционной системе
Как выше было сказано ядро - это программа, которая является основным компонентом операционной системы. Теперь давайте рассмотрим типы ядер.
Ядро подразделяется на два основных типа:
монолитное ядро
Микро-Ядра
Существует еще один тип ядра, который является комбинацией этих двух типов ядер и известен как гибридное ядро. Рассмотрим каждый из них вкратце...
Монолитное Ядро
В этом типе архитектуры ядра все функции, такие как управление процессами, управление памятью, обработка прерываний и т. д. выполняются в пространстве ядра.Монолитные ядра сначала состояли только из одного модуля, и этот модуль отвечал за все функции, которые выполнялись ядром. Это увеличило производительность ОС, так как все функции присутствовали внутри одного модуля, но это также привело к серьезным недостаткам, таким как большой размер ядра, очень низкая надежность, потому что даже если одна функция ядра отказала, это привело к отказу всей программы ядра и плохому обслуживанию, по той же причине. Таким образом, для повышения производительности системы был применен модульный подход в монолитных ядрах, в которых каждая функция присутствовала в отдельном модуле внутри пространства ядра. Таким образом, для исправления любых ошибок или в случае сбоя, только этот конкретный модуль был выгружен и загружен после исправления.
Микроядра
В этом типе архитектуры ядра основные пользовательские службы, такие как управление драйверами устройств, управление стеком протоколов, управление файловой системой и управление графикой, присутствуют в пространстве пользователя, а остальные функции управление памятью, управление процессами присутствует внутри пространства ядра. Таким образом, всякий раз, когда система имеет потребность в услугах, присутствующих в пространстве ядра, ОС переключается в режим ядра, а для служб пользовательского уровня она переключается в режим пользователя. Этот тип архитектуры ядра уменьшает размер ядра, но скорость выполнения процессов и предоставления других услуг значительно ниже, чем у монолитных ядер.
Гибридное Ядро
Для наилучшей производительности системы нам требуется как высокая скорость, так и малый размер ядра, чтобы наша система могла иметь максимальную эффективность. Поэтому для решения этой задачи был разработан новый тип ядра, который представлял собой комбинацию монолитного ядра и микроядра. Этот тип ядра известен как гибридное ядро. Такой тип архитектуры используется практически во всех системах, которые производятся в настоящее время.