Linux tip: когда процесс завис, не убивайте его вслепую
Если процесс завис, не обязательно сразу делать
Можно подключиться к нему через
Команда:
Что это даёт:
видно, читает ли процесс данные
видно, пишет ли он куда-то
видно, какие файлы открывает
можно понять, ждёт ли он stdin, файл, сокет или pipe
не нужно менять код
не нужно перезапускать сервис
Например, если программа «висит», strace может показать, что она просто ждёт read() из file descriptor. То есть проблема не в CPU, не в deadlock и не в магии Linux, а в том, что процесс ждёт ввод.
Это особенно полезно в проде, когда нельзя просто взять и перезапустить сервис ради эксперимента.
Базовый сценарий:
И дальше вы видите, чем процесс реально занят.
strace - один из тех инструментов, которые превращают «оно зависло» в нормальный технический диагноз.
Если процесс завис, не обязательно сразу делать
kill -9 и гадать, что там произошло.Можно подключиться к нему через
strace и посмотреть в реальном времени, на каком системном вызове он застрял.Команда:
strace -p <PID> -e trace=read,write,open
Что это даёт:
видно, читает ли процесс данные
видно, пишет ли он куда-то
видно, какие файлы открывает
можно понять, ждёт ли он stdin, файл, сокет или pipe
не нужно менять код
не нужно перезапускать сервис
Например, если программа «висит», strace может показать, что она просто ждёт read() из file descriptor. То есть проблема не в CPU, не в deadlock и не в магии Linux, а в том, что процесс ждёт ввод.
Это особенно полезно в проде, когда нельзя просто взять и перезапустить сервис ради эксперимента.
Базовый сценарий:
pidof my_process
sudo strace -p <PID> -e trace=read,write
И дальше вы видите, чем процесс реально занят.
strace - один из тех инструментов, которые превращают «оно зависло» в нормальный технический диагноз.
👍35❤11
В MIT учат операционным системам так: дают живое ядро Unix и просят его сломать
В большинстве вузов операционные системы изучают по слайдам.
Студент слушает про процессы, виртуальную память и планировщик, рисует схемы на экзамене и в итоге так и не видит, как это работает внутри. В MIT пошли другим путём. Там студенту выдают полностью рабочее ядро в духе Unix и предлагают самому в нём ковыряться, ломать и переписывать.
Это ядро называется xv6. По сути это переосмысление шестой версии Unix 1975 года, переписанное на современном C под многопроцессорные системы RISC-V. Оригинальный Unix V6 был отличным учебным материалом, но устарел и опирался на железо, которого давно нет. xv6 сохраняет идеи оригинала, но запускается на современной архитектуре и читается куда легче.
Главное, что подкупает, это размер. Всё ядро занимает около шести тысяч строк. Это объём, который реально прочитать целиком за разумное время, а не абстрактная гора кода, в которой теряешься на первой неделе. Здесь на месте процессы, системные вызовы, виртуальная память, файловые дескрипторы, каналы и планировщик. Всё это можно открыть, прочитать и тут же поэкспериментировать.
Хорошо видно это на примере каналов. Реализация чтения из pipe в файле kernel/pipe.c укладывается примерно в пятнадцать строк. Если канал пуст, читатель засыпает и ждёт. Как только писатель добавляет данные, читателя будят. Блокировка, засыпание и пробуждение согласованы всего в паре десятков строк, и этот кусок кода объясняет про синхронизацию больше, чем целая лекция про мьютексы и условные переменные.
Именно так и стоит разбираться в операционных системах, когда хочешь понять, как они работают на самом деле, а не как это описывают на высоком уровне. Отличная новость в том, что всё это выложено в открытый доступ и бесплатно. Книга и исходники лежат на сайте курса MIT 6.828, и любой желающий может пройти тот же путь, что и студенты.
https://pdos.csail.mit.edu/6.828/2025/xv6/book-riscv-rev5.pdf
В большинстве вузов операционные системы изучают по слайдам.
Студент слушает про процессы, виртуальную память и планировщик, рисует схемы на экзамене и в итоге так и не видит, как это работает внутри. В MIT пошли другим путём. Там студенту выдают полностью рабочее ядро в духе Unix и предлагают самому в нём ковыряться, ломать и переписывать.
Это ядро называется xv6. По сути это переосмысление шестой версии Unix 1975 года, переписанное на современном C под многопроцессорные системы RISC-V. Оригинальный Unix V6 был отличным учебным материалом, но устарел и опирался на железо, которого давно нет. xv6 сохраняет идеи оригинала, но запускается на современной архитектуре и читается куда легче.
Главное, что подкупает, это размер. Всё ядро занимает около шести тысяч строк. Это объём, который реально прочитать целиком за разумное время, а не абстрактная гора кода, в которой теряешься на первой неделе. Здесь на месте процессы, системные вызовы, виртуальная память, файловые дескрипторы, каналы и планировщик. Всё это можно открыть, прочитать и тут же поэкспериментировать.
Хорошо видно это на примере каналов. Реализация чтения из pipe в файле kernel/pipe.c укладывается примерно в пятнадцать строк. Если канал пуст, читатель засыпает и ждёт. Как только писатель добавляет данные, читателя будят. Блокировка, засыпание и пробуждение согласованы всего в паре десятков строк, и этот кусок кода объясняет про синхронизацию больше, чем целая лекция про мьютексы и условные переменные.
Именно так и стоит разбираться в операционных системах, когда хочешь понять, как они работают на самом деле, а не как это описывают на высоком уровне. Отличная новость в том, что всё это выложено в открытый доступ и бесплатно. Книга и исходники лежат на сайте курса MIT 6.828, и любой желающий может пройти тот же путь, что и студенты.
https://pdos.csail.mit.edu/6.828/2025/xv6/book-riscv-rev5.pdf
🔥35❤15👏4
В России могут ввести доступ к интернет-сервисам по паспорту.
Минцифры обсуждает систему подтверждения возраста пользователей в сети. По словам главы ведомства, в ближайшее время власти займутся механизмом, который позволит сайтам и онлайн-сервисам проверять, сколько лет человеку.
Формально речь идёт о защите несовершеннолетних, но по факту такая система может стать первым шагом к более жёсткой идентификации пользователей в интернете.
Минцифры обсуждает систему подтверждения возраста пользователей в сети. По словам главы ведомства, в ближайшее время власти займутся механизмом, который позволит сайтам и онлайн-сервисам проверять, сколько лет человеку.
Формально речь идёт о защите несовершеннолетних, но по факту такая система может стать первым шагом к более жёсткой идентификации пользователей в интернете.
🙈37🤣16🤬9👻9🗿8👍5🌚2👾2❤1
⚙️ ASMLings - подробный гайд на русском
ASMLings - это набор из ~32 коротких упражнений на ассемблере Intel 8086, выстроенных по возрастанию сложности: от mov ax, 0x1337 до 32-битного сложения через carry flag, циклов, подпрограмм, работы с памятью и стеком.
Полный русскоязычный гайд по asmlings — интерактивной песочнице для изучения ассемблера Intel 8086, в которой 16-битный x86-эмулятор написан на Rust.
Внутри: что это, как устроено под капотом, как установить, как читать и решать упражнения, разборы реальных задач из репозитория, готовые примеры в examples/ и шпаргалки.
https://github.com/justxor/-ASMLingsru/
ASMLings - это набор из ~32 коротких упражнений на ассемблере Intel 8086, выстроенных по возрастанию сложности: от mov ax, 0x1337 до 32-битного сложения через carry flag, циклов, подпрограмм, работы с памятью и стеком.
Полный русскоязычный гайд по asmlings — интерактивной песочнице для изучения ассемблера Intel 8086, в которой 16-битный x86-эмулятор написан на Rust.
Внутри: что это, как устроено под капотом, как установить, как читать и решать упражнения, разборы реальных задач из репозитория, готовые примеры в examples/ и шпаргалки.
https://github.com/justxor/-ASMLingsru/
👍12❤8🔥2
А вы знали, что Linux тоже можно забэкдорить?
Многие считают Linux почти неуязвимым. Но это не так.
В 2024 году злоумышленник почти 2 года тихо встраивал бэкдор в XZ Utils - базовую библиотеку сжатия, которая есть почти во всех крупных Linux-дистрибутивах.
Целью был
Один разработчик заметил проблему только потому, что
Именно из-за этого бэкдор не успел попасть в production-системы по всему миру.
Linux не неуязвим. Просто долгое время он не был главной целью. Теперь это меняется.
Многие считают Linux почти неуязвимым. Но это не так.
В 2024 году злоумышленник почти 2 года тихо встраивал бэкдор в XZ Utils - базовую библиотеку сжатия, которая есть почти во всех крупных Linux-дистрибутивах.
Целью был
sshd. При наличии правильного ключа шифрования можно было внедрять код через SSH-сертификаты входа. Тихо, без алертов, внешне всё выглядело полностью легитимно.Один разработчик заметил проблему только потому, что
sshd стал запускаться примерно на 500 мс медленнее обычного.Именно из-за этого бэкдор не успел попасть в production-системы по всему миру.
Linux не неуязвим. Просто долгое время он не был главной целью. Теперь это меняется.
😁20🔥12👍9💊4❤2
Это пошаговый маршрут изучения Linux с упором на практику. Каждый раздел содержит объяснение «почему это устроено именно так», разбор команд и обязательные задания, которые нужно выполнить руками в терминале. Чтение без повторения навыка не даёт — держите терминал открытым рядом с этим текстом.
Как работать с этим курсом: идите сверху вниз, не перепрыгивайте разделы; каждую команду набирайте руками, а не копируйте; в конце каждого блока выполняйте задание; специально ломайте систему в виртуалке и чините — это лучший способ учиться.
https://github.com/justxor/linuxfullroadmap/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥6❤5🗿1
Линус Торвальдс мог быть богаче Илона Маска. Но он выбрал другой путь.
В 2005 году его команда внезапно потеряла доступ к инструменту, с помощью которого управляла кодом Linux. Один разработчик сделал реверс-инжиниринг этой системы, и компания, которой она принадлежала, просто отключила проект без предупреждения.
Тысячи разработчиков. Никакого нормального способа совместной работы. Никакого запасного плана.
Торвальдс не стал паниковать. Он сел и написал собственную систему контроля версий с нуля.
За 10 дней.
Он назвал её Git. Уже в первый день Git отслеживал собственный исходный код. Через несколько недель на нём управлялся весь проект Linux. К концу 2005 года официально вышел Git 1.0.
А потом Линус просто отдал его бесплатно. Open source. Без компании. Без патентов. Без монетизации.
Через несколько месяцев он передал проект другим людям и вернулся к Linux, будто ничего особенного не произошло.
Зато другие быстро поняли, что он оставил на столе.
На Git вырос GitHub: 100 млн разработчиков, покупка Microsoft в 2018 году за $7,5 млрд. GitLab вышел на биржу в 2021 году с оценкой почти $12 млрд. Сегодня Git контролирует больше 85% рынка систем контроля версий.
Каждое приложение в вашем телефоне. Каждый сайт, который вы открываете. Почти всё это создаётся с помощью Git.
Торвальдс не заработал на этом $0.
Он создал самый используемый инструмент для разработчиков в истории просто потому, что его достала существующая система.
А потом отдал его бесплатно, потому что считал: такой инструмент должен быть доступен всем.
И он ни разу публично не сказал, что жалеет об этом.
В 2005 году его команда внезапно потеряла доступ к инструменту, с помощью которого управляла кодом Linux. Один разработчик сделал реверс-инжиниринг этой системы, и компания, которой она принадлежала, просто отключила проект без предупреждения.
Тысячи разработчиков. Никакого нормального способа совместной работы. Никакого запасного плана.
Торвальдс не стал паниковать. Он сел и написал собственную систему контроля версий с нуля.
За 10 дней.
Он назвал её Git. Уже в первый день Git отслеживал собственный исходный код. Через несколько недель на нём управлялся весь проект Linux. К концу 2005 года официально вышел Git 1.0.
А потом Линус просто отдал его бесплатно. Open source. Без компании. Без патентов. Без монетизации.
Через несколько месяцев он передал проект другим людям и вернулся к Linux, будто ничего особенного не произошло.
Зато другие быстро поняли, что он оставил на столе.
На Git вырос GitHub: 100 млн разработчиков, покупка Microsoft в 2018 году за $7,5 млрд. GitLab вышел на биржу в 2021 году с оценкой почти $12 млрд. Сегодня Git контролирует больше 85% рынка систем контроля версий.
Каждое приложение в вашем телефоне. Каждый сайт, который вы открываете. Почти всё это создаётся с помощью Git.
Торвальдс не заработал на этом $0.
Он создал самый используемый инструмент для разработчиков в истории просто потому, что его достала существующая система.
А потом отдал его бесплатно, потому что считал: такой инструмент должен быть доступен всем.
И он ни разу публично не сказал, что жалеет об этом.
👍58❤27🔥14
Если у вас «само всё сломалось», начните с этого:
find /etc -mtime -1 -type fКоманда покажет все обычные файлы в
/etc, которые менялись за последние 24 часа.Можно заменить
/etc на нужную директорию:find /var/www -mtime -1 -type fПолезно, когда сервер внезапно ведёт себя странно, конфиги изменились, деплой был «не у нас», а виноватых нет.
find быстро показывает, что реально трогали за последний день.Please open Telegram to view this post
VIEW IN TELEGRAM
👍24❤12🔥3✍2
🚀 В Linux каждый процесс живёт в своей версии памяти.
Два разных приложения могут одновременно использовать один и тот же адрес, например
Почему так?
Потому что процесс видит не настоящую физическую память, а virtual address space - виртуальное адресное пространство.
Когда программа делает
Если запустить такую программу в двух терминалах, адрес может оказаться одинаковым.
Но это не значит, что процессы пишут в одну и ту же память.
Для каждого процесса ядро и MMU переводят виртуальные адреса в свои физические страницы. Один и тот же виртуальный адрес в процессе A может указывать на один участок RAM, а в процессе B - на другой.
Именно поэтому процессы изолированы друг от друга.
Программа думает:
«Это моя память».
На самом деле Linux говорит:
«Это твоя иллюзия памяти. А куда она реально мапится - решаю я».
Виртуальная память - одна из тех штук, без которых не было бы нормальной изоляции процессов, безопасного multitasking, shared libraries, fork, mmap и современного Linux в целом.
Два разных приложения могут одновременно использовать один и тот же адрес, например
0x555555..., но попадать при этом в совершенно разные места физической RAM.Почему так?
Потому что процесс видит не настоящую физическую память, а virtual address space - виртуальное адресное пространство.
Когда программа делает
malloc, она получает адрес, который выглядит как обычный указатель:
int *x = malloc(sizeof(int));
*x = getpid();
printf("PID %d -> virtual address: %p -> value: %d\n",
getpid(), (void*)x, *x);
Если запустить такую программу в двух терминалах, адрес может оказаться одинаковым.
Но это не значит, что процессы пишут в одну и ту же память.
Для каждого процесса ядро и MMU переводят виртуальные адреса в свои физические страницы. Один и тот же виртуальный адрес в процессе A может указывать на один участок RAM, а в процессе B - на другой.
Именно поэтому процессы изолированы друг от друга.
Программа думает:
«Это моя память».
На самом деле Linux говорит:
«Это твоя иллюзия памяти. А куда она реально мапится - решаю я».
Виртуальная память - одна из тех штук, без которых не было бы нормальной изоляции процессов, безопасного multitasking, shared libraries, fork, mmap и современного Linux в целом.
👍28❤5👨💻3✍1🔥1🗿1
C умел «объектный стиль» задолго до модных споров про ООП.
В Linux-драйверах это видно особенно хорошо. Каждый драйвер фактически реализует интерфейс, просто заполняя структуру с указателями на функции.
file_operations из include/linux/fs.h - хороший пример. Ядро говорит: вот набор операций, которые может поддерживать файл, сокет или устройство. Драйвер сам решает, какие обработчики дать:
open
read
write
release
mmap
fsync
unlocked_ioctl
Если операция не нужна, поле остаётся NULL, и ядро использует поведение по умолчанию там, где это возможно.
По сути это тот же контракт между системой и реализацией, только без классов, наследования и рантаймовой магии. Есть таблица функций, есть объект, есть набор действий, которые с ним можно выполнить.
Именно поэтому C до сих пор живёт в ядрах, драйверах и системном коде. Он не навязывает модель абстракций, но даёт достаточно низкоуровневых инструментов, чтобы собрать нужную модель самому.
Просто вместо красивого слова interface у тебя struct с function pointers.
#programming #linux #c
В Linux-драйверах это видно особенно хорошо. Каждый драйвер фактически реализует интерфейс, просто заполняя структуру с указателями на функции.
file_operations из include/linux/fs.h - хороший пример. Ядро говорит: вот набор операций, которые может поддерживать файл, сокет или устройство. Драйвер сам решает, какие обработчики дать:
open
read
write
release
mmap
fsync
unlocked_ioctl
Если операция не нужна, поле остаётся NULL, и ядро использует поведение по умолчанию там, где это возможно.
По сути это тот же контракт между системой и реализацией, только без классов, наследования и рантаймовой магии. Есть таблица функций, есть объект, есть набор действий, которые с ним можно выполнить.
Именно поэтому C до сих пор живёт в ядрах, драйверах и системном коде. Он не навязывает модель абстракций, но даёт достаточно низкоуровневых инструментов, чтобы собрать нужную модель самому.
Просто вместо красивого слова interface у тебя struct с function pointers.
#programming #linux #c
❤22👍8🔥6👎1
💡Совет Linux
Случайно удалил файл и не понимаешь, что именно пропало?
Попробуй проверить недавние изменения:
Команда покажет файлы в домашней директории, которые менялись за последние 24 часа.
Важно: она не восстановит удалённые файлы. Но поможет быстро понять, что недавно редактировалось, какие файлы могли быть затронуты и где искать следы ошибки.
Полезно, когда нужно разобраться после случайного удаления, неудачного скрипта или странного поведения программы.
Случайно удалил файл и не понимаешь, что именно пропало?
Попробуй проверить недавние изменения:
find ~/ -type f -mtime -1
Команда покажет файлы в домашней директории, которые менялись за последние 24 часа.
Важно: она не восстановит удалённые файлы. Но поможет быстро понять, что недавно редактировалось, какие файлы могли быть затронуты и где искать следы ошибки.
Полезно, когда нужно разобраться после случайного удаления, неудачного скрипта или странного поведения программы.
❤13👍9🔥5🤨1
🛡️ Защита вашей конфиденциальности в сети
Awesome Privacy — это обширная коллекция ресурсов и инструментов для обеспечения конфиденциальности в интернете. Здесь вы найдете рекомендации по безопасным браузерам, мессенджерам, VPN и другим средствам, которые помогут защитить ваши данные и личную информацию.
🚀Основные моменты:
- Подборка инструментов для анонимности и безопасности.
- Ресурсы по шифрованию и защите данных.
- Советы по безопасному серфингу в интернете.
- Обсуждения и рекомендации от сообщества.
📌 GitHub: https://github.com/Lissy93/awesome-privacy
#awesome-list
Awesome Privacy — это обширная коллекция ресурсов и инструментов для обеспечения конфиденциальности в интернете. Здесь вы найдете рекомендации по безопасным браузерам, мессенджерам, VPN и другим средствам, которые помогут защитить ваши данные и личную информацию.
🚀Основные моменты:
- Подборка инструментов для анонимности и безопасности.
- Ресурсы по шифрованию и защите данных.
- Советы по безопасному серфингу в интернете.
- Обсуждения и рекомендации от сообщества.
📌 GitHub: https://github.com/Lissy93/awesome-privacy
#awesome-list
GitHub
GitHub - lissy93/awesome-privacy: 🦄 A curated list of privacy & security-focused software and services
🦄 A curated list of privacy & security-focused software and services - lissy93/awesome-privacy
👍10❤2🔥1
5 терминальных инструментов, с которыми чувствуешь себя CLI-магом:
1.
https://github.com/ClementTsang/bottom
2.
https://github.com/starship/starship
3.
https://github.com/eza-community/eza
4.
https://github.com/ajeetdsouza/zoxide
5.
https://github.com/atuinsh/atuin
1.
bottom (`btm`) - современный и красивый системный монитор, удобная альтернатива htophttps://github.com/ClementTsang/bottom
2.
starship - быстрый и гибко настраиваемый prompt для любой shellhttps://github.com/starship/starship
3.
eza - современная замена ls с цветами и интеграцией с Githttps://github.com/eza-community/eza
4.
zoxide - умный cd, который запоминает ваши привычки и быстрее открывает нужные папкиhttps://github.com/ajeetdsouza/zoxide
5.
atuin - продвинутая история команд с поиском, синхронизацией и статистикойhttps://github.com/atuinsh/atuin
GitHub
GitHub - ClementTsang/bottom: Yet another cross-platform graphical process/system monitor.
Yet another cross-platform graphical process/system monitor. - ClementTsang/bottom
👍6
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️🖥 Наруто учит параллельной работе в Linux
Три команды которые экономят часы ручной работы. find с xargs и grep ищет error сразу во всех логах, parallel конвертирует пачку PNG в WEBP в несколько потоков, rsync синхронизирует папку с бэкапом и показывает прогресс.
Настоящий шиноби автоматизирует рутину и всегда делает бэкап. Сохраняй чтобы не потерять.
Три команды которые экономят часы ручной работы. find с xargs и grep ищет error сразу во всех логах, parallel конвертирует пачку PNG в WEBP в несколько потоков, rsync синхронизирует папку с бэкапом и показывает прогресс.
Настоящий шиноби автоматизирует рутину и всегда делает бэкап. Сохраняй чтобы не потерять.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤8🔥5🤨4🙈4
This media is not supported in your browser
VIEW IN TELEGRAM
Запустил новый Linux-сервер? Не спеши сразу ставить сайт, бота или базу.
Сначала закрой базу безопасности.
Обнови систему, чтобы убрать старые уязвимости. Создай отдельного пользователя и не работай постоянно из-под root. Защити SSH: отключи root-вход, убери пароли и используй ключи.
Дальше включи firewall и оставь открытыми только нужные порты. Поставь Fail2ban, чтобы сервер сам блокировал подозрительные попытки входа.
И обязательно настрой бэкапы, логи и мониторинг. Сервер без резервных копий это лотерея.
Эти шаги занимают немного времени, но сильно снижают риск взлома и проблем в будущем.
Сначала закрой базу безопасности.
Обнови систему, чтобы убрать старые уязвимости. Создай отдельного пользователя и не работай постоянно из-под root. Защити SSH: отключи root-вход, убери пароли и используй ключи.
Дальше включи firewall и оставь открытыми только нужные порты. Поставь Fail2ban, чтобы сервер сам блокировал подозрительные попытки входа.
И обязательно настрой бэкапы, логи и мониторинг. Сервер без резервных копий это лотерея.
Эти шаги занимают немного времени, но сильно снижают риск взлома и проблем в будущем.
👍42❤5🔥1
Media is too big
VIEW IN TELEGRAM
Не дай ДИО взломать твой VPS: сервер с нуля по-джоджовски
🔥13❤3👍2😴1
⚡️ Kali Linux Roadmap: с чего начать в этичном хакинге
Нашёл нормальный roadmap по Kali Linux для тех, кто хочет не просто «поставить Kali и открыть терминал», а постепенно разобраться, как всё это работает.
Внутри маршрут по базовым темам: установка, настройка окружения, работа с терминалом, Linux-команды, сеть, безопасность, инструменты Kali и практика.
Это полезно тем, кто только заходит в кибербезопасность и не понимает, за что браться первым. Kali часто выглядит как набор страшных утилит, но без базы по Linux, сетям и правам доступа эти инструменты быстро превращаются в хаос.
Хороший подход здесь простой: сначала понять систему, потом сеть, потом инструменты, и только после этого переходить к практике в легальных лабораториях и CTF.
Такой roadmap удобно проходить как чек-лист: открыл раздел, разобрал команды, повторил руками, закрепил на тестовом окружении.
Для старта в Kali Linux это намного лучше, чем хаотично смотреть ролики и копировать команды без понимания.
https://github.com/justxor/Kalilinuxroadmap/tree/main
Нашёл нормальный roadmap по Kali Linux для тех, кто хочет не просто «поставить Kali и открыть терминал», а постепенно разобраться, как всё это работает.
Внутри маршрут по базовым темам: установка, настройка окружения, работа с терминалом, Linux-команды, сеть, безопасность, инструменты Kali и практика.
Это полезно тем, кто только заходит в кибербезопасность и не понимает, за что браться первым. Kali часто выглядит как набор страшных утилит, но без базы по Linux, сетям и правам доступа эти инструменты быстро превращаются в хаос.
Хороший подход здесь простой: сначала понять систему, потом сеть, потом инструменты, и только после этого переходить к практике в легальных лабораториях и CTF.
Такой roadmap удобно проходить как чек-лист: открыл раздел, разобрал команды, повторил руками, закрепил на тестовом окружении.
Для старта в Kali Linux это намного лучше, чем хаотично смотреть ролики и копировать команды без понимания.
https://github.com/justxor/Kalilinuxroadmap/tree/main
👍11❤5🔥5