Обновить
256K+

Linux *

Пишем под *nix

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

Linux Capabilities: новый root, объяснения и примеры работы

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

Изначально с Capabilities я лично столкнулся в своем проекте ServeHub-2, когда настраивал контейнеры в docker-compose. Если быть более конкретным, я настраивал WG-easy с использованием AmneziaWG, которому нужны были привилегии, связанные с загрузкой модулей ядра и настройками интерфейсов. До этого я слышал о Capabilities, но не знал что это такое, поэтому решил подробнее в этом разобраться.

Сначала разберу общее понятие, что вообще такое Capabilities (далее буду кратко писать CAP), потом постепенно перейду к примерам.

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

Читать далее

Откуда взялся /dev/null, и почему без него сломается половина скриптов

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

Файл /dev/null есть в каждой Linux-системе. Он весит ноль байт, но именно туда ежедневно сливаются терабайты ненужного вывода, а если его удалить, то вовсе падут cron, ssh и половина ваших bash-скриптов. Под катом расскажу, откуда взялась эта «чёрная дыра», почему это не обычный файл, а псевдоустройство, и что на нём завязано. 

Читать

AWG-Easy 3: как с помощью вайб-кода сделал простую панель для AmneziaWG 3.x

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели15K

Как я навайбкодил панель для Wireguard ASC 3.x чтобы не просто безопасно выходить в Интернет, но и объединять устройства в одну сеть.

Читать далее

Как настроить nftables на удалённом сервере без риска потерять SSH‑доступ

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели9.8K

Одна команда с policy drop может оставить администратора без доступа к серверу — особенно когда исправлять ошибку уже некому. Разберём рабочий сценарий безопасной настройки nftables: подготовку правил, атомарную загрузку конфигурации и автоматический откат изменений при потере соединения.

В результате получится понятная схема, которую можно применять при настройке firewall на удалённых Linux‑серверах.

Читать гайд

UnixGPUForge, или Как я решил написать свой демон для работы с видеокартами для Linux

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

Всем привет! Сегодня я расскажу вам свой путь к написанию демона для работы с видеокартами (пока только с Nvidia).

Для начала немного предысториио себе, для меня линукс не новинка, но и не та ОС, с которой я долго взаимодействовал. Я разработчик с коммерческим стажем в финтехе, и с линуксом знаком был ранее только как с очень практичной ОС для серверов. И вот однажды я стал полноценным «линуксоидом», решив перейти к более практичной для кастомизации и гибкой настройки ОС. Выбрал я дистрибутив на основе Арча, а именно CachyOS, как и многие (наверное) я люблю при наличии свободного времени поиграть в игры.

Читать далее

Почему MoE-модель тормозит? Чек-лист из трех шагов

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели6K

Вы запускаете большую MoE‑модель (например, Qwen, DeepSeek, Mixtral) на локальной машине через llama.cpp / llama-server, но скорость генерации токенов в разы ниже ожидаемой. Статья — для Linux-пользователей с гибридными процессорами Intel 12-го поколения и новее и видеокартами NVIDIA (CUDA). Конфигурация: RTX 4070 (12 ГБ), i5-12600K, 32 ГБ DDR5-6000.

Статья написана по мотивам публикации "Local LLM Inference Optimization: The Complete Guide" и является частью цикла статьей по траблшутингу и оптимизации работы языковой модели на локальных машинах.

Открыть чек-лист

tmux у сисадмина — разбивает терминал, реанимирует сессии, уносит хаос

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

Каждый, кто работает в терминале, держит открытыми сразу несколько вкладок: в первой смотрит логи, во второй следит за списком запущенных процессов через htop, в третьей работает с Git, в четвертой запускает миграции базы данных. При переключении между вкладками легко запутаться, закрыть нужную, а при обрыве связи — потерять запущенные процессы и сессии. 

Привет! Я Саломея, продуктовый технический писатель в Selectel. В этой статье поделюсь своим опытом, как с помощью tmux упорядочить этот хаос и сделать работу удобнее. Разделим окно терминала на панели, запустим сессию, которая не прервется при закрытии окна, автоматизируем настройку рабочего пространства. Посмотрим, как выполнять команду сразу на нескольких серверах.

Читать далее →

Простая декларативная установка NixOs, часть 1 — Настройка конфигурации

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели8K

Эта статья является прямым продолжением этой статьи, посвящённой декларативной разметке диска через disko.

Что мы будем делать сегодня?

Мы с вами составим минимально-рабочий конфиг для нашей системы. Под "минимально-рабочим" я имею в виду: без графического окружения(XFCE, GNOME и прочее), углублённых настроек(установка zsh, например). Мы настроим: загрузчик, сеть, пользователя, звук, локализацию, подключим наш файл disko-config.nix.

Читать далее

Создаём простейший киоск при помощи Yocto

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели14K

