<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" >

  <channel>
    <title><![CDATA[Все посты подряд / Linux / Хабр]]></title>
    <link>https://habr.com/ru/hubs/linux_dev/posts/</link>
    <description><![CDATA[Linux – пишем под *nix]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Mon, 04 May 2026 19:04:48 GMT</pubDate>
    
    
      <image>
        <link>https://habr.com/ru/</link>
        <url>https://habrastorage.org/webt/ym/el/wk/ymelwk3zy1gawz4nkejl_-ammtc.png</url>
        <title>Хабр</title>
      </image>
    

    
      
        
    

  

  
  <item>
    <title><![CDATA[Пост @Elias292 — Linux — 04.05.2026 12:33]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1031102/</guid>
    <link>https://habr.com/ru/posts/1031102/?utm_campaign=1031102&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Да не может быть!<br><br>Вы в интернете чегонть понимаете?<br>Задам простой вопрос:<br>Смотри… Есть компьютер, и сервер с сайтом. Они подключены к одному свичу.<br>Как запретить клиенту подключение к сайту? <br>Не трогая настройки свича, клиента, и сервера ?</p><p>Очевидный ответ…<br><br>Я не верю что это так просто, и так легко!<br>Но вот прямо щас сижу и сморю tcpdump и офигеваю...<br><br>Смотри: клиент заходит на сайт (https). <br>Сайт отвечает ему: у меня такой сертификат. <br>Клиент идет в интернет проверить сертификат. <br>РКН режет эту проверку. <br>Клиент не верит серверу и не заходит на него.</p><p>Легко!<br><br>Да не может такого быть!</p> <a href="https://habr.com/ru/posts/1031102/?utm_campaign=1031102&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Mon, 04 May 2026 09:33:50 GMT</pubDate>
    <dc:creator><![CDATA[Elias292]]></dc:creator>
      
      <category><![CDATA[ркн]]></category><category><![CDATA[блокировки сайтов]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @K0SHiK — Linux — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1030538/</guid>
    <link>https://habr.com/ru/posts/1030538/?utm_campaign=1030538&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Ubuntu 26.04 LTS (Resolute Raccoon) Взгляд системного администратора</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/279/fbc/705/279fbc70591a127a21db8a112fc5a36b.png" width="1536" height="1024"></figure><p>23 апреля 2026 года Canonical выпустила Ubuntu 26.04 LTS Resolute Raccoon. Для меня это старт большого проекта. Работа Linux-администратора в крупной компании подразумевает создание «золотого образа», который потом годами будет крутиться на сотнях машин.</p><p>В мои задачи входит поддержка систем управления конфигурациями. И большая часть хостов для пользователей крутится на подготовленной Ubuntu с нужным набором программ, политиками, настройками рабочего окружения, сертификатами, репозиториями, ограничениями, автозапуском, удалённым доступом и прочей инфраструктурной обвязкой. Срок поддержки заявлен до 2031 года. Для корпоративной среды это главный аргумент: если сейчас нормально подготовить дистрибутив, на нём можно спокойно жить ещё 5 лет.</p><p>Первое знакомство.</p><p>Canonical в документации указывает для Ubuntu Desktop 26.04 минимум 6 ГБ RAM, 2 GHz dual-core CPU и 25 ГБ. В чистом виде, без swap-файла, система заняла у меня около 6.6 ГБ на диске. Потребление оперативки на старте чуть меньше 2 ГБ. На фоне этого официальная рекомендация в 6 ГБ RAM выглядит как оценка для комфортной работы. Думаю после загрузки всех требуемых пакетов, браузеров с десятками вкладок, мессенджерами, антивирусами, агентами и прочими пожирателями ресурсов будет в самый раз. После тестовой установки нескольких тяжеловесных приложений, система ощущается плавной и отзывчивой. Дальше предстоит выяснить что поменялось в системе, где могут сломаться сценарии Puppet, не поедут ли настройки dconf/gsettings и ещё тысячи других мелочей.</p><p>Что нового в «Решительном еноте»?</p><p>Если сравнивать с 22.04 (которая до сих пор остается основной рабочей лошадкой во многих конторах), то это довольно крупный технологический скачок.</p><ul><li><p>Ядро Linux 7.0. Ubuntu 26.04 базируется на новой мажорной версии ядра. Это поддержка самого свежего железа, оптимизации в работе планировщика, а также свежие фичи в сетевом стеке.</p></li><li><p>GNOME 50 принёс улучшения в адаптации интерфейса под небольшие экраны, аппаратное ускорение записи экрана, прокачанный remote desktop и более плавную работу. GNOME-сессия теперь работает только на Wayland. Старый добрый X11 не бросили (он работает через XWayland), но стандартная сессия как X.org больше не запускается. Здесь есть риск что все настройки связанные с графикой и удалённым доступом могут сломаться.</p></li><li><p>Также Canonical удалила PreLogin и PostSession скрипты. Это может задеть корпоративные сценарии, например синхронизацию домашней директории при входе/выходе или очистку временных данных.</p></li><li><p>Расширилось использования Rust в системе. Это помогает бороться с целым классом ошибок памяти, что всё равно не делает утилиты полностью безопасными.</p></li><li><p>APT 3.1. Наконец то история операций и команды для отката: apt history-info, apt history-undo, apt history-redo, apt history-rollback. Вещь полезная, особенно когда случайно удалил лишнее.</p></li></ul><p>Так же появилось несколько изменений, которые важны для администратора.</p><ul><li><p>Dracut — новый механизм сборки initramfs по умолчанию. Он отвечает за ранний этап загрузки системы: подготовку драйверов, модулей, шифрования дисков и всего, что нужно до старта основной ОС.</p></li><li><p>TPM-backed full-disk encryption — полнодисковое шифрование с привязкой ключей к TPM-чипу. Система может разблокироваться автоматически, если проверка целостности прошла успешно. Это удобно, но требует аккуратности при обновлениях BIOS или замене платы.</p></li><li><p>CUDA и ROCm в репозиториях Ubuntu — упрощённая установка инструментов для вычислений на GPU, что полезно для ML.</p></li></ul><p>Итог</p><p>Первое впечатление у меня положительное. Система установилась без сюрпризов, занимает умеренно места, по памяти выглядит адекватно, интерфейс работает плавно. В системе заявлено довольно много новых технологий, что обещает начало долгого марафона по настройке и тестированию. Будем смотреть, как Енот покажет себя в «боевых» условиях.</p> <a href="https://habr.com/ru/posts/1030538/?utm_campaign=1030538&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Mon, 04 May 2026 05:30:02 GMT</pubDate>
    <dc:creator><![CDATA[K0SHiK]]></dc:creator>
      
      <category><![CDATA[linux]]></category><category><![CDATA[ubuntu]]></category><category><![CDATA[инфраструктура]]></category><category><![CDATA[администрирование linux-систем]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @ptsecurity — Блог компании Positive Technologies (+2) — 01.05.2026 18:28]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/pt/posts/1030496/</guid>
    <link>https://habr.com/ru/companies/pt/posts/1030496/?utm_campaign=1030496&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Copy.Fail 🐧</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/517/add/78f/517add78f5916d17fe3ed8381a0f92ed.png" width="1412" height="687"></figure><p>Исследователи <a href="https://copy.fail/#exploit" rel="noopener noreferrer nofollow">обнаружили</a> баг в ядре Linux, который существовал в системах с 2017 года и затрагивает практически все дистрибутивы.</p><p>Уязвимость <a href="https://nvd.nist.gov/vuln/detail/CVE-2026-31431" rel="noopener noreferrer nofollow">CVE-2026-31431</a>, которую мы считаем трендовой, состоит из четырех шагов:</p><p>1️⃣ Пользователь открывает сокет <code>AF_ALG </code>и инициализирует AEAD-алгоритм без привилегий;</p><p>2️⃣ Через <code>splice()</code> страницы кэша целевого файла попадают в буфер операции;</p><p>3️⃣ Ошибка в <code>authencesn</code> дает запись 4 байт за границы буфера прямо в страницы кэша;</p><p>4️⃣ Ядро исполняет модифицированный setuid-файл из кэша → выполнение кода с правами root.</p><p>Данная цепочка уязвимости частично схожа с Dirty Pipe (<a href="https://nvd.nist.gov/vuln/detail/cve-2022-0847" rel="noopener noreferrer nofollow">CVE-2022-0847</a>), которая также использует системные вызовы:</p><p>• <code>pipe</code> — создает однонаправленный канал передачи данных;</p><p>• <code>splice</code> — позволяет передавать данные между файловыми дескрипторами без промежуточного копирования.</p><blockquote><p><em>Так как данная уязвимость уже обнаруживалась в PT Sandbox при анализе ПО в образе Astra Linux, процесс эксплуатации новой уязвимости Copy Fail также обнаруживалась в PT Sandbox еще до выхода публичного эксплойта</em>.</p></blockquote><p>Благодаря этому эксплойту можно перезаписывать не только suid-файлы, но и проводить другие модификации, делая системные изменения более скрытными.</p><p><strong>Как исправить 🔧</strong></p><p>Если вы администрируете Linux-системы — обновите ядро. Патч зафиксирован в коммите a664bf3d603d. Основные дистрибутивы начали выпускать исправленные пакеты с 29 апреля. После обновления потребуется перезагрузка.</p><p>Если немедленное обновление невозможно — временная мера: отключить модуль algif_aead:</p><pre><code class="powershell">
echo "install algif_aead /bin/false" &gt; /etc/modprobe.d/disable-algif-aead.conf

rmmod algif_aead 2&gt;/dev/null
</code></pre><p>(<em>Источник: </em><a href="https://t.me/ptescalator" rel="noopener noreferrer nofollow"><em>https://t.me/ptescalator</em></a>)</p><blockquote><p><em>Уязвимость CVE-2026-31431 связана с локальным повышением привилегий в компоненте ядра Linux AF_ALG. Она вызвана ошибкой работы с памятью и позволяет непривилигированному пользователю поднять привилегии до максимальных (root). Это позволяет злоумышленнику полностью захватить систему: читать и изменять любые файлы, включая пароли и ключи, подменять системные файлы, отключать защитные механизмы и средства мониторинга, незаметно устанавливать бэкдоры и закрепляться в системе, скрывать следы своей активности, использовать устройство как возможность для атак на другие сетевые активы. Злоумышленник может проэксплуатировать уязвимость в рамках атак на инфраструктуру, которые могут привести к недопустимым последствиям (утечки информации, кража денежных средств, техногенные катастрофы и т.п).</em></p><p><em>Эксплуатабельность недостатка безопасности была подтверждена на актуальных версиях популярных дистрибутивов Linux: Ubuntu, Amazon Linux, RHEL, SUSE и другие.</em></p><p><em>Ядро Linux Kernel уже сталкивалось с громкими уязвимостями повышения привилегий - например, Dirty Cow и Dirty Pipe. Как сообщают исследователи, в отличие от предыдущих уязвимостей, Copy Fail — это прямолинейная логическая ошибка. Одна и та же программа (скрипт), не требуя каких-либо изменений, работает на всех протестированных дистрибутивах и архитектурах. Эксплойт для уязвимости - это короткий скрипт на Python, использующий только стандартные модули os, socket, zlib. Он не требует никакой настройки под конкретный дистрибутив или архитектуру. Экслуатация уязвимости не детектируется встроенными инструментами безопасности ОС. Кроме того, недостаток безопасности может ставить под угрозу межконтейнерное воздействие и работу кластеров Kubernetes.</em></p><p><em>На данный момент для того, чтобы защититься, можно обновить ядро самостоятельно. Если вы не готовы это делать, следует дождаться, когда обновления пакетов ядра выпустит вендор вашего Linux-дистрибутива. В качестве альтернативного решения исследователи предлагают заблокировать создание сокетов AF_ALG.  Обнаружить эту уязвимость в инфраструктуре можно с помощью MaxPatrol VM. MaxPatrol SIEM детектирует уязвимость с помощью правила Unix_Privilege_Escalation_Via_GTFOBINS.</em></p><p><strong>Александр Леонов, ведущий эксперт по управлению уязвимостями PT Expert Security Center, Positive Technologies</strong></p></blockquote> <a href="https://habr.com/ru/posts/1030496/?utm_campaign=1030496&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 01 May 2026 15:28:21 GMT</pubDate>
    <dc:creator><![CDATA[ptsecurity (Positive Technologies)]]></dc:creator>
      
      <category><![CDATA[уязвимости и их эксплуатация]]></category><category><![CDATA[cve-2026-31431]]></category><category><![CDATA[ядро linux]]></category><category><![CDATA[linux kernel]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @anna_lesnykh — Блог компании Флант (+4) — 01.05.2026 17:41]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/flant/posts/1030482/</guid>
    <link>https://habr.com/ru/companies/flant/posts/1030482/?utm_campaign=1030482&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Опубликовали митигацию CVE-2026-31431 для Deckhouse Kubernetes Platform</strong><br><br>Уязвимость <a href="https://nvd.nist.gov/vuln/detail/CVE-2026-31431" rel="noopener noreferrer nofollow">затрагивает</a> модуль ядра Linux algif_aead (интерфейс AF_ALG). До выхода обновлений ядра в дистрибутивах предлагаем временное решение на уровне платформы.</p><p>В репозитории:</p><p>• <code>NodeGroupConfiguration</code>, который блокирует загрузку модуля и выгружает его, если он загружен;</p><p>• <code>FalcoAuditRules</code> для детекта попыток эксплуатации (доступно в DKP EE и CSE).</p><p>Применяется через <code>kubectl apply</code>, подробности и инструкции <a href="https://github.com/deckhouse/d8-copy-fail-mitigation" rel="noopener noreferrer nofollow">в README</a>.</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/121/815/f3d/121815f3d696aa9c7bc26972037e4faa.jpg" width="1074" height="480"></figure> <a href="https://habr.com/ru/posts/1030482/?utm_campaign=1030482&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 01 May 2026 14:41:53 GMT</pubDate>
    <dc:creator><![CDATA[anna_lesnykh (Флант)]]></dc:creator>
      
      <category><![CDATA[cve]]></category><category><![CDATA[deckhouse kubernetes platform]]></category><category><![CDATA[linux]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @Lomserman — Настройка Linux (+1) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1027086/</guid>
    <link>https://habr.com/ru/posts/1027086/?utm_campaign=1027086&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Третья раскладка в Linux Mint<br><br>Задача:<br>1. чтобы раскладки <code>us</code> и <code>ru</code> переключались как обычно, а <code>rs</code> - по требованию.<br>2. Чтобы при попытке переключить раскладку - мы возвращались в привычный цикл <code>us</code> <code>ru</code><br><br>Зачем:<br>Третья раскладка бывает полезна, но зачастую она не нужна во время работы и конфликтует с мышечной памятью, которая за 30+ лет перед клавиатурой выучила, что есть только две раскладки :)<br><br>Что же делать:<br>На примере - добавим раскладку сербской латиницы, причём - вариант QWERTY, где Z и Y сидят на привычных местах.</p><ol><li><p>Добавляем в систему раскладку сербской латиницы в варианте Qwerty, делается это через  Keyboard -&gt; Layouts</p></li><li><p>Заходим в терминал и пишем: <code>setxkbmap -query</code><br>Видим примерно такое:</p><pre><code class="powershell">rules:      evdev
model:      pc105
layout:     us,ru,rs
variant:    ,,latinyz
options:    grp:win_space_toggle,terminate:ctrl_alt_bksp,grp:caps_toggle</code></pre><p>Внимание на <code>us,ru,rs</code> и вариант - <code>latinyz</code></p></li><li><p>Пилим исполняемый shell скрипт, например в <code>~/use_default_layout.sh</code><br>Этот скрипт будет временно убирать сербскую раскладку, чтобы не мешалась.</p><pre><code class="powershell">#!/bin/bash
current_layouts=$(setxkbmap -query | grep layout | awk '{print $2}')

if [[ "$current_layouts" != "us,ru" ]]; then
    setxkbmap -layout "us,ru"
fi</code></pre></li><li><p>Идём в Keyboard, добавляем кастомные сочетания клавиш:</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/ca6/001/f63/ca6001f63e32b29017f12d43fdca3ea9.png" alt="Картинка на случай, если кто-то ни разу этим не пользовался." title="Картинка на случай, если кто-то ни разу этим не пользовался." width="804" height="481"><div><figcaption>Картинка на случай, если кто-то ни разу этим не пользовался.</figcaption></div></figure><p>Я переключаю раскладку с помощью <strong>Caps Lock</strong>, поэтому рассказываю как удобно мне. Вы делайте на те клавиши, которые удобны вам (иначе какой смысл).<br><br>- Переключение на сербскую раскладку: <strong>CTRL+Caps Lock</strong>, команда:<br><code>setxkbmap -layout rs -variant latinyz</code><br><br>- Отмена сербской раскладки: просто <code>Caps Lock</code>, который зовёт скрипт <code>use_default_layout.sh</code> из пункта 3.</p></li></ol><p>Готово, вы великолепны.</p> <a href="https://habr.com/ru/posts/1027086/?utm_campaign=1027086&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 23 Apr 2026 14:25:51 GMT</pubDate>
    <dc:creator><![CDATA[Lomserman]]></dc:creator>
      
      <category><![CDATA[раскладка клавиатуры]]></category><category><![CDATA[linux mint]]></category><category><![CDATA[сербский язык]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @JordanCpp — C (+4) — 20.04.2026 14:17]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1025592/</guid>
    <link>https://habr.com/ru/posts/1025592/?utm_campaign=1025592&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Переосмысление библиотеки <a href="https://github.com/JordanCpp/LDL" rel="noopener noreferrer nofollow">LDL</a>.</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/8eb/316/594/8eb3165940792d960cabf23cb81bb10c.jpg" width="802" height="632"></figure><p>Я полностью пересмотрел концепцию библиотеки LDL.</p><p><strong>Что такое LDL?</strong><br>Это графическая библиотека с единым API для всех систем как старых, так и новых.</p><p>Раньше я писал её на C++98, что давало хорошую портабельность. Но сейчас я пересмотрел многие тезисы, которые декларировал на GitHub, чтобы наконец добраться до первого релиза.</p><p>Новая стратегия</p><p>Я решил выпускать релизы&nbsp;<strong>без реализации полного функционала</strong>&nbsp;(графика, звук, шрифты и т.д.) постепенно, итеративно.</p><ul><li><p>Перешёл на&nbsp;<strong>C89</strong>&nbsp;для максимальной переносимости. Это не только DOS или Windows 3.x, но и старые системы вроде Solaris, PlayStation 1 и другие.</p></li><li><p>Для&nbsp;<strong>первого релиза</strong>&nbsp;реализую минимальный базовый функционал: графику (OpenGL, Vulkan), окна и события. По возможностям аналог GLFW.</p></li><li><p>С каждым следующим релизом буду добавлять: 2D-рендер, звук, шрифты и прочее.</p></li></ul><p>Лицензия и целевые платформы</p><ul><li><p>Лицензия меняется на&nbsp;<strong>LGPLv3</strong>.</p></li><li><p>На старте поддерживаются&nbsp;<strong>Windows и Linux</strong>.</p></li></ul><p>Качество и инструменты</p><p>При разработке использую:</p><ul><li><p>AddressSanitizer (ASan)</p></li><li><p>UndefinedBehaviorSanitizer (UBSan)</p></li><li><p>Различные анализаторы кода</p></li></ul><p>Я считаю, что такая стратегия полезнее, чем годами доводить библиотеку до версии 1.0 в офлайн-режиме.</p><p><strong>Примеры и бэкенды</strong></p><ul><li><p>Добавлю&nbsp;<strong>десятки примеров</strong>&nbsp;с OpenGL 1.x, OpenGL 3.x и Vulkan.</p></li><li><p>Буду добавлять&nbsp;<strong>бэкенды для LDL</strong>: не только под ОС, но и поверх других графических библиотек — SDL, SFML, GLFW и т.д.</p></li><li><p><strong>API остаётся единым</strong>&nbsp;для всех бэкендов.</p></li></ul><p>Это позволит сразу добавить поддержку звука и шрифтов (через бэкенды), а в нативных версиях реализовывать их позже.</p><p>&nbsp;<strong>2D-рендер без границ</strong></p><p>Одной из главных задач LDL я вижу создание&nbsp;<strong>единого 2D-интерфейса</strong>, который стирает различия между поколениями графики.</p><p>Вам не нужно думать о том, что находится в системе: современная видеокарта с&nbsp;<strong>Vulkan</strong>, старый ускоритель с&nbsp;<strong>OpenGL 1.2</strong>&nbsp;или вообще только центральный процессор (<strong>Software Rendering</strong>).</p><ul><li><p><strong>Единый интерфейс</strong>: Вы используете одни и те же команды для рисования пикселей, линий и спрайтов.</p></li><li><p><strong>Адаптивность</strong>: LDL сам выберет наиболее эффективный способ вывода изображения. На современной системе это будет аппаратное ускорение, а на «железе» без видеокарты оптимизированный программный растеризатор.</p></li><li><p><strong>Визуальная честность</strong>: Ваш визуальный стиль останется неизменным, на чем бы он ни запускался. Это дает возможность делать игры и приложения, которые выглядят и работают одинаково и на ретро-ноутбуке, и на современном мониторе.</p></li></ul><p><strong>Философия: Машина времени в вашем коде</strong></p><p>Зачем тратить силы на поддержку систем, которые многие считают «трупами»?</p><p><strong>1. Борьба с цифровым забвением</strong></p><p>Современный софт живет 3–5 лет. Мы выбрасываем железо не потому, что оно сломалось, а потому, что софт стал слишком тяжелым и ленивым. LDL — это протест против «запланированного устаревания». Я хочу, чтобы код, написанный сегодня, мог дышать в железе любой эпохи.</p><p><strong>2. Инженерный аскетизм</strong></p><p>Когда у тебя гигабайты памяти, ты перестаешь ценить каждый байт. Написание библиотеки под C89 для слабого железа — это духовная практика для программиста. Это возвращение к искусству находить изящные решения в условиях жестких ограничений. Каждый сэкономленный такт процессора — это дань уважения инженерам прошлого.</p><p><strong>3. Преемственность поколений</strong></p><p>Мы стоим на плечах гигантов, но часто забываем их имена. LDL сохраняет возможность для диалога между эпохами. Это инструмент, который позволяет современному разработчику почувствовать «металл» старых машин, не теряя связи с современными технологиями вроде Vulkan.</p><p><strong>Итог</strong></p><p>LDL — это&nbsp;<strong>Little Directmedia Layer</strong>. Он маленький не потому, что слабый, а потому, что в нем нет ничего лишнего. Это попытка создать код, который будет принадлежать не конкретной версии ОС, а истории программирования в целом.</p><p>Один API. Один код. Тридцать лет компьютерной истории.</p> <a href="https://habr.com/ru/posts/1025592/?utm_campaign=1025592&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Mon, 20 Apr 2026 11:17:08 GMT</pubDate>
    <dc:creator><![CDATA[JordanCpp]]></dc:creator>
      
      <category><![CDATA[c89]]></category><category><![CDATA[c++]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @Assador — Текстовые редакторы и IDE (+4) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1024892/</guid>
    <link>https://habr.com/ru/posts/1024892/?utm_campaign=1024892&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Пока везут в&nbsp;Zed нативный diff выделенных кусков кода, с&nbsp;подсветкой, преферансом и&nbsp;барышнями, мы будем пить то, что&nbsp;есть&nbsp;😁</p><p>Скрипт намбер&nbsp;ван:</p><pre><code class="bash">#!/bin/bash

FILE1="/tmp/clp.saved"

# xclip -o -selection primary &gt; "$FILE1"
wl-paste --primary &gt; "$FILE1"
notify-send "Diff" "Первый фрагмент сохранён"</code></pre><p>вешаем на&nbsp;одно сочетание клавиш (у&nbsp;меня, например, для&nbsp;удобства, <code>Alt+Shift+1</code>)<br> (выбираем на&nbsp;вкус для X11 или Wayland)</p><p>Скрипт намбер&nbsp;ту:</p><pre><code class="bash">#!/bin/bash

FILE1="/tmp/clp.saved"
FILE2=$(mktemp /tmp/clp.XXXXXX)

trap 'rm -f "$FILE2"' EXIT

# xclip -o -selection primary &gt; "$FILE2"
wl-paste --primary &gt; "$FILE2"

if [ ! -s "$FILE1" ] || [ ! -s "$FILE2" ]; then
	notify-send "Ошибка" "Нет текста для сравнения"
	exit 1
fi

meld "$FILE1" "$FILE2"</code></pre><p>вешаем на&nbsp;другое сочетание клавиш (у&nbsp;меня, например, <code>Alt+Shift+2</code>)</p><p>Изолента и&nbsp;реактивный двигатель&nbsp;— вот&nbsp;всё, что нам нужно. Лучше, чем&nbsp;ничего, по&nbsp;крайней мере…<br> Первый скрипт сохраняет выделенный текст во&nbsp;временный файл <code>/tmp/clp.saved</code>.<br> Второй скрипт сохраняет выделенный текст в&nbsp;другой временный файл <code>/tmp/clp.XXXXXX</code>, открывает&nbsp;их оба в&nbsp;нашем любимом <strong>Meld</strong>, мы на всё это дело любуемся, сравниваем, закрываем Meld, после чего скрипт удаляет этот второй временный файл со&nbsp;случайным постфиксом, чтобы не&nbsp;болтался зря. Первый, <code>/tmp/clp.saved</code> пока остаётся, чтобы было удобно с&nbsp;одним и&nbsp;тем&nbsp;же «первовыделенным» сравнивать несколько вариантов, и&nbsp;его всегда можно переопределить первым скриптом.</p><p><strong>Итого</strong>: Выделили кусок, <code>Alt+Shift+1</code>, выделили другой кусок, <code>Alt+Shift+2</code>&nbsp;— смотрим, радуемся!&nbsp;😁</p> <a href="https://habr.com/ru/posts/1024892/?utm_campaign=1024892&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Sat, 18 Apr 2026 08:10:30 GMT</pubDate>
    <dc:creator><![CDATA[Assador]]></dc:creator>
      
      <category><![CDATA[zed]]></category><category><![CDATA[meld]]></category><category><![CDATA[bash]]></category><category><![CDATA[лайфхаки]]></category><category><![CDATA[инструменты]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @K2Tech — Блог компании К2Тех (+3) — 17.04.2026 12:42]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/k2tech/posts/1024560/</guid>
    <link>https://habr.com/ru/companies/k2tech/posts/1024560/?utm_campaign=1024560&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong><br>Инженеры перебрали… Linux- кейсов<br><br>23 апреля в 18:00</strong> проводим онлайн-митап про Linux — с живым разбором реальных инцидентов в формате подкаста.&nbsp;</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/9ba/767/d3c/9ba767d3c9c10112f95090fb2c52c0d7.png" width="1920" height="1080"></figure><p><strong>Какие кейсы разберем:</strong></p><ul><li><p>SSH сломался после обычной операции с архивом</p></li><li><p>Сервер не запускается на нужном порту — без очевидной причины</p></li><li><p>После обновления ядра система начинает вести себя странно</p></li><li><p>Сеть в ВМ ломается после добавления интерфейса</p></li><li><p>Балансировщики с одинаковыми конфигами дают разный результат</p></li></ul><p>Обсуждение почти как на офисной кухне, только с логами и командами. А еще дарим мерч, если отправить свой кейс на разбор.</p><p>Подробности и регистрация по <a href="https://promo.k2.cloud/meetup-linux?utm_source=habr&amp;utm_medium=post" rel="noopener noreferrer nofollow">ссылке</a>. </p> <a href="https://habr.com/ru/posts/1024560/?utm_campaign=1024560&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 17 Apr 2026 09:42:03 GMT</pubDate>
    <dc:creator><![CDATA[K2Tech (К2Тех)]]></dc:creator>
      
      <category><![CDATA[linux]]></category><category><![CDATA[кейсы]]></category><category><![CDATA[devops]]></category><category><![CDATA[devops-инженер]]></category><category><![CDATA[облачные сервисы]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @amerov — Linux — 14.04.2026 15:45]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1023378/</guid>
    <link>https://habr.com/ru/posts/1023378/?utm_campaign=1023378&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Конфиг Ghostty для работы хоткеев в нелатинской раскладке:<br></p><pre><code class="diff">keybind = ctrl+shift+key_c=copy_to_clipboard:mixed
keybind = ctrl+shift+key_v=paste_from_clipboard
keybind = ctrl+shift+key_a=select_all
keybind = ctrl+shift+key_e=new_split:down
keybind = ctrl+shift+key_f=start_search
keybind = ctrl+shift+key_i=inspector:toggle
keybind = ctrl+shift+key_n=new_window
keybind = ctrl+shift+key_o=new_split:right
keybind = ctrl+shift+key_p=toggle_command_palette
keybind = ctrl+shift+key_q=quit
keybind = ctrl+shift+key_t=new_tab
keybind = ctrl+shift+key_w=close_tab:this

</code></pre><p><br></p> <a href="https://habr.com/ru/posts/1023378/?utm_campaign=1023378&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 14 Apr 2026 12:45:59 GMT</pubDate>
    <dc:creator><![CDATA[amerov]]></dc:creator>
      
      <category><![CDATA[terminal]]></category><category><![CDATA[ghostty]]></category><category><![CDATA[tty]]></category><category><![CDATA[консоль]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @Ramisya4ka — DevOps (+4) — 01.04.2026 07:03]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1017768/</guid>
    <link>https://habr.com/ru/posts/1017768/?utm_campaign=1017768&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Я не разработчик, но сделал Telegram-бота для Hysteria 2</p><p>Я не программист, языков не знаю, я небольшой руководитель отдела в айти, неплохо знаю серверную архитектуру. Но у меня была простая боль: недавно завел для себя и родни сервер Hysteria 2, до этого было с VLESS на сервере и устал каждый раз руками править YAML, когда нужно:</p><p>добавить или удалить пользователя, выдать доступ, проверить статус, перезапустить сервис и при этом ничего не сломать</p><p>Перерыл интернет и какое было мое удивление, когда я не нашел ничего, абсолютно, то есть единственное решение - либо лазить каждый раз на сервер либо сделать самому.</p><p>Сразу честно: делал с помощью LLM. Статью эту тоже, кстати. Панаму я приготовил. Цель статьи не выпендреж, а просто рассказать о боте, что бы его уже нормальные разработчики посмотрели переделали, может на основе его сделали адекватный продукт</p><p>Почему не SSH?</p><p>Да, можно через SSH, nano и systemctl. Но когда делаешь это регулярно — растёт шанс ошибки.</p><p>Хотелось проще: открыть Telegram, нажать пару кнопок и выдать доступ без ручного редактирования config.yaml.</p><p>Веб-панель тоже рассматривал, но бот оказался быстрее и удобнее “на ходу”.</p><p>Что умел MVP</p><p>Минимум, который был нужен:</p><p>/status — жив ли сервис /users — список пользователей add / delete / enable / disable генерация hy2:// ссылки /logs — последние логи /restart — перезапуск с подтверждением</p><p>Звучит просто. Пока не думаешь о безопасности.</p><p>Главная проблема: бот ≠ root</p><p>Первая (и плохая) идея — дать боту полный доступ: пусть сам правит YAML, дергает systemctl и читает логи.</p><p>Это почти готовый root-доступ извне.</p><p>Я сделал иначе:</p><p>Бот — это интерфейс, не исполнитель.</p><p>Бот хранит данные (SQLite) Все опасные действия делает отдельный helper на сервере Helper: генерирует YAML делает backup валидирует только потом применяет и перезапускает</p><p>В sudoers разрешены только конкретные команды helper-а, а не shell.</p><p>Безопасность (без этого смысла нет)</p><p>Сделал максимально жёстко:</p><p>deny by default доступ только по Telegram user ID (не username) админ-команды только в личке в группах — никаких опасных действий delete/apply/restart — через подтверждение audit log: кто, когда и что сделал</p><p>Бот должен быть параноидальным, а не “удобным для всех”.</p><p>Грабли, на которые я наступил</p><ol><li><p>Права на конфиг permission denied на /etc/hysteria/config.yaml — лечится не перезапуском, а нормальными правами.</p></li><li><p>Cert/key Один неправильный путь — сервис не стартует. Плюс легко сломать доступ к privkey.pem.</p></li><li><p>URI и userpass</p></li></ol><p>hy2:// и hysteria2:// формат username:password спецсимволы нужно кодировать</p><p>Очень легко получить “почти рабочую” ссылку.</p><ol start="4"><li><p>Клиенты На iOS импорт URI иногда работает хуже, чем ручной ввод.</p></li><li><p>OpenWrt + sing-box Сначала “не работает”, потом “работает, но не так”, и только после настройки DNS и роутинга — всё нормально.</p></li></ol><p>Что получилось</p><p>Сейчас это нормальный админ-пульт:</p><p>управляю доступами из Telegram не трогаю YAML руками опасные действия подтверждаются и главное — нет полного root-доступа у бота</p><p>Удобство появилось без видимых дыры в безопасности.</p><p>Про LLM</p><p>Да, я использовал нейронку. Но это не “магическая кнопка”.</p><p>Без продуманной архитектуры (права, границы, apply, валидация, rollback) получилась бы просто опасная игрушка.</p><p>Что бы сделал иначе сразу делал бы helper-архитектуру добавил бы audit log с самого начала разделил бы read и write операции по правам сделал бы preflight-проверки перед apply</p><p>Что дальше</p><p>Планирую:</p><p>улучшить UX, возможно добавить лёгкую веб-панель, оставить Telegram, как быстрый пульт</p><p>Уверен, что в коде кучу дыр в безопасности, еще раз говорю, я код не знаю, мои были  идеи, промты и направление, как сделать лучше на самом сервере.</p><p>P.S. Это моя первая статья, готов ко всем минусам, хейту и так далее. Единственная цель этого поста - рассказать о боте и дать его в народ</p><p>ссылка не репу <a href="https://github.com/Ramisya4ka/hysteria-bot-manager" rel="noopener noreferrer nofollow">https://github.com/Ramisya4ka/hysteria-bot-manager</a> (внутри есть очень подробное Readme)</p> <a href="https://habr.com/ru/posts/1017768/?utm_campaign=1017768&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Wed, 01 Apr 2026 04:03:42 GMT</pubDate>
    <dc:creator><![CDATA[Ramisya4ka]]></dc:creator>
      
      <category><![CDATA[hysteria2]]></category><category><![CDATA[telegram bot]]></category><category><![CDATA[self-hosted]]></category><category><![CDATA[vpn]]></category><category><![CDATA[linux]]></category><category><![CDATA[openwrt]]></category><category><![CDATA[sing-box]]></category><category><![CDATA[devops]]></category><category><![CDATA[информационная безопасность]]></category><category><![CDATA[typescript]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @zersh — Сетевые технологии (+4) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1016382/</guid>
    <link>https://habr.com/ru/posts/1016382/?utm_campaign=1016382&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Постер: Очереди и метрики TCP в Linux (Linux TCP Queues and Metrics)</p><p>Полная схема, которая наглядно показывает весь путь TCP-соединения в ядре Linux.</p><p>Описаны:</p><ul><li><p>все основные очереди (SYN-queue, Accept-queue, Send-Q, RX/TX-буферы);</p></li><li><p>точки возможных дропов пакетов;</p></li><li><p>места тюнинга ключевых параметров (tcp_max_syn_backlog, somaxconn, netdev_max_backlog, tcp_mem и другие);</p></li><li><p>наиболее важные метрики TcpExt_*.</p></li></ul><p>Если открывается сжатая картинка, то полную можно найти в <a href="https://github.com/zersh01/linux-tcp-queues-and-metrics" rel="noopener noreferrer nofollow">гите</a><br></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/5a0/346/78d/5a034678d162bdc735153454645862e7.png" alt="Linux TCP Queues and Metrics (RU)" title="Linux TCP Queues and Metrics (RU)" width="4282" height="5762"><div><figcaption>Linux TCP Queues and Metrics (RU)</figcaption></div></figure> <a href="https://habr.com/ru/posts/1016382/?utm_campaign=1016382&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Mon, 30 Mar 2026 04:02:18 GMT</pubDate>
    <dc:creator><![CDATA[zersh]]></dc:creator>
      
      <category><![CDATA[linux]]></category><category><![CDATA[linux kernel]]></category><category><![CDATA[tcp]]></category><category><![CDATA[sysctl]]></category><category><![CDATA[network]]></category><category><![CDATA[ip]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @Alchemmist — Linux (+4) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1015028/</guid>
    <link>https://habr.com/ru/posts/1015028/?utm_campaign=1015028&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/0f8/b39/8dd/0f8b398dd4092130db8a3fc13d9b30c7.png" width="1876" height="1373"></figure><div class="floating-image"><p><strong>lazy-tmux — быстрый и «ленивый» менеджер сессий tmux</strong></p><p>Весь мой рабочий процесс происходит внутри сессий tmux. Долгое время я использовал <code>tmux-resurrect</code> + <code>tmux-continuum</code>. Они работали… но с нюансами. Иногда терялись все сохранённые сессии, а при множестве активных сессий всё оставалось загружено в память, в частности, запущенные nvim процессы, которые поднимаю lsp, что со временем отъедало все больше и больше ОЗУ.</p></div><p>Я мне нужен был инструмент, который показывает все сессии в виде дерева, но загружает их только когда я впервые перейдёте в одну из них.</p><p>Так родился <strong><a href="https://lazy-tmux.xyz?utm_source=habr" rel="noopener noreferrer nofollow">lazy-tmux</a></strong>, написанный на Go. Ключевые фичи:</p><ul><li><p>Сохраняет текущую сессию, конкретную сессию или все сессии целиком. Снимки сохраняют окна, панели, layout, команды (например, npm, docker-compose, редакторы) и опционально scrollback историю шела.</p></li><li><p>Ленивое восстановление: поднимается только выбранная сессия. RAM не расходуется на всё сразу. </p></li><li><p>Интерактивный TUI браузер с деревом сессий, окон и панелей, таблицей с активными командами, временем последнего снимка, количеством окон/панелей и статусом сессии. Поддержка fuzzy search для быстрого поиска. </p></li><li><p>Навигация и полное управление сессиями и окнами с клавиатуры в TUI браузере сессий. </p></li><li><p>Гибкая сортировка сессий и окон через флаги --session-sort и --window-sort </p></li><li><p> Можно заменить встроенный TUI на fzf, использую облегчённый бинарник. </p></li><li><p> Автосейв через фоновый демон, периодически снимающий все сессии на диск. </p></li><li><p> Восстановление при старте tmux для автоматизации workflow. </p></li></ul><p>Проект ещё молодой, но буду рад любой помощи и идеям по улучшению: <a href="https://github.com/alchemmist/lazy-tmux/issues" rel="noopener noreferrer nofollow">GitHub issues</a></p><p>За моими новостями можно следить в <a href="https://t.me/alchemmist_blog" rel="noopener noreferrer nofollow">Telegram-канале</a></p> <a href="https://habr.com/ru/posts/1015028/?utm_campaign=1015028&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 26 Mar 2026 02:02:00 GMT</pubDate>
    <dc:creator><![CDATA[Alchemmist]]></dc:creator>
      
      <category><![CDATA[tmux]]></category><category><![CDATA[lazy-tmux]]></category><category><![CDATA[terminal]]></category><category><![CDATA[open-source]]></category><category><![CDATA[go]]></category><category><![CDATA[cli]]></category><category><![CDATA[golang]]></category><category><![CDATA[linux]]></category><category><![CDATA[tools]]></category><category><![CDATA[dev-tools]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @Dafer11 — Linux (+1) — 22.03.2026 00:19]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1013168/</guid>
    <link>https://habr.com/ru/posts/1013168/?utm_campaign=1013168&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Всем привет. Я чувствую себя новым человеком! Перешёл на Linux, потому что моя Windows 10 посыпалась после гибернации. Sfc пишет, что всё нормально. Dism — тоже. Тогда мне понадобилось разрешение на запуск: ярлыки, UAC для папок в загрузках, а «Пуск» вообще отказался работать. Лучшим выбором стал Zorin OS, но я устанавливал его два раза. Первый: переход с Windows, второй: после запуска в WinPE для проверки карты памяти (всё-таки Victoria не заработала через Wine) моя разметка диска превратилась в RAW, и мне пришлось заново создавать загрузочную таблицу. Пользуюсь пингвином (маскот Linux) уже два дня, немного непривычно после Win+R, но привыкну. У меня уже был опыт пару недель, и это помогло. Я не жалею, что удалил NTFS-разделы.</p><p>Upd1: Linux слишком гибкий. Вот я пытался накопать библиотеку libnss3 для hl2_linux и в итоге снёс gnome и спустя 2 часа ручного восстановления и зубрения пакетов apt я вернул всё как было</p> <a href="https://habr.com/ru/posts/1013168/?utm_campaign=1013168&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Sat, 21 Mar 2026 21:19:21 GMT</pubDate>
    <dc:creator><![CDATA[Dafer11]]></dc:creator>
      
      <category><![CDATA[linux]]></category><category><![CDATA[zorinos]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @denis-19 — Open source (+4) — 21.03.2026 07:18]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1012972/</guid>
    <link>https://habr.com/ru/posts/1012972/?utm_campaign=1012972&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Команда проекта ReactOS <a href="https://x.com/reactos/status/2031439000708202743" rel="noopener noreferrer nofollow">сообщила</a> о&nbsp;значительном прогрессе в&nbsp;обеспечении совместимости с&nbsp;проприетарными видеодрайверами. Благодаря <a href="https://github.com/reactos/reactos/issues?q=is%3Apr%20author%3ADarkFire01%20label%3Adrivers%20sort%3Acreated-desc%20closed%3A%3E2025-06-01" rel="noopener noreferrer nofollow">серии исправлений</a> и <a href="https://reactos.org/blogs/investigating-wddm/" rel="noopener noreferrer nofollow">внедрению</a> подсистем KMDF (Kernel‑Mode Driver Framework) и WDDM (Windows Display Driver Model) удалось реализовать поддержку примерно 90% драйверов GPU для&nbsp;Windows XP и Windows Server 2003. До&nbsp;внесения изменений запуск многих фирменных драйверов&nbsp;либо заканчивался сбоем,&nbsp;либо работал нестабильно. Теперь&nbsp;же в&nbsp;свежих <a href="https://reactos.org/getbuilds/" rel="noopener noreferrer nofollow">ночных сборках</a> ветки 0.4.16&nbsp;наблюдается устойчивая работа драйверов от&nbsp;различных производителей, включая Intel, NVIDIA и AMD. </p><p>Среди прочего, <a href="https://x.com/reactos/status/2029284725051806137" rel="noopener noreferrer nofollow">продемонстрирована</a> работа ReactOS на&nbsp;реальном оборудовании и загрузка с&nbsp;установленными драйверами для&nbsp;видеокарт уровня Intel GMA 945, Nvidia GeForce 8800&nbsp;GTS и GTX 750&nbsp;Ti и AMD Radeon HD 7530G. Отдельно отмечается успешный запуск на&nbsp;мобильной графике, например Nvidia Quadro 1000M, где помимо 2D/3D‑ускорения также функционируют звук и сетевые подключения. В&nbsp;дополнительных тестах также подтверждена работа на&nbsp;более редких и устаревших конфигурациях, включая ноутбук с&nbsp;Radeon Xpress 1100, а&nbsp;также на&nbsp;высокопроизводительных видеокартах, таких как&nbsp;Nvidia GTX Titan X. </p><p>Особую роль сыграл принятый в&nbsp;основную ветку проекта <a href="https://github.com/reactos/reactos/pull/8613" rel="noopener noreferrer nofollow">патч</a> для&nbsp;подсистемы управления памятью, который повысил стабильность работы драйверов и снизил количество сбоев при&nbsp;инициализации графических адаптеров. </p><figure class=""><img src="https://habrastorage.org/getpro/habr/upload_files/fc7/3fb/2d9/fc73fb2d991e4935a9c15374c529c75d.png" width="494" height="696"></figure> <a href="https://habr.com/ru/posts/1012972/?utm_campaign=1012972&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Sat, 21 Mar 2026 04:18:48 GMT</pubDate>
    <dc:creator><![CDATA[denis-19]]></dc:creator>
      
      <category><![CDATA[ReactOS]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @denis-19 — Искусственный интеллект (+4) — 19.03.2026 21:11]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1012436/</guid>
    <link>https://habr.com/ru/posts/1012436/?utm_campaign=1012436&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Разработчик <a href="https://github.com/rgushchin" rel="noopener noreferrer nofollow">Роман Гущин</a> (Roman Gushchin) из команды мейнтейнеров ядра Linux в Google <a href="https://www.phoronix.com/news/Sashiko-Linux-AI-Code-Review" rel="noopener noreferrer nofollow">объявил</a> о доступности новой ИИ-системы <a href="https://sashiko.dev/" rel="noopener noreferrer nofollow">Sashiko</a> для проверки кода с помощью искусственного интеллекта. Внутри Google она уже используется для выявления проблем, и теперь она доступна публично и охватывает все сообщения, отправленные в список рассылки ядра Linux. Гущин <a href="https://www.linkedin.com/posts/roman-gushchin-1a95658_im-happy-to-share-the-project-i-was-working-activity-7439736656360005632-M-cb/" rel="noopener noreferrer nofollow">пояснил</a>, что <a href="https://github.com/sashiko-dev/sashiko" rel="noopener noreferrer nofollow">Sashiko</a> смогла обнаружить около 53% ошибок на основе неотфильтрованного набора из 1000 недавних проблем ядра Linux с меткой «Исправления:».</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/68d/b59/c10/68db59c10f812448eb0e6f54a8eb3a6e.png" width="1920" height="1080"></figure> <a href="https://habr.com/ru/posts/1012436/?utm_campaign=1012436&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 19 Mar 2026 18:11:08 GMT</pubDate>
    <dc:creator><![CDATA[denis-19]]></dc:creator>
      
      <category><![CDATA[Sashiko]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @FaryaRos — Linux (+3) — 16.03.2026 19:22]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1010982/</guid>
    <link>https://habr.com/ru/posts/1010982/?utm_campaign=1010982&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>NixOS: идея, до&nbsp;которой индустрия доросла только сейчас.</strong></p><p>Кажется, NixOS наконец выходит из&nbsp;категории системы «для своих» и становится все заметнее в&nbsp;инженерной среде. Это закономерно: он очень точно попал в&nbsp;проблемы, с&nbsp;которыми команды массово столкнулись только в&nbsp;последние годы.</p><p>История началась в 2003&nbsp;году, когда исследователь Элко Долстра и его коллеги в&nbsp;Утрехтском университете запустили проект Nix. Это исследовательский проект, который включал пакетный менеджер и собственный декларативный язык. Идея&nbsp;была сделать так, чтобы пакеты и зависимости собирались предсказуемо, не&nbsp;конфликтовали между собой и не&nbsp;превращали систему в&nbsp;хаос после очередного обновления. Чуть позже из&nbsp;этой логики вырос NixOS, где тот&nbsp;же подход применили уже ко всей операционной системе.</p><p>В&nbsp;этом и&nbsp;был главный поворот. Nix с&nbsp;самого начала смотрел на&nbsp;систему не&nbsp;как&nbsp;на&nbsp;набор вручную настроенных файлов и команд, а&nbsp;как&nbsp;на&nbsp;то, что&nbsp;можно описать целиком. Пакеты хранятся изолированно, разные версии могут спокойно жить рядом, а&nbsp;состояние машины задается через конфиг. За&nbsp;счет этого обновления становятся атомарными.</p><p>Это особенно интересно на&nbsp;фоне обычных Linux‑дистрибутивов. Там текущее состояние системы часто является результатом длинной цепочки действий: что‑то поставили, что‑то удалили, где‑то поправили конфиг, где‑то забыли. В&nbsp;NixOS логика другая: ты описываешь&nbsp;желаемое состояние, а&nbsp;система приводит машину именно к&nbsp;нему. Если новая конфигурация не&nbsp;взлетела, предыдущее состояние никуда не&nbsp;исчезает.</p><p>😏 Почему NixOS набирает популярность именно сейчас? Потому что&nbsp;индустрия наконец доросла до&nbsp;его сильных сторон. Чем больше у&nbsp;команды окружений, CI/CD, инфраструктуры как&nbsp;кода и цены ошибки, тем важнее воспроизводимость и предсказуемость. То, что&nbsp;раньше выглядело как&nbsp;нишевая экзотика, сегодня все чаще выглядит как&nbsp;очень здравый инженерный выбор.</p><p><strong>Многие современные immutable‑системы по&nbsp;сути идут в&nbsp;ту&nbsp;же сторону, куда NixOS пошел еще много лет назад.</strong></p><p>А&nbsp;если хочется не&nbsp;просто прочитать про&nbsp;Nix, а&nbsp;разобраться, как&nbsp;он работает на&nbsp;практике, приходите на&nbsp;наш открытый воркшоп.</p><p>📹 Открытый воркшоп в&nbsp;рамках ИнженеркаТех Плюс, <strong>18&nbsp;марта в 19:00&nbsp;по&nbsp;МСК. </strong>Александр Сергеев из&nbsp;сообщества RULKC, Russian Linux Kernel Community, расскажет про&nbsp;Nix и функциональный подход к&nbsp;пакетам и сборке.</p><p>Если вы хотите получить полный контроль над окружением и наконец закрыть вопрос воспроизводимых сборок, этот воркшоп для&nbsp;вас. Разберем ключевые концепции Nix и наглядно покажем, чем он отличается от&nbsp;привычных систем управления пакетами.</p><p>Зарегистрироваться <a href="https://t.me/inz_infra_bot" rel="noopener noreferrer nofollow">тут</a></p> <a href="https://habr.com/ru/posts/1010982/?utm_campaign=1010982&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Mon, 16 Mar 2026 16:22:43 GMT</pubDate>
    <dc:creator><![CDATA[FaryaRos]]></dc:creator>
      
      <category><![CDATA[nix]]></category><category><![CDATA[nixos]]></category><category><![CDATA[linux]]></category><category><![CDATA[linux kernel]]></category><category><![CDATA[linux kernel development]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @runity — Блог компании Рунити (+2) — 16.03.2026 11:06]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/runity/posts/1010688/</guid>
    <link>https://habr.com/ru/companies/runity/posts/1010688/?utm_campaign=1010688&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>hmod, chown и принцип минимальных привилегий: права доступа в Linux</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/695/b3b/fa5/695b3bfa57382256ad1338ed3f130bea.png" width="2048" height="1152"></figure><p>Неправильно выставленные разрешения на файл или каталог — один из самых распространенных векторов для эскалации привилегий в&nbsp; Linux.</p><p>В блоге мы разобрали базу, которую полезно держать в голове: символьное и цифровое представление прав, разница между владельцем, группой и остальными, команды chmod и chown с практическими примерами — от chmod 755 до рекурсивной смены владельца через chown -R.</p><p>Читайте полный разбор на<a href="https://reg.cloud/blog/kak-dat-prava-dostupa-polzovatelyu-linux/?utm_source=habr&amp;utm_medium=post&amp;utm_campaign=linux" rel="noopener noreferrer nofollow"> сайте Рег.облака</a>.</p> <a href="https://habr.com/ru/posts/1010688/?utm_campaign=1010688&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Mon, 16 Mar 2026 08:06:30 GMT</pubDate>
    <dc:creator><![CDATA[runity (Рунити)]]></dc:creator>
      
      <category><![CDATA[рег.облако]]></category><category><![CDATA[linux]]></category><category><![CDATA[linux-сервер]]></category><category><![CDATA[chmod]]></category><category><![CDATA[chown]]></category><category><![CDATA[команды]]></category><category><![CDATA[команды linux]]></category><category><![CDATA[доступы]]></category><category><![CDATA[безопасность]]></category><category><![CDATA[права доступа]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @oldzoomer — Linux — 06.03.2026 18:06]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1007476/</guid>
    <link>https://habr.com/ru/posts/1007476/?utm_campaign=1007476&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Вот парочка тонкостей, которые касаются гибернации в ОС Linux:</p><ol><li><p>Если своп находится внутри LVM, даже зашифрованного через LUKS, подсистема ядра Kernel Lockdown не даст включить гибернацию, если в UEFI включён Secure Boot. Чтобы всё это добро работало, нужно вынести своп таким образом, чтобы оно было напрямую подвязано к LUKS-контейнеру, без LVM.</p></li><li><p>Гибернация в режиме UEFI Secure Boot работает только внутри зашифрованного LUKS-контейнера. Если своп хранится в незашифрованном виде, подсистема Kernel Lockdown не даст включить гибернацию. Это сделано для защиты от подмены данных, а также от получения данных со свопа извне запущенного с ним экземпляра ОС.</p></li></ol> <a href="https://habr.com/ru/posts/1007476/?utm_campaign=1007476&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 06 Mar 2026 15:06:51 GMT</pubDate>
    <dc:creator><![CDATA[Deleted-user]]></dc:creator>
      
      <category><![CDATA[swap]]></category><category><![CDATA[secure boot]]></category><category><![CDATA[linux]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @MaxRokatansky — Блог компании OTUS (+1) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/otus/posts/1004066/</guid>
    <link>https://habr.com/ru/companies/otus/posts/1004066/?utm_campaign=1004066&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>10 бесплатных уроков марта по системному администрированию</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/987/93c/e8a/98793ce8a7647ace8b0b9dc5d6cd707c.png" width="1800" height="980"></figure><ul><li><p>4&nbsp;марта 20:00 <br><a href="https://otus.pw/3wcZ/" rel="noopener noreferrer nofollow">GREP и другие регулярные выражения Линукс</a><br><sup>Открытый урок&nbsp;</sup><a href="https://otus.pw/6NlvP/" rel="noopener noreferrer nofollow"><sup>курса</sup></a><sup> «Администратор Linux. Профессиональный уровень»</sup></p></li><li><p>10&nbsp;марта 20:00<br><a href="https://otus.pw/mO8y/" rel="noopener noreferrer nofollow">Использование /31&nbsp;префикса в&nbsp;IP‑сетях</a><br><sup>Открытый урок&nbsp;</sup><a href="https://otus.pw/cfte/" rel="noopener noreferrer nofollow"><sup>курса</sup></a><sup> «Сетевой инженер. Базовый уровень»</sup></p></li><li><p>11&nbsp;марта 20:00<br><a href="https://otus.pw/ntJX/" rel="noopener noreferrer nofollow">Сети ЦОД&nbsp;— SP (сеть провайдера) и DC (сеть дата-центра).</a> Какой же подход к построению сетей оказался более распространен и почему?<br><sup>Открытый урок </sup><a href="https://otus.pw/rMxV/" rel="noopener noreferrer nofollow"><sup>курса</sup></a><sup> «Проектирование сетей ЦОД»&nbsp;</sup></p></li><li><p>12&nbsp;марта 20:00<br><a href="https://otus.pw/eP8W/" rel="noopener noreferrer nofollow">Перенаправление потоков в&nbsp;Линукс</a><br><sup>Открытый урок&nbsp;</sup><a href="https://otus.pw/C9Uv/" rel="noopener noreferrer nofollow"><sup>курса</sup></a><sup> «Администратор Linux. Базовый уровень»</sup></p></li><li><p>17&nbsp;марта 20:00<br><a href="https://otus.pw/7Q9o/" rel="noopener noreferrer nofollow">Работа с&nbsp;данными и сетями в&nbsp;Docker</a><br><sup>Открытый урок&nbsp;</sup><a href="https://otus.pw/WSBg/" rel="noopener noreferrer nofollow"><sup>курса</sup></a><sup> «DevOps практики и инструменты»</sup></p></li><li><p>23&nbsp;марта 19:00<br><a href="https://otus.pw/lMpQ/" rel="noopener noreferrer nofollow">SSH: безопасный доступ и автоматизация в&nbsp;Линукс</a><br><sup>Открытый урок&nbsp;</sup><a href="https://otus.pw/C9Uv/" rel="noopener noreferrer nofollow"><sup>курса</sup></a><sup> «Администратор Linux. Базовый уровень»</sup></p></li><li><p>24&nbsp;марта 20:00<br><a href="https://otus.pw/gH2f/" rel="noopener noreferrer nofollow">/proc, /sys, /dev: как&nbsp;Linux превращает&nbsp;железо и процессы в&nbsp;файлы</a><br><sup>Открытый урок&nbsp;</sup><a href="https://otus.pw/6NlvP/" rel="noopener noreferrer nofollow"><sup>курса</sup></a><sup> «Администратор Linux. Профессиональный уровень»</sup></p></li><li><p>24&nbsp;марта 20:00<br><a href="https://otus.pw/wsrKW/" rel="noopener noreferrer nofollow">Технология контейнеризации. Введение в&nbsp;Docker</a><br><sup>Открытый урок&nbsp;</sup><a href="https://otus.pw/WSBg/" rel="noopener noreferrer nofollow"><sup>курса</sup></a><sup> «DevOps практики и инструменты»</sup></p></li><li><p>25&nbsp;марта 20:00<br><a href="https://otus.pw/URZPy/" rel="noopener noreferrer nofollow">VxLAN: как&nbsp;связать дата‑центры поверх обычной сети</a><br><sup>Открытый урок </sup><a href="https://otus.pw/rMxV/" rel="noopener noreferrer nofollow"><sup>курса</sup></a><sup> «Проектирование сетей ЦОД»&nbsp;</sup></p></li><li><p>25&nbsp;марта 20:00<br><a href="https://otus.pw/rcMC/" rel="noopener noreferrer nofollow">Механизмы блокировок в&nbsp;PostgreSQL</a><br><sup>Открытый урок&nbsp;</sup><a href="https://otus.pw/9KTr/" rel="noopener noreferrer nofollow"><sup>курса</sup></a><sup> «PostgreSQL для администраторов баз данных и разработчиков»</sup></p></li></ul><p><em>Еще больше бесплатных уроков от преподавателей курсов можно посмотреть </em><a href="https://otus.pw/Hp2l/" rel="noopener noreferrer nofollow"><em>в календаре мероприятий.</em></a></p><blockquote><p>А для тех, кто хочет быстро и на практике подтянуть основы, рекомендуем мини-видеокурс <a href="https://otus.pw/gMt6/" rel="noopener noreferrer nofollow">«Linux для начинающих»</a>, <span class="habrahidden">сейчас всего за 10 рублей.</span></p></blockquote> <a href="https://habr.com/ru/posts/1004066/?utm_campaign=1004066&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Wed, 04 Mar 2026 10:01:12 GMT</pubDate>
    <dc:creator><![CDATA[MaxRokatansky (OTUS)]]></dc:creator>
      
      <category><![CDATA[подборка вебинаров]]></category><category><![CDATA[linux]]></category><category><![CDATA[системное администрирование]]></category><category><![CDATA[бесплатные вебинары]]></category><category><![CDATA[открытые уроки]]></category><category><![CDATA[профессиональное развитие]]></category><category><![CDATA[lifelong education]]></category><category><![CDATA[развитие в ИТ]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @GlinkinIvan — Хакатоны (+4) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1003798/</guid>
    <link>https://habr.com/ru/posts/1003798/?utm_campaign=1003798&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/1ba/aa4/901/1baaa490147bd55cf8d2dc29718f54de.png" width="1664" height="1438"></figure><p>Среди пентестеров в настоящее время сложилась такая тенденция, что "внутреннее тестирование" подразумевает под собой исключительно взятие домена: ребята идут на проект с одной целью - взять AD и стать доменными администраторами. Однако, в сети живут не только рабочие станции и ноутбуки пользователей под управлением 💻 Windows. Мало того, что сеть полна зоопарком IoT устройств: принтеры, камеры наблюдения, роутеры, IP-телефония; так еще и внутренние веб-порталы, различные ERP-системы и среды разработки часто преобладают в общей "сетевой" массе.</p><p>И, как вы понимаете, во втором случае в дело вступают Веб- и 🐧 Linux пентестеры, так как все вышеперечисленное работает на базе детища Линуса Торвальдса.<br> В идеале, конечно, чтобы знания и навыки обоих направлений уместились в голове одного специалиста, так как после пробития "вебчика" желательно знать, куда копать дальше, а не передавать находки коллегам.</p><p>Вообще, в тестировании линукса также имеется своя методология с горизонтальными и вертикальными эскалациями. Получая первоначальный доступ с минимальными или ограниченными привилегиями, специалист начинает разведку с изучения системы, версии ядра, поиска зашитых логинов/паролей, дополнительных пользователей и т.д. Для автоматизации рутинных действий по энумерации всей системы имеются скрипты, которые проходят по основным моментам - <a href="https://github.com/rebootuser/LinEnum/blob/master/LinEnum.sh" rel="noopener noreferrer nofollow">LinEnum</a> и <a href="https://github.com/peass-ng/PEASS-ng/tree/master/linPEAS" rel="noopener noreferrer nofollow">linPEAS</a>.</p><p>Среди основных выводов, данные программы показывают такие важные вещи, как SUID и GUID/SGID. SUID (Set User ID) заставляет программу при запуске временно работать с правами владельца файла (часто root), а GUID/SGID (Set Group ID) — с правами группы файла. То есть, если у исполняемого файла стоит бит SUID и его владелец — root, а программу запускает обычный пользователь, то программа запускается от имени рута.</p><p>Для помощи в эскалации привилегий группа исследователей разработали <a href="https://gtfobins.org/" rel="noopener noreferrer nofollow">GTFOBins</a> — онлайн-каталог встроенных в Unix/Linux утилит (bin’ов), которые при неправильной настройке, в том числе SUID/SGID, можно использовать, чтобы обойти локальные ограничения. Однако ручная проверка 40-50+ сервисов - не самая лучшая идея.</p><p>Поэтому, для помощи в "моментальном" получении суперпользователя при неправильной настройке SUID/GUID я разработал оффлайн утилиту <a href="https://github.com/IvanGlinkin/AutoSUID" rel="noopener noreferrer nofollow">AutoSUID</a>. Она построена на базе проекта GTFOBins, имеет предзагруженную библиотеку мисконфигов (работает на системах без интернета) и, самое главное, работает с использованием штатных средств Linux (так как у простого пользователя нет прав на установку дополнительного ПО).<br> То есть просто закидываете .sh файл на тестируемый сервер и запускаете. Если есть уязвимые приложения, сразу получаете терминал рута (см. картинку). Вобщем, рекомендую!</p><p>Однако, если вы начинающий Linux пентестер, я не советую слепо исполнять мой скрипт равно как и LinEnum с LinPeas. Компания <a href="https://research.splunk.com/endpoint/0edd5112-56c9-11ec-b990-acde48001122/" rel="noopener noreferrer nofollow">Splunk еще в 2021 году указала</a>, что наши утилиты являются прекрасными инструментами для системных администраторов и ИБ при обнаружения потенциальных ошибок в системе. Вместе с тем они также могут быть использованы злоумышленниками для повышения привилегий и иных подозрительных действий.</p><p>Поэтому, перво-наперво, я бы рекомендовал изучить "матчасть" и понять, как работают скрипты под "капотом", а уже потом использовать средства автоматизации!</p><p><br>🧠 Обязательно поделись с теми, кому это может быть полезно 💬 <a href="https://t.me/glinkinivan" rel="noopener noreferrer nofollow">Телеграм</a> | 💬 <a href="https://max.ru/join/Htn3rk5JAiZe0wsBPadSoHj7Y-P1uTuQnViRCssj70s" rel="noopener noreferrer nofollow">Max</a> | 📝 <a href="https://habr.com/ru/users/GlinkinIvan/" rel="noopener noreferrer nofollow">Хабр</a> | 💙 <a href="https://vk.com/glinkinivan" rel="noopener noreferrer nofollow">ВКонтакте</a> | ⚡️<a href="https://t.me/glinkinivan?boost" rel="noopener noreferrer nofollow">Бустануть канал</a></p> <a href="https://habr.com/ru/posts/1003798/?utm_campaign=1003798&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 26 Feb 2026 13:00:13 GMT</pubDate>
    <dc:creator><![CDATA[GlinkinIvan]]></dc:creator>
      
      <category><![CDATA[linux]]></category><category><![CDATA[gtfobins]]></category><category><![CDATA[autosuid]]></category><category><![CDATA[эскалация]]></category><category><![CDATA[эскалация привилегий]]></category><category><![CDATA[хакинг]]></category><category><![CDATA[взлом]]></category><category><![CDATA[тестирование]]></category><category><![CDATA[splunk]]></category>
  </item>
  

	
  

  

  

      

      

      

    
  </channel>
</rss>
