Как стать автором
Поиск
Написать публикацию
Обновить
360.96

Linux *

Пишем под *nix

Сначала показывать
Порог рейтинга
Уровень сложности

Что нового в Wayland 1.24 и почему это важно для пользователей Linux

Время на прочтение5 мин
Количество просмотров2.8K

Wayland — не просто очередной протокол, а попытка заново выстроить графическую систему Linux: проще, безопаснее и с учетом современных требований. 7 июля 2025 года вышел стабильный релиз Wayland 1.24 — результат 13 месяцев разработки и еще один шаг к зрелой альтернативе X11. Он включает важные улучшения, усиливающие позиции Wayland как преемника X11.

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

Читать далее

Новости

[Перевод] Поиск способов закрепления в Linux (Часть 1)

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров1.5K

Данная публикация - перевод серии статей от Pepe Berba - Hunting for Persistence in Linux.

! Все приведённые в данном материале примеры эксплоитов предназначены исключительно для изучения и проработки мер безопасности. Их использование в злонамеренных целях строго запрещено и противоречит законодательству. Автор и источник не несут ответственности за неправомерные действия, совершённые с использованием данной информации. !

Читать далее

Скрипт-реаниматор: автоматическое восстановление упавших SSH-сессий

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров4.1K

Привет, Хабр! Представим ситуацию: вы настраиваете сервер, работаете с критически важными процессами или изучаете логи - и внезапно SSH-соединение обрывается. Все не сохранённые изменения улетучиваются, прогресс откатывается, а вам приходится переподключаться и начинать всё заново.

В данной статье представлен скрипт-реаниматор для SSH, который:

Восстанавливает соединение при любых обрывах
Сохраняет рабочую сессию и историю команд
Поддерживает tmux/screen для полного сохранения контекста
Может отправлять уведомления о проблемах в Telegram
Решение представлено для Bash и PowerShell

Читать далее

Шифрование скриптов

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров7.2K

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

Компилируемые языки хоть как-то защищаются, соответственно, с помощью компиляции, хотя и это не панацея. А вот что делать со скриптами, которые могут быть написаны на bash или pyton?

Как вариант решения такой проблемы, может быть, шифрование скриптов с аппаратной привязкой дешифратора к платформе, на которой этот скрипт исполняется. Звучит красиво, но надёжно ли? Насколько будет эффективен и взломостойкий этот метод?

У меня в одном проекте была проба пере такого решения. Заодно проверил, и вскрыл это шифрование.

Читать далее

Пишем простой драйвер Linux для устройства, ничего не зная о драйверах и о USB

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров7.7K

Пару месяцев назад я купил Nanoleaf Pegboard Desk Dock — последнее слово в технологиях USB-хабов с RGB-светодиодами и крючками для устройств. К сожалению, это чудо инженерной мысли поддерживает только гейминговые операционные системы — Windows и macOS, поэтому возникла необходимость в драйвере для Linux.

В своих постах я уже настраивал Windows VM с пробросом USB и пытался выполнить реверс-инжиниринг официальных драйверов. При этом я задумался, а нельзя ли написать производителю и попросить у него спецификации или документацию его протокола. К моему удивлению, техподдержка Nanoleaf ответила мне всего через четыре часа, предоставив полное описание протокола, используемого Desk Dock, а также полосами RGB-светодиодов. Документация по большей мере подтвердила то, что я обнаружил самостоятельно, но также я нашёл в ней пару других мелких подробностей (например, управление питанием и яркостью), которые были мне неизвестны.

Сегодня мы попробуем написать драйвер на основании протокола (который я изучил реверс-инжинирингом), параллельно сверяясь с официальной документацией. Однако здесь есть одна небольшая проблема: раньше я ни разу не писал драйверов для устройств под Linux, а с USB-устройствами взаимодействовал только как пользователь.

Читать далее

Сжатие текста в Angie: статика, динамика, производительность

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров1.5K

Сжатие текстовых ресурсов — это базовая мера оптимизации скорости загрузки веб‑приложений. Действительно, текста в вебе много: HTML, CSS, JS, JSON, SVG и не только. Казалось бы, тема простая: включили gzip, добавили типы контента для сжатия и всё готово. Однако, как всегда самое интересное в деталях. Разберёмся во всём подробно.

Читать далее

Крах и падение облаков

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров4K

Мой коллега, Андрей Квапил, недавно в своей статье «Эволюция платформ виртуализации: как мы пришли к миру managed‑сервисов и как сервис‑провайдерам конкурировать с AWS» выдвинул тезис, что AWS, GCP и Azure предоставляют своим пользователям удобные API.

Читать далее

