Команда dig: что это и как использовать
dig (domain information groper) — это мощный инструмент для работы с DNS. Он помогает получать информацию о домене, такой как A-записи, CNAME, MX-записи и другие.
Этот инструмент полезен как для системных администраторов, так и для специалистов по сетям, позволяя диагностировать и анализировать DNS-запросы.
Пример использования команды dig
Запустите команду с указанием домена:
После выполнения запроса вы получите детализированный отчет. Рассмотрим ключевые секции результата:
1️⃣ QUESTION SECTION
Содержит информацию о том, что вы запрашиваете. В данном случае запрашивается A-запись для google.com.
2️⃣ ANSWER SECTION
Здесь отображается основная информация, например, IP-адрес, связанный с доменом:
Это указывает, что домен google.com связан с IP-адресом 172.217.166.78.
3️⃣ AUTHORITY SECTION
Содержит список авторитетных DNS-серверов, которые могут дать больше информации о домене.
4️⃣ ADDITIONAL SECTION
Показывает дополнительные данные, например, IP-адреса серверов, указанных в AUTHORITY SECTION.
5️⃣ Дополнительные данные
• Query time: время, затраченное на выполнение запроса.
• SERVER: сервер, который обработал запрос.
• MSG SIZE rcvd: общий размер ответа.
Часто используемые команды
Запрос конкретной записи (например, MX):
Использование другого DNS-сервера:
Вывод краткой информации:
dig (domain information groper) — это мощный инструмент для работы с DNS. Он помогает получать информацию о домене, такой как A-записи, CNAME, MX-записи и другие.
Этот инструмент полезен как для системных администраторов, так и для специалистов по сетям, позволяя диагностировать и анализировать DNS-запросы.
Пример использования команды dig
Запустите команду с указанием домена:
$ dig google.com
После выполнения запроса вы получите детализированный отчет. Рассмотрим ключевые секции результата:
Содержит информацию о том, что вы запрашиваете. В данном случае запрашивается A-запись для google.com.
Здесь отображается основная информация, например, IP-адрес, связанный с доменом:
google.com. 72 IN A 172.217.166.78
Это указывает, что домен google.com связан с IP-адресом 172.217.166.78.
Содержит список авторитетных DNS-серверов, которые могут дать больше информации о домене.
Показывает дополнительные данные, например, IP-адреса серверов, указанных в AUTHORITY SECTION.
• Query time: время, затраченное на выполнение запроса.
• SERVER: сервер, который обработал запрос.
• MSG SIZE rcvd: общий размер ответа.
Часто используемые команды
Запрос конкретной записи (например, MX):
dig google.com MX
Использование другого DNS-сервера:
dig @8.8.8.8 google.com
Вывод краткой информации:
dig +short google.com
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤1
Forwarded from Cyber Media
DDoS-атаки продолжают оставаться одной из самых серьезных угроз для компаний по всему миру.
Они способны парализовать работу сайтов, приложений и даже целых инфраструктур, нанося значительный ущерб бизнесу.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍2
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
Пример использования:
cat /proc/<PID>/status | grep Cap
Например, чтобы разрешить ping без root-прав:
sudo setcap cap_net_raw=ep /bin/ping
getcap /bin/ping
Capabilities повышают безопасность, ограничивая доступ только необходимыми правами.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤1
Экспорт CSV в MySQL
Файлы CSV (Comma Separated Values) — это удобный формат для переноса данных между различными системами, включая базы данных MySQL.
Экспорт MySQL в CSV с phpMyAdmin
Этот способ подходит для тех, кто предпочитает графический интерфейс.
1. Войдите в phpMyAdmin.
2. Нажмите на вкладку Databases (Базы данных) и выберите нужную базу.
3. Отметьте таблицы, которые хотите экспортировать.
4. Нажмите Export. Выберите формат CSV и нажмите Go.
5. Сохраните файл в предложенной директории.
Экспорт MySQL в CSV с помощью командной строки
Для тех, кто работает через терминал:
1️⃣ Войдите в оболочку MySQL.
2️⃣ Переключитесь на нужную базу данных.
3️⃣ Используйте команду:
Замените myTable на название таблицы, а /path/to/myExportFile.csv на путь для сохранения файла.
Дополнительные возможности:
• Экспортировать только определённые столбцы:
• Добавить временную метку к имени файла:
Файлы CSV (Comma Separated Values) — это удобный формат для переноса данных между различными системами, включая базы данных MySQL.
В этой части мы рассмотрим, как экспортировать данные MySQL в файл CSV с использованием phpMyAdmin и командной строки.
Экспорт MySQL в CSV с phpMyAdmin
Этот способ подходит для тех, кто предпочитает графический интерфейс.
1. Войдите в phpMyAdmin.
2. Нажмите на вкладку Databases (Базы данных) и выберите нужную базу.
3. Отметьте таблицы, которые хотите экспортировать.
4. Нажмите Export. Выберите формат CSV и нажмите Go.
5. Сохраните файл в предложенной директории.
Экспорт MySQL в CSV с помощью командной строки
Для тех, кто работает через терминал:
SELECT * FROM myTable
INTO OUTFILE '/path/to/myExportFile.csv'
FIELDS ENCLOSED BY '"'
TERMINATED BY ','
LINES TERMINATED BY '\n';
Замените myTable на название таблицы, а /path/to/myExportFile.csv на путь для сохранения файла.
Дополнительные возможности:
• Экспортировать только определённые столбцы:
SELECT column1, column2 FROM myTable WHERE column3 = 'value';
• Добавить временную метку к имени файла:
SET @FILENAME = CONCAT('/path/to/export_', DATE_FORMAT(NOW(), '%Y%m%d_%H%i%s'), '.csv');
SELECT * FROM myTable INTO OUTFILE @FILENAME
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤2
Какой командой можно создать зашифрованный LUKS-том в Linux?
Anonymous Quiz
18%
mkfs.luks
29%
cryptsetup luksFormat
17%
lvm luksCreate
36%
mkfs.ext4 -encrypt
❤5👍2🔥1
Импорт CSV в MySQL
Импорт CSV-файлов в MySQL позволяет быстро добавить внешние данные в базу данных.
Рассмотрим два метода: через командную строку и phpMyAdmin.
Импорт CSV через командную строку
1️⃣ Войдите в MySQL:
Замените username своим именем пользователя MySQL.
2️⃣ Создайте таблицу, соответствующую структуре CSV:
3️⃣ Импортируйте данные:
Параметр IGNORE 1 ROWS пропускает первую строку, если в ней находятся заголовки столбцов.
Импорт CSV через phpMyAdmin
1. Откройте phpMyAdmin и выберите базу данных.
2. Нажмите на таблицу, в которую вы хотите импортировать данные.
3. Перейдите во вкладку Import.
4. Выберите CSV-файл и настройте формат импорта.
5. Нажмите Go для завершения импорта.
С помощью этих методов вы сможете эффективно работать с данными MySQL в формате CSV.
Импорт CSV-файлов в MySQL позволяет быстро добавить внешние данные в базу данных.
Рассмотрим два метода: через командную строку и phpMyAdmin.
Импорт CSV через командную строку
mysql -u username -p
Замените username своим именем пользователя MySQL.
CREATE TABLE myTable (
id INT NOT NULL AUTO_INCREMENT,
column1 VARCHAR(255),
column2 DATE,
column3 DECIMAL(10,2),
PRIMARY KEY (id)
);
LOAD DATA INFILE '/path/to/importFile.csv'
INTO TABLE myTable
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;
Параметр IGNORE 1 ROWS пропускает первую строку, если в ней находятся заголовки столбцов.
Импорт CSV через phpMyAdmin
1. Откройте phpMyAdmin и выберите базу данных.
2. Нажмите на таблицу, в которую вы хотите импортировать данные.
3. Перейдите во вкладку Import.
4. Выберите CSV-файл и настройте формат импорта.
5. Нажмите Go для завершения импорта.
С помощью этих методов вы сможете эффективно работать с данными MySQL в формате CSV.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Исходный код Linux превысил 40 миллионов строк
В январе 2025 года размер исходного кода ядра Linux превысил 40 миллионов строк, удвоившись с 2015 года.
За последние два месяца код увеличился на 400 тысяч строк, включая комментарии и документацию.
Например, из 4,5 млн строк для всех процессоров архитектура x86 использует менее 500 тысяч. Драйверы AMD Radeon, включая документацию, занимают около 5 млн строк.
Активность разработчиков в 2024 году
В 2024 году ядро получило 3,69 млн новых строк, при этом было удалено 1,49 млн. Общее число коммитов составило 1 324 647 от 4807 разработчиков, что меньше прошлых лет.
В январе 2025 года размер исходного кода ядра Linux превысил 40 миллионов строк, удвоившись с 2015 года.
За последние два месяца код увеличился на 400 тысяч строк, включая комментарии и документацию.
Большая часть кода может быть неактуальна для конкретной системы.
Например, из 4,5 млн строк для всех процессоров архитектура x86 использует менее 500 тысяч. Драйверы AMD Radeon, включая документацию, занимают около 5 млн строк.
Активность разработчиков в 2024 году
В 2024 году ядро получило 3,69 млн новых строк, при этом было удалено 1,49 млн. Общее число коммитов составило 1 324 647 от 4807 разработчиков, что меньше прошлых лет.
Линус Торвальдс внёс 2877 коммитов, в основном за счёт слияний. Среди активных участников — Кшиштоф Козловски (Linaro), Якуб Кичински (Meta*) и другие.
👍7❤1👀1
Три варианта инициализации ОС в Linux
После загрузки ядра Linux система переходит к инициализации.
⏺ SysVinit — классическая Unix-инициализация
SysVinit — самый старый вариант, основанный на уровнях загрузки (runlevel). Всего их семь, от 0 (выключение системы) до 6 (перезагрузка).
При старте системы выполняются скрипты из /etc/rc.d/, которые запускают или останавливают службы. Например:
• service ssh start — запуск SSH
• service rsync stop — остановка Rsync
• telinit 1 — переход в однопользовательский режим
Этот метод инициализации устарел и в современных дистрибутивах заменён на systemd.
⏺ Systemd — современный стандарт
Systemd использует юниты (unit) для управления службами, устройствами и точками монтирования. Юниты хранятся в /usr/lib/systemd и /etc/systemd.
Основные команды для работы:
• systemctl list-units — просмотр запущенных юнитов
• systemctl start crond — запуск службы
• systemctl set-default multi-user.target — установка загрузочного уровня по умолчанию
Systemd заменил старый /etc/inittab, добавил поддержку параллельного запуска процессов и систему логирования journald.
⏺ Upstart — переходный вариант
Upstart использовался в Ubuntu как замена SysVinit. Главная особенность — события (event-driven model). Службы запускаются и останавливаются в зависимости от событий системы.
Файлы конфигурации хранятся в /etc/init/ и управляются командой initctl:
• initctl start ufw — запуск UFW
• initctl stop ufw — остановка
• cat /etc/init/rc-sysinit.conf — просмотр конфигурации
Upstart применялся в Ubuntu, но был вытеснен systemd.
В следующем посте продолжим…
После загрузки ядра Linux система переходит к инициализации.
В зависимости от дистрибутива и версии могут использоваться три основные системы инициализации: SysVinit, systemd и Upstart.
SysVinit — самый старый вариант, основанный на уровнях загрузки (runlevel). Всего их семь, от 0 (выключение системы) до 6 (перезагрузка).
При старте системы выполняются скрипты из /etc/rc.d/, которые запускают или останавливают службы. Например:
• service ssh start — запуск SSH
• service rsync stop — остановка Rsync
• telinit 1 — переход в однопользовательский режим
Этот метод инициализации устарел и в современных дистрибутивах заменён на systemd.
Systemd использует юниты (unit) для управления службами, устройствами и точками монтирования. Юниты хранятся в /usr/lib/systemd и /etc/systemd.
Основные команды для работы:
• systemctl list-units — просмотр запущенных юнитов
• systemctl start crond — запуск службы
• systemctl set-default multi-user.target — установка загрузочного уровня по умолчанию
Systemd заменил старый /etc/inittab, добавил поддержку параллельного запуска процессов и систему логирования journald.
Upstart использовался в Ubuntu как замена SysVinit. Главная особенность — события (event-driven model). Службы запускаются и останавливаются в зависимости от событий системы.
Файлы конфигурации хранятся в /etc/init/ и управляются командой initctl:
• initctl start ufw — запуск UFW
• initctl stop ufw — остановка
• cat /etc/init/rc-sysinit.conf — просмотр конфигурации
Upstart применялся в Ubuntu, но был вытеснен systemd.
В следующем посте продолжим…
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥8❤1👎1
Исследователь Wiz Research нашёл открытую базу данных DeepSeek
Сначала исследователи собрали информацию о поддоменах deepseek[.]com, просканировали порты (Masscan, Naabu) и проверили веб-сервисы (httpx).
Они нашли несколько доступных ресурсов, включая
Анализ через Nuclei показал, что база ClickHouse не требовала аутентификации. В ней хранилось более миллиона строк логов, включая историю чатов, ключи API и внутренние данные DeepSeek.
Эксперт из Wiz Research с ником Nagli провёл пентест DeepSeek и обнаружил открытую базу данных ClickHouse.
Сначала исследователи собрали информацию о поддоменах deepseek[.]com, просканировали порты (Masscan, Naabu) и проверили веб-сервисы (httpx).
Они нашли несколько доступных ресурсов, включая
oauth2callback.deepseek.com
и dev.deepseek.com.
Анализ через Nuclei показал, что база ClickHouse не требовала аутентификации. В ней хранилось более миллиона строк логов, включая историю чатов, ключи API и внутренние данные DeepSeek.
Исследователи сообщили о проблеме, и компания быстро закрыла доступ.
👍10👎3🤯3❤1
Как работает Systemd в Linux?
Продолжаем говорить о системах инициализации Linux
Systemd — это современная система инициализации в Linux, пришедшая на смену SysVinit и Upstart. Она управляет процессами через юниты (units), которые могут быть:
• .service — службы
• .mount — точки монтирования
• .device — устройства
• .socket — сокеты
Где хранятся юниты?
⏺ /usr/lib/systemd — системные юниты, устанавливаемые с ПО
⏺ /etc/systemd — юниты, редактируемые администратором
Основные команды Systemd
• systemctl list-units — список запущенных юнитов
• systemctl status crond — статус службы
• systemctl start|stop|restart crond — управление сервисами
• systemctl set-default multi-user.target — смена режима загрузки
Runlevel в Systemd
Systemd заменил традиционные runlevel на target. Например:
• runlevel 3 → multi-user.target
• runlevel 5 → graphical.target
Список активных target можно посмотреть командой:
Для перехода в другой режим:
Журналирование в Systemd
Systemd включает мощную систему логирования journald. Основные команды:
⏺ journalctl -f — просмотр событий в реальном времени
⏺ journalctl -n 10 — последние 10 записей
Продолжаем говорить о системах инициализации Linux
Systemd — это современная система инициализации в Linux, пришедшая на смену SysVinit и Upstart. Она управляет процессами через юниты (units), которые могут быть:
• .service — службы
• .mount — точки монтирования
• .device — устройства
• .socket — сокеты
Где хранятся юниты?
Основные команды Systemd
• systemctl list-units — список запущенных юнитов
• systemctl status crond — статус службы
• systemctl start|stop|restart crond — управление сервисами
• systemctl set-default multi-user.target — смена режима загрузки
Runlevel в Systemd
Systemd заменил традиционные runlevel на target. Например:
• runlevel 3 → multi-user.target
• runlevel 5 → graphical.target
Список активных target можно посмотреть командой:
systemctl list-units --type=target
Для перехода в другой режим:
systemctl isolate rescue.target
Журналирование в Systemd
Systemd включает мощную систему логирования journald. Основные команды:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21❤1
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
LVM (Logical Volume Manager) — это система управления логическими томами, которая даёт гибкость в управлении дисковым пространством. В отличие от традиционного разбиения диска, LVM позволяет динамически изменять размер разделов без потери данных.
Основные компоненты:
Physical Volume (PV) — физические устройства, такие как жесткие диски или их разделы. Они объединяются в Volume Group (VG), которая представляет собой пул свободного места. Из VG создаются Logical Volumes (LV), которые работают как обычные разделы, но могут изменяться в размере на лету.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤1
Как архивировать и распаковывать файлы с помощью PowerShell
Формат ZIP позволяет уменьшить размер файлов, экономить дисковое пространство, шифровать данные и упрощать их передачу.
PowerShell предоставляет удобные инструменты для работы с архивами, позволяя быстро сжимать и разархивировать файлы без стороннего ПО.
Архивирование файлов в ZIP
В PowerShell для создания архивов используется командлет Compress-Archive. Он позволяет сжимать как отдельные файлы, так и целые папки, создавая ZIP-архив.
⏺ Пример 1: архивирование нескольких файлов
Чтобы заархивировать один или несколько файлов, используйте следующую команду:
Эта команда создаст ZIP-архив Archive.zip, содержащий указанные файлы. Если архив с таким именем уже существует, PowerShell выдаст ошибку.
⏺ Пример 2: архивирование всей папки
Чтобы создать архив из содержимого папки вместе с её подпапками, используйте команду:
В этом случае PowerShell включит в архив всё содержимое указанной папки, включая файлы и вложенные каталоги.
⏺ Пример 3: создание архива только из файлов определённого типа
Если вам нужно добавить в архив только файлы определённого типа (например, изображения .jpg), используйте символ подстановки *:
Эта команда создаст ZIP-архив, содержащий только файлы .jpg из указанной папки. Подкаталоги при этом не включаются.
⏺ Пример 4: добавление новых файлов в уже существующий архив
PowerShell позволяет обновлять архивы без их пересоздания с нуля. Если вам нужно добавить файлы или заменить старые версии, используйте флаг -Update:
При этом новые файлы будут добавлены, а существующие файлы в архиве заменятся на более свежие версии.
Распаковка ZIP-архива
PowerShell также позволяет быстро разархивировать файлы с помощью командлета Expand-Archive.
⏺ Пример 1: извлечение архива в указанную папку
Для распаковки архива используйте команду:
Если указанной папки не существует, PowerShell автоматически создаст её перед распаковкой.
⏺ Пример 2: принудительная распаковка с перезаписью файлов
Если в папке назначения уже есть файлы с такими же именами, PowerShell выдаст ошибку. Чтобы избежать этого, можно использовать флаг -Force, который перезапишет существующие файлы:
Формат ZIP позволяет уменьшить размер файлов, экономить дисковое пространство, шифровать данные и упрощать их передачу.
PowerShell предоставляет удобные инструменты для работы с архивами, позволяя быстро сжимать и разархивировать файлы без стороннего ПО.
Архивирование файлов в ZIP
В PowerShell для создания архивов используется командлет Compress-Archive. Он позволяет сжимать как отдельные файлы, так и целые папки, создавая ZIP-архив.
Чтобы заархивировать один или несколько файлов, используйте следующую команду:
Compress-Archive -LiteralPath "C:\Path\To\File1.txt", "C:\Path\To\File2.txt" -DestinationPath "C:\Path\To\Archive.zip"
Эта команда создаст ZIP-архив Archive.zip, содержащий указанные файлы. Если архив с таким именем уже существует, PowerShell выдаст ошибку.
Чтобы создать архив из содержимого папки вместе с её подпапками, используйте команду:
Compress-Archive -LiteralPath "C:\Path\To\Folder" -DestinationPath "C:\Path\To\Archive.zip"
В этом случае PowerShell включит в архив всё содержимое указанной папки, включая файлы и вложенные каталоги.
Если вам нужно добавить в архив только файлы определённого типа (например, изображения .jpg), используйте символ подстановки *:
Compress-Archive -Path "C:\Path\To\Files\*.jpg" -DestinationPath "C:\Path\To\Archive.zip"
Эта команда создаст ZIP-архив, содержащий только файлы .jpg из указанной папки. Подкаталоги при этом не включаются.
PowerShell позволяет обновлять архивы без их пересоздания с нуля. Если вам нужно добавить файлы или заменить старые версии, используйте флаг -Update:
Compress-Archive -Path "C:\Path\To\Files" -Update -DestinationPath "C:\Path\To\Archive.zip"
При этом новые файлы будут добавлены, а существующие файлы в архиве заменятся на более свежие версии.
Распаковка ZIP-архива
PowerShell также позволяет быстро разархивировать файлы с помощью командлета Expand-Archive.
Для распаковки архива используйте команду:
Expand-Archive -LiteralPath "C:\Path\To\Archive.zip" -DestinationPath "C:\Path\To\Extracted"
Если указанной папки не существует, PowerShell автоматически создаст её перед распаковкой.
Если в папке назначения уже есть файлы с такими же именами, PowerShell выдаст ошибку. Чтобы избежать этого, можно использовать флаг -Force, который перезапишет существующие файлы:
Expand-Archive -LiteralPath "C:\Path\To\Archive.zip" -DestinationPath "C:\Path\To\Extracted" -Force
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥5
Какой командой можно настроить лимит на максимальное количество подключений к определенному порту в Linux с использованием iptables?
Anonymous Quiz
46%
iptables -A INPUT -p tcp --dport 22 -m limit --limit 3/m -j ACCEPT
36%
iptables -A INPUT -p tcp --dport 22 -m connlimit --connlimit-above 3 -j DROP
11%
iptables -A OUTPUT -p tcp --dport 22 -m hashlimit --hashlimit 3 --hashlimit-mode srcip -j ACCEPT
7%
iptables -A INPUT -p tcp --dport 22 -j REJECT
👍7🔥2🤔2
Управление модулями ядра в Linux
Модуль ядра (Kernel Module, ko-файл) — это исполняемый файл, который расширяет функциональность ядра, например, добавляя поддержку файловых систем, сетевых интерфейсов или драйверов оборудования.
Модули ядра загружаются автоматически при необходимости, но также могут управляться вручную.
Загрузка модулей ядра
Если Linux не загрузил нужный модуль автоматически, его можно загрузить вручную с помощью modprobe:
Например, для загрузки модуля vfat (драйвер FAT32):
Если modprobe не находит модуль, можно попробовать загрузить его напрямую:
Но insmod не управляет зависимостями, поэтому предпочтительнее modprobe.
Удаление модулей ядра
Иногда нужно выгрузить модуль, например, при отладке или обновлении.
Удаление модуля выполняется командой:
Если модуль используется, его можно принудительно выгрузить:
Чтобы найти процессы, использующие модуль:
Добавление модуля в автозагрузку
Чтобы загружать модуль при старте системы, добавьте его в файл /etc/modules:
Отключение автозагрузки модуля
Если модуль загружается автоматически, но его нужно отключить, можно занести его в чёрный список (blacklist):
Затем обновляем конфигурацию и перезагружаем систему:
Зачем управлять модулями ядра?
• Отладка и тестирование (например, при замене драйвера)
• Оптимизация системы (исключение ненужных драйверов)
• Безопасность (запрет загрузки уязвимых или нежелательных модулей)
Если нужно полностью удалить модуль из системы, его можно найти и удалить:
Модуль ядра (Kernel Module, ko-файл) — это исполняемый файл, который расширяет функциональность ядра, например, добавляя поддержку файловых систем, сетевых интерфейсов или драйверов оборудования.
Модули ядра загружаются автоматически при необходимости, но также могут управляться вручную.
Загрузка модулей ядра
Если Linux не загрузил нужный модуль автоматически, его можно загрузить вручную с помощью modprobe:
modprobe <имя_модуля>
Например, для загрузки модуля vfat (драйвер FAT32):
modprobe vfat
Если modprobe не находит модуль, можно попробовать загрузить его напрямую:
insmod /lib/modules/$(uname -r)/kernel/drivers/net/<module>.ko
Но insmod не управляет зависимостями, поэтому предпочтительнее modprobe.
Удаление модулей ядра
Иногда нужно выгрузить модуль, например, при отладке или обновлении.
Удаление модуля выполняется командой:
modprobe -r <имя_модуля>
Если модуль используется, его можно принудительно выгрузить:
rmmod <имя_модуля>
Чтобы найти процессы, использующие модуль:
lsmod | grep <имя_модуля>
lsof | grep <имя_модуля>
Добавление модуля в автозагрузку
Чтобы загружать модуль при старте системы, добавьте его в файл /etc/modules:
echo "<имя_модуля>" | sudo tee -a /etc/modules
Отключение автозагрузки модуля
Если модуль загружается автоматически, но его нужно отключить, можно занести его в чёрный список (blacklist):
echo "blacklist <имя_модуля>" | sudo tee -a /etc/modprobe.d/blacklist.conf
Затем обновляем конфигурацию и перезагружаем систему:
sudo update-initramfs -u
reboot
Зачем управлять модулями ядра?
• Отладка и тестирование (например, при замене драйвера)
• Оптимизация системы (исключение ненужных драйверов)
• Безопасность (запрет загрузки уязвимых или нежелательных модулей)
Если нужно полностью удалить модуль из системы, его можно найти и удалить:
find /lib/modules/$(uname -r) -name "<модуль>.ko" -delete
👍15🔥2
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
Проверка режима seccomp у процесса:
cat /proc/<PID>/status | grep Seccomp
Применение seccomp в Docker:
docker run --security-opt seccomp=restricted.json alpine
Seccomp повышает безопасность контейнеров и песочниц, блокируя нежелательные syscalls.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3
rdiff-backup: Инкрементальное резервное копирование в Linux
rdiff-backup — мощный инструмент для создания инкрементных резервных копий, который объединяет простоту работы с эффективным использованием дискового пространства.
Он позволяет копировать данные как на локальные, так и на удалённые серверы, сохраняя историю изменений.
Ключевые особенности rdiff-backup
⏺ Простота использования – создание резервной копии выполняется одной командой.
⏺ Инкрементное хранение – сохраняются только изменения, что экономит место.
⏺ Функция зеркалирования – позволяет быстро восстановить актуальное состояние.
⏺ Эффективное использование пространства – старые резервные копии хранятся в компактном виде.
⏺ Поддержка расширенных атрибутов (ACL, xattrs) – сохраняются все метаданные файлов.
⏺ Кроссплатформенность – работает на Linux, Windows, BSD и macOS.
Как установить rdiff-backup в Linux
Ubuntu и Debian
Для современных версий Ubuntu (20.04+) и Debian:
Для старых версий:
CentOS и RHEL 7
Fedora
Установка через PyPi (для всех дистрибутивов)
Debian/Ubuntu:
Fedora:
Создание резервной копии с rdiff-backup
Простейший способ сделать резервную копию:
Здесь /home/user/documents – исходные данные, а /mnt/backup – папка, где будет храниться резервная копия.
Для копирования на удалённый сервер:
Восстановление данных
Восстановить последнюю резервную копию можно так:
Чтобы откатиться к резервной копии, созданной 7 дней назад:
Очистка старых резервных копий
Удаление данных старше 30 дней:
rdiff-backup — мощный инструмент для создания инкрементных резервных копий, который объединяет простоту работы с эффективным использованием дискового пространства.
Он позволяет копировать данные как на локальные, так и на удалённые серверы, сохраняя историю изменений.
Ключевые особенности rdiff-backup
Как установить rdiff-backup в Linux
Ubuntu и Debian
Для современных версий Ubuntu (20.04+) и Debian:
sudo apt install rdiff-backup
Для старых версий:
sudo add-apt-repository ppa:rdiff-backup/rdiff-backup-backports
sudo apt update
sudo apt install rdiff-backup
CentOS и RHEL 7
sudo yum install yum-plugin-copr epel-release
sudo yum copr enable frankcrawford/rdiff-backup
sudo yum install rdiff-backup
Fedora
sudo dnf install rdiff-backup
Установка через PyPi (для всех дистрибутивов)
Debian/Ubuntu:
sudo apt install python3-pip python3-setuptools python3-pylibacl python3-pyxattr
sudo pip3 install rdiff-backup
Fedora:
sudo dnf install python3-pip python3-setuptools py3libacl python3-pyxattr
sudo pip3 install rdiff-backup
Создание резервной копии с rdiff-backup
Простейший способ сделать резервную копию:
rdiff-backup /home/user/documents /mnt/backup
Здесь /home/user/documents – исходные данные, а /mnt/backup – папка, где будет храниться резервная копия.
Для копирования на удалённый сервер:
rdiff-backup /home/user/documents user@remote-server::/backup
Восстановление данных
Восстановить последнюю резервную копию можно так:
rdiff-backup -r now /mnt/backup /home/user/documents
Чтобы откатиться к резервной копии, созданной 7 дней назад:
rdiff-backup -r 7D /mnt/backup /home/user/documents
Очистка старых резервных копий
Удаление данных старше 30 дней:
rdiff-backup --remove-older-than 30D /mnt/backup
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤2
Как использовать winget: менеджер пакетов Windows 10
winget – это официальный менеджер пакетов для Windows, который упрощает установку программ одним командой.
Вместо того чтобы искать установочный файл в интернете, загружать его и проходить мастер установки, теперь можно просто ввести команду, и Windows сделает все за вас.
Что такое Windows Package Manager?
Менеджеры пакетов давно популярны в Linux. Они позволяют устанавливать и обновлять программы из командной строки, исключая ручной поиск и загрузку.
Microsoft внедрила аналогичный подход в Windows с помощью winget.
Пример установки Microsoft PowerToys:
Windows Package Manager — проект с открытым исходным кодом, доступный на GitHub.
Как установить winget
На новых версиях Windows 10 и 11 winget предустановлен. Если у вас более старая система или winget отсутствует, его можно установить вручную:
Через GitHub
1. Перейдите на страницу релизов winget
2. Скачайте .appxbundle
3. Установите, дважды кликнув по файлу
После установки откройте командную строку и выполните:
Если установка прошла успешно, отобразится версия winget.
Основные команды winget
Вы можете использовать winget в PowerShell, Windows Terminal или классической cmd.
1. Поиск приложений
Чтобы найти программу, замените name на ключевое слово:
Пример поиска Google Chrome:
2. Установка приложений
Для установки программы используйте:
Пример установки Zoom:
3. Просмотр информации о программе
Чтобы узнать подробности о приложении:
Пример:
4. Просмотр доступных программ
Список всех приложений в репозитории Microsoft:
5. Управление источниками
Чтобы посмотреть список доступных репозиториев:
В первой версии winget использует только официальный репозиторий Microsoft, но в будущем появится поддержка сторонних источников.
6. Получение справки
Чтобы узнать больше о командах, добавьте -?:
winget – это официальный менеджер пакетов для Windows, который упрощает установку программ одним командой.
Вместо того чтобы искать установочный файл в интернете, загружать его и проходить мастер установки, теперь можно просто ввести команду, и Windows сделает все за вас.
Что такое Windows Package Manager?
Менеджеры пакетов давно популярны в Linux. Они позволяют устанавливать и обновлять программы из командной строки, исключая ручной поиск и загрузку.
Microsoft внедрила аналогичный подход в Windows с помощью winget.
Пример установки Microsoft PowerToys:
winget install powertoys
Windows Package Manager — проект с открытым исходным кодом, доступный на GitHub.
Как установить winget
На новых версиях Windows 10 и 11 winget предустановлен. Если у вас более старая система или winget отсутствует, его можно установить вручную:
Через GitHub
1. Перейдите на страницу релизов winget
2. Скачайте .appxbundle
3. Установите, дважды кликнув по файлу
После установки откройте командную строку и выполните:
winget --version
Если установка прошла успешно, отобразится версия winget.
Основные команды winget
Вы можете использовать winget в PowerShell, Windows Terminal или классической cmd.
1. Поиск приложений
Чтобы найти программу, замените name на ключевое слово:
winget search name
Пример поиска Google Chrome:
winget search chrome
2. Установка приложений
Для установки программы используйте:
winget install name
Пример установки Zoom:
winget install zoom
3. Просмотр информации о программе
Чтобы узнать подробности о приложении:
winget show name
Пример:
winget show vscode
4. Просмотр доступных программ
Список всех приложений в репозитории Microsoft:
winget list
5. Управление источниками
Чтобы посмотреть список доступных репозиториев:
winget source list
В первой версии winget использует только официальный репозиторий Microsoft, но в будущем появится поддержка сторонних источников.
6. Получение справки
Чтобы узнать больше о командах, добавьте -?:
winget search -?
👍19❤4
Какая команда используется для отображения активных TCP-соединений на сервере в Linux, включая их состояние?
Anonymous Quiz
42%
netstat -tuln
22%
ss -tuln
10%
lsof -i
26%
netstat -an
🤬21👏4🗿4❤1😁1