🐍 Linux-совет, о котором знает очень мало людей
Когда вы пытаетесь размонтировать файловую систему (NFS, SSHFS, FTP, CIFS) и получаете вечное:
device is busy
часто lsof или fuser не показывают настоящий процесс, который держит монтирование.
Есть трюк, который почти никто не использует — прямой поиск через файловые дескрипторы процессов.
Вот команда, которая находит любой процесс, реально удерживающий путь:
for pid in /proc/[0-9]*; do
grep -q "your/mount/path" "$pid/fd"/* 2>/dev/null \
&& echo "PID: ${pid#/proc/}"
done
Что делает этот приём:
- перебирает каждый процесс в системе
- просматривает его открытые файловые дескрипторы
- находит тех, кто удерживает нужный путь
- работает даже в ситуациях, где lsof «слепой»
- позволяет точно определить виновника ошибки “device is busy”
Где полезно:
- зависший NFS после сетевого лага
- SSHFS, который удерживает сессию “наполовину”
- удалённый каталог, который держит старый процесс
- случаи, когда файловая система размонтировалась логически, но процесс всё ещё держит дескриптор
Этот метод - настоящий рентген Linux, спасает там, где все остальные инструменты бессильны.
@linux_education
Когда вы пытаетесь размонтировать файловую систему (NFS, SSHFS, FTP, CIFS) и получаете вечное:
device is busy
часто lsof или fuser не показывают настоящий процесс, который держит монтирование.
Есть трюк, который почти никто не использует — прямой поиск через файловые дескрипторы процессов.
Вот команда, которая находит любой процесс, реально удерживающий путь:
for pid in /proc/[0-9]*; do
grep -q "your/mount/path" "$pid/fd"/* 2>/dev/null \
&& echo "PID: ${pid#/proc/}"
done
Что делает этот приём:
- перебирает каждый процесс в системе
- просматривает его открытые файловые дескрипторы
- находит тех, кто удерживает нужный путь
- работает даже в ситуациях, где lsof «слепой»
- позволяет точно определить виновника ошибки “device is busy”
Где полезно:
- зависший NFS после сетевого лага
- SSHFS, который удерживает сессию “наполовину”
- удалённый каталог, который держит старый процесс
- случаи, когда файловая система размонтировалась логически, но процесс всё ещё держит дескриптор
Этот метод - настоящий рентген Linux, спасает там, где все остальные инструменты бессильны.
@linux_education
👍7🔥3❤1
👣 Rust for Malware Development
В этом репозитории содержатся исходный код различных методов, используемых авторами вредоносных программ, участниками Red Team, злоумышленниками, спонсируемыми государством хакерскими группами и т. д.
Эти методы хорошо исследованы и реализованы на Rust.
Отличный материал для погружения в кибербез.
🟠Github: https://github.com/Whitecat18/Rust-for-Malware-Development
@linux_education
В этом репозитории содержатся исходный код различных методов, используемых авторами вредоносных программ, участниками Red Team, злоумышленниками, спонсируемыми государством хакерскими группами и т. д.
Эти методы хорошо исследованы и реализованы на Rust.
Отличный материал для погружения в кибербез.
🟠Github: https://github.com/Whitecat18/Rust-for-Malware-Development
@linux_education
❤1
🛡️ Продвинутый Linux-совет по защите: включи AppArmor/SELinux профайлы для изоляции сетевых инструментов
Большинство атак начинается с получения минимального доступа к системе через пользовательский процесс.
Чтобы даже с доступом злоумышленник не смог двигаться дальше, усиливай изоляцию ключевых CLI-инструментов (curl, wget, ssh, netcat), создавая для них ограниченные профайлы AppArmor или SELinux.
Что это даёт:
• запрет на выполнение произвольных системных вызовов
• запрет на доступ к файловой системе вне разрешённого диапазона
• недоступность /proc и /sys → сложнее собрать информацию об окружении
• ограничение сетевых направлений (например, только outbound HTTPS)
• невозможность запускать подпроцессы или загружать модули ядра
🛡️ Как быстро включить защиту команд в Linux (AppArmor)
1) Проверить, что AppArmor активен
sudo aa-status
Создать профиль для команды (пример: curl)
sudo nano /etc/apparmor.d/usr.bin.curl
Загрузить профиль
sudo apparmor_parser -r /etc/apparmor.d/usr.bin.curl
Включить режим enforcing
sudo aa-enforce /etc/apparmor.d/usr.bin.curl
Теперь команда работает в изолированном профиле.
Итог: даже если вредонос получил shell, он буквально «ходит по клетке» — минимальный damage, невозможность lateral movement и быстрый детект.
Если хочешь — напишу готовый шаблон AppArmor-профайла для конкретных утилит.
@linux_education
Большинство атак начинается с получения минимального доступа к системе через пользовательский процесс.
Чтобы даже с доступом злоумышленник не смог двигаться дальше, усиливай изоляцию ключевых CLI-инструментов (curl, wget, ssh, netcat), создавая для них ограниченные профайлы AppArmor или SELinux.
Что это даёт:
• запрет на выполнение произвольных системных вызовов
• запрет на доступ к файловой системе вне разрешённого диапазона
• недоступность /proc и /sys → сложнее собрать информацию об окружении
• ограничение сетевых направлений (например, только outbound HTTPS)
• невозможность запускать подпроцессы или загружать модули ядра
🛡️ Как быстро включить защиту команд в Linux (AppArmor)
1) Проверить, что AppArmor активен
sudo aa-status
Создать профиль для команды (пример: curl)
sudo nano /etc/apparmor.d/usr.bin.curl
Загрузить профиль
sudo apparmor_parser -r /etc/apparmor.d/usr.bin.curl
Включить режим enforcing
sudo aa-enforce /etc/apparmor.d/usr.bin.curl
Теперь команда работает в изолированном профиле.
Итог: даже если вредонос получил shell, он буквально «ходит по клетке» — минимальный damage, невозможность lateral movement и быстрый детект.
Если хочешь — напишу готовый шаблон AppArmor-профайла для конкретных утилит.
@linux_education
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
✔️ Усиление ядра через sysctl
Продвинутый совет по Linux: включи контроль целостности системных конфигов через fs.protected_symlinks и fs.protected_hardlinks.
Эти параметры ядра блокируют атаки, использующие подмену симлинков и хардлинков в системных каталогах. Даже при локальном доступе злоумышленник не сможет подменить файлы или перенаправить операции системных служб.
# Включаем защиту симлинков
echo 1 | sudo tee /proc/sys/fs/protected_symlinks
# Включаем защиту хардлинков
echo 1 | sudo tee /proc/sys/fs/protected_hardlinks
# Делаем постоянным
sudo sh -c 'cat >> /etc/sysctl.d/99-hardening.conf
@linux_education
Продвинутый совет по Linux: включи контроль целостности системных конфигов через fs.protected_symlinks и fs.protected_hardlinks.
Эти параметры ядра блокируют атаки, использующие подмену симлинков и хардлинков в системных каталогах. Даже при локальном доступе злоумышленник не сможет подменить файлы или перенаправить операции системных служб.
# Включаем защиту симлинков
echo 1 | sudo tee /proc/sys/fs/protected_symlinks
# Включаем защиту хардлинков
echo 1 | sudo tee /proc/sys/fs/protected_hardlinks
# Делаем постоянным
sudo sh -c 'cat >> /etc/sysctl.d/99-hardening.conf
@linux_education
👍6
IP-сабнеттинг можно свести к одной простой шпаргалке
На картинке — таблица, которая помогает мгновенно понять:
- размер группы
- подходящую маску
- значение для каждого октета в CIDR
- как быстро вычислять подсети без калькулятора
Столбцы 128 64 32 16 8 4 2 1 — это двоичные веса восьми бит одного октета.
С их помощью можно за секунду определить любую маску сети (например, /20, /27, /29) и понять, как разбить адреса на подсети.
Если ты работаешь с сетями, DevOps или инфраструктурой — эта таблица реально заменяет любые длинные объяснения CIDR и subnet mask.
Минимальная, понятная и рабочая шпаргалка — больше и не нужно.
@linux_education
На картинке — таблица, которая помогает мгновенно понять:
- размер группы
- подходящую маску
- значение для каждого октета в CIDR
- как быстро вычислять подсети без калькулятора
Столбцы 128 64 32 16 8 4 2 1 — это двоичные веса восьми бит одного октета.
С их помощью можно за секунду определить любую маску сети (например, /20, /27, /29) и понять, как разбить адреса на подсети.
Если ты работаешь с сетями, DevOps или инфраструктурой — эта таблица реально заменяет любые длинные объяснения CIDR и subnet mask.
Минимальная, понятная и рабочая шпаргалка — больше и не нужно.
@linux_education
🔥2❤1
🔥 Linux-совет: ищи по **процессам**, а не по файлам
В Linux можно использовать grep для поиска прямо по аргументам запущенных процессов — это помогает быстро понять, какой сервис работает, какой конфиг загружен или какой порт слушается.
ps aux | grep --color=auto pattern
Примеры:
Найти процессы Nginx
ps aux | grep nginx
Проверить, какой конфиг использует Python-приложение
ps aux | grep config.yaml
Узнать, какой процесс слушает порт
ps aux | grep 8080
Хитрый трюк: добавь пробел перед шаблоном, чтобы не ловить в вывод сам grep.
ps aux | grep " nginx"
@linux_education
В Linux можно использовать grep для поиска прямо по аргументам запущенных процессов — это помогает быстро понять, какой сервис работает, какой конфиг загружен или какой порт слушается.
ps aux | grep --color=auto pattern
Примеры:
Найти процессы Nginx
ps aux | grep nginx
Проверить, какой конфиг использует Python-приложение
ps aux | grep config.yaml
Узнать, какой процесс слушает порт
ps aux | grep 8080
Хитрый трюк: добавь пробел перед шаблоном, чтобы не ловить в вывод сам grep.
ps aux | grep " nginx"
@linux_education
👍5🤩1
This media is not supported in your browser
VIEW IN TELEGRAM
Быстрый Linux совет 🐧💡
Если нужно найти все файлы, которые содержат определённую строку, используй:
grep -rl string .
• -r выполняет рекурсивный поиск
• -l выводит только список файлов, где найдено совпадение
Изучай Linux с удовольствием 😎
@linux_education
Если нужно найти все файлы, которые содержат определённую строку, используй:
grep -rl string .
• -r выполняет рекурсивный поиск
• -l выводит только список файлов, где найдено совпадение
Изучай Linux с удовольствием 😎
@linux_education
👍6
⚡️ Полное руководство по Bash: от основ к продвинутым темам
Bash (Bourne Again SHell) — это одна из самых популярных Unix-оболочек, широко используемая для запуска команд и написания скриптов в Linux и macOS.
Скрипты Bash позволяют автоматизировать рутинные задачи, объединять команды в программы и управлять системой через командную строку.
Данное руководство последовательно познакомит вас с основами Bash (синтаксис, переменные, условия, циклы и т.д.), а затем перейдет к продвинутым возможностям (таким как настройка strict mode, использование trap-обработчиков, планирование задач через cron и др.). Мы рассмотрим практические примеры скриптов, сопровождая их поясняющими комментариями, чтобы у вас сложилось цельное понимание создания надежных Bash-скриптов.
https://uproger.com/polnoe-rukovodstvo-po-bash-ot-osnov-k-prodvinutym-temam/
Видео: https://www.youtube.com/watch?v=ei0a1TT4ukU
@linux_education
Bash (Bourne Again SHell) — это одна из самых популярных Unix-оболочек, широко используемая для запуска команд и написания скриптов в Linux и macOS.
Скрипты Bash позволяют автоматизировать рутинные задачи, объединять команды в программы и управлять системой через командную строку.
Данное руководство последовательно познакомит вас с основами Bash (синтаксис, переменные, условия, циклы и т.д.), а затем перейдет к продвинутым возможностям (таким как настройка strict mode, использование trap-обработчиков, планирование задач через cron и др.). Мы рассмотрим практические примеры скриптов, сопровождая их поясняющими комментариями, чтобы у вас сложилось цельное понимание создания надежных Bash-скриптов.
https://uproger.com/polnoe-rukovodstvo-po-bash-ot-osnov-k-prodvinutym-temam/
Видео: https://www.youtube.com/watch?v=ei0a1TT4ukU
@linux_education
🔐 Self-hosted auth для ваших веб-приложений
OpenAuth - это лёгкий self-hosted провайдер аутентификации для веб-приложений.
Он позволяет развернуть собственную систему логина и управления пользователями без внешних сервисов.
Поддерживает современные протоколы, легко интегрируется и даёт полный контроль над данными.
GitHub: https://github.com/sst/openauth/
@linux_education
OpenAuth - это лёгкий self-hosted провайдер аутентификации для веб-приложений.
Он позволяет развернуть собственную систему логина и управления пользователями без внешних сервисов.
Поддерживает современные протоколы, легко интегрируется и даёт полный контроль над данными.
GitHub: https://github.com/sst/openauth/
@linux_education
Это настоящее откровение. 😆
Авторы статьи показывают, что превращение вредоносных запросов в поэзию заставляет многие чат-боты сбрасывать свои правила безопасности.
В эксперименте тестируют 25 моделей - и получают небезопасные ответы примерно в 60% случаев, а у некоторых моделей показатель превышает 90%.
Джейлбрейком считается ситуация, когда модель, которая должна отказать, вместо этого выдаёт чёткие шаги или советы для вредоносных действий.
Методика предельно простая: берут один пользовательский запрос, переписывают 20 опасных инструкций в виде стихов, затем превращают 1200 вредных запросов из стандартного набора для тестирования безопасности в поэзию с помощью фиксированной инструкции.
Каждый ответ проверяют три модель-судьи и люди-оценщики, помечая, помогает ли реплика выполнить опасный запрос.
Темы охватывают хакерство, опасные химические вещества и биологию, манипуляции, утечки приватных данных и сценарии потери контроля — и почти везде поэтическая форма вызывает резкий рост небезопасных ответов.
Это показывает, что обучение безопасности на обычном тексте плохо справляется с изменением стиля.
Источник: arxiv.org/abs/2511.15304
@linux_education
Авторы статьи показывают, что превращение вредоносных запросов в поэзию заставляет многие чат-боты сбрасывать свои правила безопасности.
В эксперименте тестируют 25 моделей - и получают небезопасные ответы примерно в 60% случаев, а у некоторых моделей показатель превышает 90%.
Джейлбрейком считается ситуация, когда модель, которая должна отказать, вместо этого выдаёт чёткие шаги или советы для вредоносных действий.
Методика предельно простая: берут один пользовательский запрос, переписывают 20 опасных инструкций в виде стихов, затем превращают 1200 вредных запросов из стандартного набора для тестирования безопасности в поэзию с помощью фиксированной инструкции.
Каждый ответ проверяют три модель-судьи и люди-оценщики, помечая, помогает ли реплика выполнить опасный запрос.
Темы охватывают хакерство, опасные химические вещества и биологию, манипуляции, утечки приватных данных и сценарии потери контроля — и почти везде поэтическая форма вызывает резкий рост небезопасных ответов.
Это показывает, что обучение безопасности на обычном тексте плохо справляется с изменением стиля.
Источник: arxiv.org/abs/2511.15304
@linux_education
❤1
⚡️ Секретное дзюцу Linux: моментальное исправление опечатки
Когда в длинной команде закралась опечатка — например, nginxx вместо nginx - можно не перепечатывать всё заново.
Используй редкий и малоизвестный приём:
^неправильно^правильно
Пример:
Вместо полной команды просто напиши:
^nginxx^nginx
Терминал автоматически повторит предыдущую команду, заменив только нужный фрагмент.
Итог: команда выполняется безупречно, а ты экономишь время и нервы.
Это реальный "FC-FU"-трюк - расширение истории, о котором знают единицы.
@linux_education
Когда в длинной команде закралась опечатка — например, nginxx вместо nginx - можно не перепечатывать всё заново.
Используй редкий и малоизвестный приём:
^неправильно^правильно
Пример:
Вместо полной команды просто напиши:
^nginxx^nginx
Терминал автоматически повторит предыдущую команду, заменив только нужный фрагмент.
Итог: команда выполняется безупречно, а ты экономишь время и нервы.
Это реальный "FC-FU"-трюк - расширение истории, о котором знают единицы.
@linux_education
❤5👍1
This media is not supported in your browser
VIEW IN TELEGRAM
💡 rusty lights - терминальная версия игры Lights Out
Это минималистичная TUI игра, которая запускается прямо в терминале и при этом включает быстрый солвер, способный решать огромные доски с помощью линейной алгебры.
🦀 Проект написан на Rust и использует ratatui rs для рендера интерфейса.
⭐ GitHub: https://github.com/arom1a/rusty-lights
#rustlang #ratatui #tui #gamedev #terminal #game #puzzle
@linux_education
Это минималистичная TUI игра, которая запускается прямо в терминале и при этом включает быстрый солвер, способный решать огромные доски с помощью линейной алгебры.
🦀 Проект написан на Rust и использует ratatui rs для рендера интерфейса.
⭐ GitHub: https://github.com/arom1a/rusty-lights
#rustlang #ratatui #tui #gamedev #terminal #game #puzzle
@linux_education
🔥1
⚡️ Быстрый Linux-совет:
Нужно повторять команду каждые несколько секунд?
Используй:
$ watch -n 2 df -h
Эта команда запускает df -h каждые 2 секунды — удобно, чтобы следить за:
- загрузкой диска
- нагрузкой на систему
- изменением размеров логов
Нажми q, чтобы выйти.
@linux_education
Нужно повторять команду каждые несколько секунд?
Используй:
$ watch -n 2 df -h
Эта команда запускает df -h каждые 2 секунды — удобно, чтобы следить за:
- загрузкой диска
- нагрузкой на систему
- изменением размеров логов
Нажми q, чтобы выйти.
@linux_education
👍6
This media is not supported in your browser
VIEW IN TELEGRAM
👩💻 Знали ли вы, что можно открывать man-страницы из Vim?
- leader K - Нажмите курсором на любом слове, чтобы открыть man-страницу для этой команды.
- :Man command - Открыть man-страницу этой команды
@linux_education
- leader K - Нажмите курсором на любом слове, чтобы открыть man-страницу для этой команды.
- :Man command - Открыть man-страницу этой команды
@linux_education
❤1
✔️ Метаданные пользователей OpenAI API утекли через сервис Mixpanel.
OpenAI раскрыла детали инцидента безопасности, произошедшего на стороне подрядчика — платформы аналитики Mixpanel. Злоумышленники получили доступ к системам вендора и экспортировали метаданные пользователей, работающих с API. В утечку попали имена, адреса электронной почты, User ID, ID организаций, сведения об используемых браузерах и ОС, а также примерная геолокация.
OpenAI говорит, что критически важные данные остались в безопасности: пароли, сами API-ключи, платежная информация и промпты не скомпрометированы. Пользователей ChatGPT инцидент также не затронул. В ответ на нарушение периметра безопасности OpenAI отключила Mixpanel от своих продуктов и полностью прекратила сотрудничество.
openai.com (https://openai.com/index/mixpanel-incident/)
@linux_education
OpenAI раскрыла детали инцидента безопасности, произошедшего на стороне подрядчика — платформы аналитики Mixpanel. Злоумышленники получили доступ к системам вендора и экспортировали метаданные пользователей, работающих с API. В утечку попали имена, адреса электронной почты, User ID, ID организаций, сведения об используемых браузерах и ОС, а также примерная геолокация.
OpenAI говорит, что критически важные данные остались в безопасности: пароли, сами API-ключи, платежная информация и промпты не скомпрометированы. Пользователей ChatGPT инцидент также не затронул. В ответ на нарушение периметра безопасности OpenAI отключила Mixpanel от своих продуктов и полностью прекратила сотрудничество.
openai.com (https://openai.com/index/mixpanel-incident/)
@linux_education
Linux: Не мучайте `КОТИКОВ` без необходимости 😼
Многие используют cat там, где он вообще не нужен. Это создаёт лишние процессы и делает команду медленнее. Большинство утилит умеют работать с файлами напрямую. Подписывайся, больше фишек каждый день !
Вот несколько полезных примеров, когда cat стоит заменить, а когда он реально нужен:
# ❌ ПЛОХО: лишний cat
cat file.txt | grep "error"
# ✅ ХОРОШО: grep сам читает файл
grep "error" file.txt
# ❌ ПЛОХО: cat | wc (wc сам читает файлы)
cat data.log | wc -l
# ✅ ХОРОШО
wc -l data.log
# ❌ ПЛОХО: cat | awk (awk умеет читать файлы напрямую)
cat users.txt | awk '{print $1}'
# ✅ ХОРОШО
awk '{print $1}' users.txt
# ✔️ Когда cat действительно нужен: склеить файлы
cat part1.txt part2.txt > full.txt
Берегите котиков 🐈⬛
@linux_education
Многие используют cat там, где он вообще не нужен. Это создаёт лишние процессы и делает команду медленнее. Большинство утилит умеют работать с файлами напрямую. Подписывайся, больше фишек каждый день !
Вот несколько полезных примеров, когда cat стоит заменить, а когда он реально нужен:
# ❌ ПЛОХО: лишний cat
cat file.txt | grep "error"
# ✅ ХОРОШО: grep сам читает файл
grep "error" file.txt
# ❌ ПЛОХО: cat | wc (wc сам читает файлы)
cat data.log | wc -l
# ✅ ХОРОШО
wc -l data.log
# ❌ ПЛОХО: cat | awk (awk умеет читать файлы напрямую)
cat users.txt | awk '{print $1}'
# ✅ ХОРОШО
awk '{print $1}' users.txt
# ✔️ Когда cat действительно нужен: склеить файлы
cat part1.txt part2.txt > full.txt
Берегите котиков 🐈⬛
@linux_education
👍13
🕵️♂️ Spyder: OSINT Research Tool
Spyder - это универсальный инструмент для открытой разведки (OSINT), который позволяет выполнять поиск информации по крупным глобальным базам данных. Он предоставляет доступ к данным о номерах телефонов, IP-адресах, социальных сетях и многом другом.
🚀Основные моменты:
- Поиск информации о номерах телефонов и IP-адресах
- Доступ к данным социальных сетей (Facebook, Instagram и др.)
- Поиск по именам и физическим адресам
- Проверка доменов и номерных знаков
- Утилита для бомбардировки электронной почты
📌 GitHub: https://github.com/portrret/spyder-osint
#python
@linux_education
Spyder - это универсальный инструмент для открытой разведки (OSINT), который позволяет выполнять поиск информации по крупным глобальным базам данных. Он предоставляет доступ к данным о номерах телефонов, IP-адресах, социальных сетях и многом другом.
🚀Основные моменты:
- Поиск информации о номерах телефонов и IP-адресах
- Доступ к данным социальных сетей (Facebook, Instagram и др.)
- Поиск по именам и физическим адресам
- Проверка доменов и номерных знаков
- Утилита для бомбардировки электронной почты
📌 GitHub: https://github.com/portrret/spyder-osint
#python
@linux_education
🔥 Server Survival: Стройте облачную инфраструктуру!
Играйте в интерактивную 3D-симуляцию, где вы - облачный архитектор. Стройте и масштабируйте облачную инфраструктуру, защищаясь от DDoS-атак и управляя бюджетом. Цель — выжить как можно дольше, обрабатывая легитимный трафик и избегая потерь репутации.
🚀Основные моменты:
- Управление бюджетом и репутацией.
- Разные типы трафика: веб, API и мошеннический.
- Режимы игры: выживание и песочница для экспериментов.
- Улучшение сервисов для повышения производительности.
- Интуитивное управление и визуальная обратная связь.
📌 GitHub: https://github.com/pshenok/server-survival
@linux_education
Играйте в интерактивную 3D-симуляцию, где вы - облачный архитектор. Стройте и масштабируйте облачную инфраструктуру, защищаясь от DDoS-атак и управляя бюджетом. Цель — выжить как можно дольше, обрабатывая легитимный трафик и избегая потерь репутации.
🚀Основные моменты:
- Управление бюджетом и репутацией.
- Разные типы трафика: веб, API и мошеннический.
- Режимы игры: выживание и песочница для экспериментов.
- Улучшение сервисов для повышения производительности.
- Интуитивное управление и визуальная обратная связь.
📌 GitHub: https://github.com/pshenok/server-survival
@linux_education
❤1