Я уже рассказывал, как можно собрать минимальный Linux под различные архитектуры. Также я описывал свой эмулятор известной игры «Ну, Погоди!». В этой статье я хочу рассказать, как создать дистрибутив Linux с моим эмулятором, который будет работать в режиме киоска.

Вы сталкивались с операционными системами, работающими в режиме киоска, когда снимали деньги в банкомате, взвешивали продукты в супермаркете или покупали товар на кассе самообслуживания.

Читать далее

Замерщик под Wayland — экранная линейка, скриншотер и пипетка на C++ и GTK4

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели6.5K

Переписал с Perl/GTK3 на C++/GTK4 ds-measurer — утилиту для измерений поверх живого экрана, снятия скриншотов (в буфер обмена и/или на диск) и цветов в различных CSS-нотациях (в буфер обмена и/или c выводом на экран).

Есть поддержка цветовых схем с переключением по ним, направляющих с прилипанием к ним, выделение из центра и/или с фиксированным соотношением сторон, настраиваемые сетки и хоткеи.

Читать далее

Omarchy — Arch Linux с красивыми обоями привлёк 10 миллионов долларов и вызвал споры в сообществе

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели7.7K

В твиттере уже несколько дней не утихают споры по поводу Omarchy — Linux дистрибутива от создателя фреймворка Ruby on Rails. Дистрибутив недавно получил крупное обновление 4.0 Quattro, но не оно стало причиной дискуссий. Создатель основал некоммерческую организацию Omacom Foundation и привлёк 8 миллионов долларов (уже 10) на развитие и поддержку дистрибутива. Проект уже объявил[1][2], что будет спонсировать разработку двух проектов, на которых основан — Hyprland и quickshell чтобы их создатели могли свободно продолжать работу над своими проектами, не думая об источнике финансирования.

Это вызвало споры в сообществе о полезности дистрибутива:

Энтузиасты считают, что дистрибутив создаёт импульс, который приведёт в Linux новых пользователей

Скептики указывают на отсутствие фундаментальной ценности в дистрибутиве (Arch Linux с предустановленными настройками и приложениями) и наличие уязвимостей.

Так кто же из них прав? Сначала приведу короткую информацию о дистрибутиве, аргументы обеих сторон, которые видел, и в конце приведу своё мнение по поводу полезности дистрибутива для сообщества. Сразу скажу - я не пробовал Omarchy, но настольным Linux пользуюсь больше 10 лет и вопросы, поднимаемые в этой дискуссии, не специфичны для дистрибутива, просто он спровоцировал новый виток их обсуждения.

Читать далее

Декларативная разметка дисков в NixOS с помощью Disko: от конфига до готовой ФС

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

Каждый, кто хоть раз устанавливал Linux вручную, знает этот ритуал: загрузиться с Live‑образа, запустить fdisk или parted, создать таблицу разделов, отформатировать их в btrfs/ext4, создать субтома, а затем вручную примонтировать всё это в /mnt.

Конечно, такой подход можно использовать и при установке NixOs. Но вопрос — зачем?

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

В этой статье мы этим вопросом и займёмся, а поможет нам в этом известная утилита disko. Мы напишем чистый декларативный конфигурационный файл в ДВУХ вариантах:

Читать далее

OpenTelemetry Filelog Receiver: руководство по приему лог‑файлов

Уровень сложностиСредний
Время на прочтение24 мин
Охват и читатели7.9K

OpenTelemetry постепенно становится универсальным пылесосом для телеметрии. Осталось только научить его аккуратно засасывать всё то наследие, которое приложения десятилетиями складывали в файлы. В этом переводе статьи разбирается как использовать filelog receiver на практике — от простого чтения JSON‑логов до продакшен‑сценариев с настройкой производительности. Ещё больше полезных материалов я публикую у себя в авторском телеграм‑канале Мониторим ИТ. Всегда рад новым подписчикам.

Даже в эпоху облачных приложений и распределенного трейсинга обычные файлы логов остаются одним из самых ценных источников достоверной информации в любой системе. От корпоративных приложений и пакетных заданий до NGINX, баз данных и локальной инфраструктуры — критически важная диагностическая информация по‑прежнему записывается на диск.

Получатель filelog в OpenTelemetry Collector позволяет интегрировать эти логи в современный конвейер наблюдаемости. Он непрерывно отслеживает файлы, анализирует их содержимое и преобразует необработанный текст в структурированные записи логов OpenTelemetry.

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

Прежде чем углубляться: если вы контролируете приложения, записывающие эти логи, наилучшим решением будет настроить их на вывод структурированных JSON‑логов, размещённых в одной строке. Чтобы получатель filelog в этом случае стал простым и удобным уровнем приема данных.

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

Начнём!

Читать далее

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

Путь к ubuntu touch и обратно

Уровень сложностиСредний
Время на прочтение18 мин
Охват и читатели10K