Новости кибербезопасности за неделю с 7 по 13 июля 2025

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров1.1K

Всё самое интересное из мира кибербезопасности /** с моими комментариями.

На этой неделе новости про: почему не стоит трудоустраиваться в Макдональдс; Госдума против легализации белых хакеров; про ещё одну причину не покупать себе Мерседес; Android, наверное, стал безопасным и другие только самые важные и интересные новости из мира информационной безопасности.

Читать далее

Крепость под наблюдением: ставим Maltrail и ловим «шпионов» (Часть 2)

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров3.3K

Привет, Хабр!

В первой части нашего путешествия мы превратили голый VPS в маленькую крепость. Мы создали пользователя с sudo, настроили вход по SSH‑ключам, выставили на стражу файрвол UFW и наняли вышибалу Fail2ban. Теперь лобовые brute‑force атаки и автоматические сканеры разбиваются о наши стены, не доставляя хлопот. Мы победили, верно?

Не совсем. Наша крепость неприступна, но она слепа. Мы отбиваем тех, кто ломится в ворота, но совершенно не видим, что происходит на периметре. Что если уязвимость найдется в нашем веб‑сервере? Что если одна из запущенных нами программ начнет слать странный трафик, став частью ботнета?

Здесь нам нужна «сигнализация». Система, которая станет нашими глазами и ушами, и поднимет тревогу при малейшем подозрительном движении. Сегодня мы установим именно такую — Maltrail.

Читать далее

Мой долгий путь до GPIO в QEMU

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров2.9K

Тема этой статьи преследует меня, как статуя командора из известной сказки. Почти десять лет назад я сделал возможность чтения и записи GPIO для виртуальной машины QEMU. GPIO был нужен для тестирования алгоритмов контроллера взвешивания в движении (Weigh In Motion, WIM). С тех пор проект получил некоторое количество упоминаний, а я — несколько писем. И вот к десятилетнему юбилею я решил поставить точку в этой работе.

Читать далее

Мой первый VPS: Чек-лист по превращению «голой» машины в маленькую крепость (Часть 1)

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров16K

Привет, Хабр! У каждого из нас бывает этот момент. Ты нажимаешь кнопку «Заказать», и вот он — твой первый, сияющий, свежеустановленный VPS. Ощущение, как будто получил ключи от собственной цифровой квартиры. Можно ставить что угодно, экспериментировать, запускать свои пет‑проекты... Но есть один нюанс.

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

Я сам прошел через это. Мой первый сервер прожил в «диком» виде около часа, прежде чем я заглянул в логи и увидел непрекращающийся поток попыток входа по SSH. Это было мое «приключение» — превратить уязвимый кусок железа в безопасное убежище. Я наступил на пару граблей, но в итоге собрал «сокровище» — этот чек‑лист, которым хочу поделиться с вами.

Это не исчерпывающее руководство по пентесту, а набор первых, самых важных шагов, которые отсекут 99% автоматических атак и дадут вам спокойно спать по ночам.

Читать далее

Сохранение и восстановление версии бакета объектного хранилища MinIO S3 с учетом содержимого и конфигурации

Уровень сложностиСредний
Время на прочтение24 мин
Количество просмотров392

Меня зовут Михаил, я работаю в Magnit Tech и занимаюсь внедрением 1C платформы на операционную систему Linux. В этой статье я расскажу, как реализовать создание резервных копий бакетов S3-совместимого объектного хранилища MinIO.

(Сразу дам спойлер: нам удалось это сделать с наименьшими затратами места на диске с использованием инкрементальных бэкапов).

Читать далее

Как создать свой парсер и AST-генератор на C++ с минимальными усилиями: знакомьтесь с QapDSLv2

Время на прочтение18 мин
Количество просмотров1.4K

QapDSLv2: Новый стандарт AST-heavy парсинга

QapDSLv2 обеспечивает:

Молниеносное построение AST

Полное сохранение структуры исходного кода

Простоту интерпретации и модификации грамматик

Забудьте о любы других парсерах! С помощью QapDSLv2 можно создавать компиляторы/анализаторы/форматировщики кода за минуты/часы.

Парсеры и генерация абстрактных синтаксических деревьев (AST) — это обычно долго, сложно и требует тонны шаблонного кода. Но что если я скажу, что теперь можно описывать грамматики и структуры данных одновременно и получать готовый, оптимизированный C++ код автоматически?

QapDSLv2 — новый стандарт эффективности и удобства в парсинге. Это язык описания парсеров, который избавляет от синтаксического шума, упрощает интеграцию с C++ и позволяет создавать сложные анализаторы без боли и ошибок. Забудьте о бесконечных циклах отладки и непонятных генераторах — теперь всё просто, понятно и эффективно.

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

Готовы ускорить разработку и вывести свои проекты на новый уровень?

QapGen — мощный генератор парсеров, построенный на основе QapDSLv2, который из грамматик QapDSLv2 сразу создаёт высокопроизводительный C++ парсер с типизированным AST, описанным прямо в грамматике.

t_sep{
stringbody =any(" \t\r\n");
}
using" "ast_sep;
t_value{
TAutoPtr<i_value> body;
" "?
}
t_comma_value{
","
t_value body;
" "?
}
t_array:i_value{
"["
" "?
t_value first?;
vector<t_comma_value> arr?;
"]"
" "?
}

Читать далее

Ближайшие события

О ненависти к российским дистрибутивам Linux

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров49K

Каждый второй комментарий к новостям о российских дистрибутивах Linux можно сформулировать как "опять перерисовали шильдики".

Причем объяснить с чего перерисовали шильдики, комментаторы зачастую не могут. "Чувствую бесовщину, но доказать не могу!".

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

Но давайте поговорим про дистрибутивы.

Читать далее

Скрипт, который следит за тобой: автоматический аудит действий в Linux

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров8.4K

Привет, Хабр! В данной статье хочу разобрать auditd - полезный инструмент аудита в Linux, который записывает каждое действие, а скрипт превратит логи в читаемые отчёты и алерты.

Linux-сервер без мониторинга активности пользователей — как дом с открытыми окнами. Проблемы, которые помогает решить auditd:

Несанкционированный доступ (кто и когда использовать, например, sudo)
Подозрительные команды (rm -rf, изменение прав, доступ к каким-либо файлам)
Расследование инцидентов (кто что натыкал перед падением сервера)
Соответствие корпоративным стандартам (возможно, ИБ требует логирования действий или вы любите контроль)

Решение: auditd + Python-скрипт для анализа и алертов.

Читать далее

Как работает DNS в Linux. Часть 2: все уровни DNS-кэширования

Время на прочтение15 мин
Количество просмотров11K

В первой части мы разобрали, как в Linux работает процесс разрешения имен — от вызова getaddrinfo() до получения IP-адреса. Однако если бы каждый вызов требовал нового DNS-запроса, это было бы неэффективно и сильно нагружало как систему, так и сеть. Поэтому используется кэширование.

Кэширование DNS может быть везде — в glibc, в systemd-resolved, в браузерах и даже в приложениях на Go. Кэш помогает увеличить скорость работы, но создает дополнительные сложности при отладке. Например: вы меняете DNS-запись, но сервер продолжает ходить по старому IP-адресу. Или, Dig показывает правильный адрес, а curl всё равно подключается к устаревшему.

В этой статье разберем различные уровни кэшей самой системы, приложений и языков программирования, контейнеров, прокси. А также их мониторинг и сброс.

Читать далее

Изучение Python за 2 недели через боль и дедлайн: личная история

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров21K

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

Читать далее

Оптимизация управления задачами в Zephyr OS с помощью Thread Pool

Время на прочтение3 мин
Количество просмотров749

Управлять потоками в C для каждой мелкой задачи — это боль. 😤 Даже самые простые задачи вынуждают возиться с k_thread_create, ждать завершения, чистить ресурсы — и всё это превращает твой код в бесконечную головную боль. 🤬

К счастью, в Zephyr OS есть спасение — Thread Pool: набор заранее выделенных потоков, которые берут задачи из очереди и выполняют их без лишнего мусора. Этот подход экономит ресурсы, время и твою нервную систему.

Читать далее

Docker + Neovim: поднимаем конфиг на любом сервере и не засоряем систему

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров7.8K

Иногда нужно запустить nvim на старом сервере. Но тут сразу куча проблем: одно не поставить, другое не собрать, а если что-то обновить — можно развалить весь проект.

Этот подход удобен и для новых систем. Docker позволяет поднять nvim с последним Python, nvim-treesitter и своим конфигом прямо в контейнере, не засоряя основную ОС.

При этом можно редактировать локальные файлы на сервере так, как будто nvim установлен на самой системе. В статье показано, как всё это запустить на CentOS 7.
А если заработало там — значит, на любом современном Linux тем более проблем не будет.

Читать далее

Настройка среды разработки: VSCode, Docker для Python-проектов. Debug внутри контейнера

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров7.7K

В этой статье мы подробно рассмотрим процесс установки и настройки всех необходимых инструментов для эффективной разработки Python-приложений с использованием FastAPI, Docker и Docker Compose. Вы узнаете, как создать изолированную среду для вашего проекта, настроить отладку и обеспечить бесперебойную работу вашего приложения.

Читать далее
1
23 ...

Вклад авторов