Квест пройден! Я установил на смартфон линукс, живя в России, в августе 2026 года, без VPN, и теперь у меня Ubuntu Touch 24.04–1 на борту старого доброго Poco X3 NFC. Конечно, в других условиях места или времени можно было бы сделать всё гораздо проще, но… Это был вызов, и я его принял. Не спрашивайте меня, зачем я это сделал — хотел поразвлечься, получить девайс с линуксом, который можно брать с собой куда угодно. Возможно, когда‑нибудь я поделюсь и опытом использования подобных девайсов... Но сейчас, когда квест по установке Ubuntu Touch на смартфон, которому средняя цена на авито пять тысяч рублей, пройден, я хочу поделиться своим опытом его прохождения (возможно, чтобы помочь кому‑то, кто в будущем решит пройти этот квест самостоятельно). И это не просто «подождать неделю, нажать кнопочку в программе — и она всё сама сделает», у меня установка заняла приличное время, не всё оказалось так просто (точнее даже так: всё оказалось совсем не просто). Собрав, пожалуй, все грабли, какие только могут быть встречены простым пользователем (за исключением полного окирпичивания), я готов описать их, а самое главное — поделиться найденными мной способами решения каждой проблемы.

Статья называется «путь к ubuntu touch и обратно» потому, что в ней я опишу не только, как установить на Poco X3 NFC линукс, но и как вернуться с него обратно на андроид, возможно — даже на лучшую версию, чем у вас была раньше. Если вы (вдруг) решите проделать этот путь вместе со мной, сначала прочитайте всё, от первого до последнего слова, хорошенько взвесьте своё решение — потянете ли, и… возможно, вы тоже захотите попасть в клуб владельцев «линуксофонов», который насчитывает от 150 до 250 тысяч активных пользователей (в мире линукс нет скрытой телеметрии, но когда телефон проверяет наличие обновлений, сервер фиксирует уникальный запрос). Итак, пристегните ремни — и… В любом случае сразу хочу предупредить, что все действия со своим смартфоном вы выполняете на свой страх и риск, я здесь ни при чём, я описал свой опыт, если у вас что‑то может пойти не так, оно и пойдёт не так! В общем, если мне не удалось вас испугать — вперёд, поехали!

Читать далее

Make STL Cringe Again: Как я динамические строки на C создавал

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

Привет, Хабр! Однажды я подумал, что вот не умеют разработчики жить. В каждом из языков есть свои напасти (от которых, в принципе, спасаются разве что разработчики-полиглоты). Возьмем хотя бы C++ — даже без его шаблонов, исключений, и т.д., там все еще много мраков. Возьмем хотя бы iostream — он, блин, весит 2 МБ в последней версии GCC при компиляции под Windows! Или, вот, std::string — динамическая строка. Звучит интересно на бумаге, учитывая, что язык не из добрейших, но на практике...

Читать далее

BlocklyKlik — автономный редактор кода с компилятором

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

Редактор BlocklyKlik разрабатывается для помощи программирования микроконтроллеров на базе Arduino и ESP32 (эту функцию добавим в будущем) с применением блочного функционала создания кода.

Возможно, вы зададите вопрос: "Так есть же Scratch, mBlock, PictoBlox, да и Arduino ide".

Всё верно, они есть, но в ходе последних лет их использования возникли ряд серьёзных проблем:

Читать далее

Скрипт деплоя отчитался об успехе, а на сервере осталась старая версия: 5 ошибок в bash, которые допускают новички

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

Зелёный пайплайн ещё не означает, что деплой прошёл как надо. В Bash хватает ситуаций, где ошибка теряется, код возврата маскируется, а скрипт спокойно идёт дальше. Разберём типичные ловушки и способы сделать такие сценарии предсказуемее.

Разобрать ошибки

DevToolbox Cheats: шпаргалки всегда под рукой

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

Привет, Хабр! В работе почти каждого, кто плотно сидит в Linux, есть один недостаток: одни и те же команды забываются с завидной регулярностью. Я, например, иногда по десять раз лезу в историю, чтобы уточнить - «так как в rsync директорию исключить, но структуру оставить?»

Можно, конечно, вести свои заметки. Можно - дрессировать Ctrl+R. А можно установить небольшую утилиту, которая будет жить в трее и выдавать нужную подсказку за полсекунды. Именно о такой утилите сегодня и расскажу - DevToolbox Cheats.

Читать далее

Криптомайнер на Gitea: 70% нагрузки CPU, RCE в self-hosted Gitea вместо GitLab и как я закрыл уязвимость

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели8.7K

Всё началось с обычного письма от хостинга: VPS слишком долго держит CPU выше 70%. Я открыл Gitea посмотреть, что происходит, а там уже был чужой репозиторий.

По логам восстановил атаку почти по секундам: регистрация, repository, diffpatch, Git hook, RCE. От первого запроса до proof прошло около 11 секунд.

А дальше обнаружился loader крипто-майнера. Покажу, как это произошло и что пришлось переделать на сервере.

Читать разбор

С++20 и асинхронный ввод-вывод для обработки крашей приложения

Уровень сложностиСредний
Время на прочтение23 мин
Охват и читатели6.9K

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

Читать далее