LinuxSkill - Сводки с прода и Шпаргалки
Следим за новостями Linux, DevOps и ИБ, чтобы быть готовым к любым факапам. Бонусом — плотные шпаргалки и чеклисты для ежедневной работы в терминале. 📩 По всем вопросам: @chorapov Зеркало в MAX: https://max.ru/LinuxSkill РКН https://vk.cc/cMUwm4
نمایش بیشتر📈 تحلیل کانال تلگرام LinuxSkill - Сводки с прода и Шпаргалки
کانال LinuxSkill - Сводки с прода и Шпаргалки (@linuxskill) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 10 743 مشترک است و جایگاه 11 101 را در دسته فناوری و برنامهها و رتبه 59 272 را در منطقه روسيا دارد.
📊 شاخصهای مخاطب و پویایی
از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 10 743 مشترک جذب کرده است.
بر اساس آخرین دادهها در تاریخ 31 اوت, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -51 و در ۲۴ ساعت گذشته برابر -5 بوده و همچنان دسترسی گستردهای حفظ شده است.
- وضعیت تأیید: تأیید نشده
- نرخ تعامل (ER): میانگین تعامل مخاطب 11.78% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 4.80% واکنش نسبت به کل مشترکان کسب میکند.
- دسترسی پستها: هر پست به طور میانگین 1 265 بازدید دریافت میکند. در اولین روز معمولاً 516 بازدید جمعآوری میشود.
- واکنشها و تعامل: مخاطبان بهطور فعال حمایت میکنند؛ میانگین واکنش به هر پست 4 است.
- علایق موضوعی: محتوا بر موضوعات کلیدی مانند docker, linux, bash, devops, скрипт تمرکز دارد.
📝 توضیح و سیاست محتوایی
نویسنده این فضا را محل بیان دیدگاههای شخصی توصیف میکند:
“Следим за новостями Linux, DevOps и ИБ, чтобы быть готовым к любым факапам.
Бонусом — плотные шпаргалки и чеклисты для ежедневной работы в терминале.
📩 По всем вопросам: @chorapov
Зеркало в MAX: https://max.ru/LinuxSkill
РКН https://vk.cc/cMUwm4”
به لطف بهروزرسانیهای پرتکرار (آخرین داده در تاریخ 01 سپتامبر, 2026)، کانال همواره بهروز و دارای دسترسی بالاست. تحلیلها نشان میدهد مخاطبان بهطور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامهها تبدیل کردهاند.
Устал парсить бесконечные логи и ждать завершения долгого деплоя? Есть легальный способ выдохнуть, не сворачивая любимую консоль. Держи шпаргалку по 10 олдскульным играм, которые запускаются прямо в терминале. 1. Знаменитая головоломка 2048.❗️❗️❗️ Нравится формат? Ставь 👍 👉 Рубрика: #шпаргалка@LinuxSkill ⭐️ Зеркало в MAX #Linux #Terminal #CLI #Games #Sysadmin #DevOps$ 20482. Классический сапёр (mines)$ nbmines $ freesweep3. Текстовое приключение (adventure).$ adventure4. Лунный багги (moon-buggy).$ moon-buggy5. Классическая ролевая игра (angband).$ angband6. Подземелья Мории (moria).$ moria7. Симулятор авиадиспетчера (atc).$ atc8. Легендарный рогалик (nethack).$ nethack-console9. Нарды в консоли (backgammon).$ backgammon10. Космические захватчики (ninvaders).$ ninvadersСохрани этот пост, чтобы быстро переключиться и дать мозгу отдохнуть, пока шеф думает, что ты упорно дебажишь ядро.
Любой локальный пользователь без привилегий прямо сейчас может прочитать твои приватные SSH-ключи и хеши паролей из❗️❗️❗️ Нравится формат? Ставь 👍 👉 Рубрика: #News@LinuxSkill ⭐️ Зеркало в MAX #Linux #Security #CVE #RHEL #Root/etc/shadow. Давай закроем брешьCVE-2026-46333на уровне ядра строго по рекомендациям Red Hat. Ошибка кроется в функции__ptrace_may_access(). Во время завершения процесса ядро освобождает память до закрытия файловых дескрипторов. Возникает состояние гонки. Успешная эксплуатация опирается на использование вызоваpidfd_getfd(2). Под ударом RHEL 8, 9, 10 и зависимые продукты (RHEL CoreOS, OpenShift, OpenStack, Red Hat Virtualization). Официальный бюллетень Red Hat не предоставляет готовых bash-скриптов, но описывает два варианта изоляции угрозы: 1. Option 1: Admin-only scope (Безопасный режим) Необходимо установитьptrace_scope в значение 2. Это ограничит ptrace только для процессов с правамиCAP_SYS_PTRACEи заблокирует известные векторы атак. Важно: это не позволит обычным пользователям использовать отладчики (gdb, strace -p) для своих собственных процессов. 2. Option 2: Most restrictive scope (Радикальный режим) Необходимо установитьptrace_scope в значение3. Это полностью отключит любые операцииptraceдля всех, включая root. Важно: сломаются любые инструменты мониторинга, опирающиеся на ptrace. Требуется жесткое тестирование. Для отката любого из этих вариантов (Mitigation removal) вендор дает следующую прямую инструкцию:delete /etc/sysctl.d/ptrace-restrict.conf and run sysctl --systemПомни, что изменения ptrace блокируют только известные эксплойты. Полностью уязвимость закроет только официальный патч ядра.
Оставляешь дефолтные настройки SSH и надеешься, что пронесет? Сейчас покажу, как грамотно защитить сервер и безопасно пробрасывать порты. 1. Бэкап конфигурации Всегда делай резервную копию перед изменениями.❗️❗️❗️ Нравится формат? Ставь 👍 ⭐️ Зеркало в MAX #Linux #SSH #Security #Hardening #SysAdmin# Бэкап конфигурации SSH перед любыми изменениями sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bkp2. Хардэнинг сервера Ограничь прослушиваемые адреса и отключи небезопасные методы аутентификации.# Жестко прописываем IP адрес SSH сервера для защиты ListenAddress 192.168.1.100 # ip ag-dc-1 # Отключаем пустые пароли и доверенные хосты PermitEmptyPasswords no IgnoreRhosts yes HostbasedAuthentication no3. Правильный проброс портов Избегай лишних ключей и фоновых запусков через амперсанд, чтобы не сломать ввод пароля.# Проброс удаленного порта на локальную машину ssh -N -L 8000:example.com:80 user@bastion.example.com4. Выполнение команд на лету Запускай команды без входа в интерактивную сессию.# Выполнение конкретной команды на сервере без входа в интерактивную сессию ssh [user]@[host] [command]5. Монтирование удаленных папок Подключай директории прямо в свою систему для удобной работы.# Монтирование удаленной директории через SSH в локальную систему sshfs [user]@[host]:[remoteDir] [localDir]Безопасность — это процесс, а не результат. Обнови конфиги прямо сейчас, чтобы спать спокойно.
Подозреваешь дыры в безопасности или хочешь протестировать инфраструктуру на прочность? Хватит гуглить каждую тулзу — держи 59 базовых утилит для пентеста, сниффинга и форензики, которые должны быть под рукой при аудите. 1. Эксплуатация уязвимостей (Exploitation tools)❗️❗️❗️ Нравится формат? Ставь 👍 👉 Рубрика: #шпаргалка@LinuxSkill ⭐️ Зеркало в MAX #Linux #Security #Pentest #Sysadmin #DevOps #Hacking# Утилиты для поиска и эксплуатации брешей $ yersinia $ thc-ipv6 $ sqlmap $ termineter $ searchsploit $ msfpc $ msfconsole $ beef-xss $ setoolkit2. Атаки на пароли (Password attacks)# Инструменты для брутфорса, генерации словарей и подбора паролей $ cewl $ crunch $ hashcat $ john $ medusa $ ncrack $ ophcrack $ pyrit $ rcrack $ hydra3. Компьютерная криминалистика (Forensics)# Утилиты для расследования инцидентов и анализа дампов памяти $ autopsy $ binwalk $ bulk_extractor $ chkrootkit $ foremost $ galleta $ hashdeep $ volatility4. Сниффинг и Спуфинг (Sniffing/Spoofing)# Перехват и подмена трафика в сети $ driftnet $ ettercap $ macchanger $ mitmproxy $ netsniff-ng $ wireshark5. Сбор информации (Information gathering)# Разведка и сбор данных об инфраструктуре и хостах $ dmitry $ ike-scan $ netdiscover $ nmap $ zenmap6. Анализ уязвимостей (Vulnerability analysis)# Сканирование системы и сети на наличие уязвимостей $ lynis $ nikto $ nmap7. Анализ веб-приложений (Web application analysis)# Поиск брешей в веб-сайтах и дамп данных $ httrack $ skipfish $ sqlmap8. Базы данных (Databases)# Тестирование безопасности баз данных $ mdb-sql $ sqlitebrowser $ sqlmap9. Атаки на беспроводные сети (Wireless attack)# Взлом и аудит Wi-Fi, RFID и других беспроводных стандартов $ cewl $ aircrack-ng $ chirpw $ giskismet $ kismet $ mfoc $ mfterm $ reaver $ wifite10. Утилиты для отчетов (Reporting tools)# Создание отчетов и фиксация результатов пентеста $ cutycapt $ keepnote $ recordmydesktopСохрани этот арсенал, чтобы нужная утилита всегда была под рукой во время тестирования на проникновение.
Любой локальный пользователь прямо сейчас может получить root-права на твоей машине из-за новых уязвимостей Dirty Frag и Copy Fail. В сети гуляют скрипты защиты, которые выдают ошибки доступа или пропускают часть уязвимых модулей. Сейчас покажу, как надежно заблокировать эту угрозу командами от Amazon и Microsoft.
Проблема кроется в подсистемах ядра IPsec (esp4/esp6/ipcomp4/ipcomp6) и RxRPC. Эксплойт перезаписывает кэш страниц и модифицирует бинарные файлы (например, /usr/bin/su) прямо в оперативной памяти. В итоге атакующий получает root-оболочку без ввода пароля.
Вот пошаговая инструкция для полной изоляции угрозы:
# 1. Проверяем наличие модулей в памяти
lsmod | grep -E "esp4|esp6|ipcomp4|ipcomp6|rxrpc"
# 2. Блокируем загрузку и пытаемся выгрузить текущие
sudo sh -c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall ipcomp4 /bin/false\ninstall ipcomp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf"
# Пытаемся выгрузить модули (modprobe -r корректно обрабатывает зависимости)
sudo modprobe -r esp4 esp6 ipcomp4 ipcomp6 rxrpc 2>/dev/null || echo "Некоторые модули еще используются и не могут быть выгружены без перезагрузки"
# 3. Очищаем кэш (теперь с sudo)
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
Важно: блокировка модулей esp и ipcomp полностью отключит поддержку IPsec (КВН, зашифрованные туннели). Если сервер использует их для связи, сеть упадет. Также обрати внимание: если модули уже были загружены и использовались, для надежной выгрузки потребуется перезагрузка сервера.
Теперь ты знаешь, как защитить инфраструктуру от свежих уязвимостей. Проверь свои серверы прямо сейчас.
❗️❗️❗️ Нравится формат? Ставь 👍
👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Security #DirtyFrag #Root #AWSНе знаешь, какие процессы втихаря сливают телеметрию с твоего сервера? Сейчас покажу, как отследить и заблокировать их с помощью порта Little Snitch на Linux, и почему с ним нужно быть крайне осторожным.Проект на github.com ❗️❗️❗️ Нравится формат? Ставь 👍 ⭐️ Зеркало в MAX #linux #ebpf #littlesnitch #firewall #devops #администрированиеrustup toolchain install stable rustup toolchain install nightly --component rust-src cargo install bpf-linkerСтавим зависимости. Без ночной сборки Rust линкер не справится, и eBPF-программы для ядра просто не соберутся. Также в системе должен быть установлен компилятор clang.cargo build cargo checkЗапускаем сборку. Код очень капризный и проходит верификатор только на ядрах Linux от 6.12 до 7.0 (обязательна поддержка BTF) при сборке через Rust 1.93.0-nightly. На старых ядрах ты просто упрешься в лимит инструкций верификатора.http://localhost:3031/Именно здесь по умолчанию живет веб-интерфейс. В отличие от macOS-версии, традиционного десктопного приложения тут нет — демон поднимает локальный сервер, куда можно зайти даже с телефона или добавить его как PWA. При этом визуальные графики трафика на месте: они строятся внизу страницы и позволяют фильтровать историю соединений.cp /var/lib/littlesnitch/config/web_ui.toml /var/lib/littlesnitch/overrides/config/ cp /var/lib/littlesnitch/config/main.toml /var/lib/littlesnitch/overrides/config/Никогда не правь дефолтные конфиги напрямую. Скопируй их в директориюoverridesи редактируй там. Вmain.tomlможно сменить политику неизвестных соединений на deny, а вweb_ui.toml— обязательно включить TLS и базовую аутентификацию, если интерфейс торчит наружу. Запомни главное: на Linux это инструмент только для приватности, а не для безопасности. Под высокой сетевой нагрузкой eBPF-таблицы кэша тупо переполняются, и система перестает понимать, какой пакет какому процессу принадлежит. В довесок, пользователи на GitHub и Reddit уже вовсю репортят баги: этот полупроприетарный демон способен сожрать 13-14 ГБ памяти и повесить CPU на 100%.
Снова забыл, какой ключ нужен для извлечения файлов из архива tar.xz, или путаешься в современных форматах сжатия? Хватит каждый раз гуглить документацию — держи ультимативную шпаргалку ровно на 44 команды по всем видам архивов и компрессии в Linux. 1. Работа с архивами tar Классический инструмент администратора. Создание, распаковка и просмотр содержимого.❗️❗️❗️ Нравится формат? Ставь 👍 👉 Рубрика: #шпаргалка@LinuxSkill ⭐️ Зеркало в MAX #Linux #Bash #Archiving #DevOps #Sysadmin #CLI# Создать tar архив $ tar cf [archive].tar [files] $ tar czf [archive].tar.gz [files] $ tar cjf [archive].tar.bz2 [files] $ tar cJf [archive].tar.xz [files] # Извлечь tar архив $ tar xf [archive].tar $ tar xzf [archive].tar.gz $ tar xjf [archive].tar.bz2 $ tar xJf [archive].tar.xz # Извлечь в определенную директорию $ tar xf [archive].tar -C [directory] # Показать содержимое архива $ tar tf [archive].tar $ tar tzf [archive].tar.gz2. Сжатие и распаковка (gzip и bzip2) Базовые утилиты для работы с популярными форматами сжатия.# Сжать с помощью gzip $ gzip [file] $ gzip -k [file] $ gzip -9 [file] # Распаковать gzip $ gunzip [file].gz $ zcat [file].gz # Сжать с помощью bzip2 $ bzip2 [file] $ bzip2 -k [file] # Распаковать bzip2 $ bunzip2 [file].bz2 $ bzcat [file].bz23. Современное сжатие (xz и zstd) Форматы, обеспечивающие высокую степень сжатия или невероятную скорость.# Сжать с помощью xz $ xz [file] $ xz -k [file] $ xz -9 [file] # Распаковать xz $ unxz [file].xz $ xzcat [file].xz # Сжать с помощью zstd $ zstd [file] $ zstd -k [file] $ zstd -19 [file] # Распаковать zstd $ unzstd [file].zst $ zstdcat [file].zst4. Популярный формат zip Управление классическими zip-архивами прямо из консоли.# Создать zip архив $ zip [archive].zip [files] $ zip -r [archive].zip [directory] $ zip -e [archive].zip [files] # Извлечь zip архив $ unzip [archive].zip $ unzip [archive].zip -d [directory] $ unzip -l [archive].zip # Показать информацию о zip архиве $ zipinfo [archive].zip5. Другие форматы: 7z, cpio, rar, ar Работа с экзотическими или специфичными форматами упаковки.# Создать 7z архив $ 7z a [archive].7z [files] # Извлечь 7z архив $ 7z x [archive].7z # Показать содержимое 7z архива $ 7z l [archive].7z # Создать cpio архив $ find . | cpio -o > [archive].cpio # Извлечь cpio архив $ cpio -id < [archive].cpio # Извлечь rar архив $ unrar x [archive].rar # Создать ar архив $ ar rcs [archive].a [files]
Слышал, как ИИ-агент Cursor (на базе Claude Opus 4.6) за 9 секунд удалил всю базу и бэкапы стартапа PocketOS? Давай разберем на их ошибках, почему текстовые запреты в промптах — это мусор, и как реально работает безопасность. Как это было и как надо делать❗️❗️❗️ Нравится формат? Ставь 👍 👉 Рубрика: #News@LinuxSkill ⭐️ Зеркало в MAX #ai #devops #sysadmin #security #incidentcurl -X POST https://backboard.railway.app/graphql/v2 \ -H "Authorization: Bearer [token]" \ -d '{"query":"mutation { volumeDelete(volumeId: \"3d2c42fb-...\") }"}'Это реальный запрос, который агент отправил в Railway API, чтобы «починить» ошибку авторизации. Никакого подтверждения (типа "введите DELETE" или SMS) система не запросила.Railway CLI token = Domain Management + volumeDelete permissionАгент нашел токен в файле, вообще не связанном с его задачей. Токен создавался только для управления доменами через CLI, но по факту давал root-права на весь GraphQL API без какого-либо RBAC."NEVER run destructive/irreversible git commands (like push --force, hard reset, etc) unless the user explicitly requests them."Это кусок реального системного промпта агента PocketOS. Агент сам признался, что знал правило, но «угадал», что удаление безопасно, и проигнорировал его. Системные промпты — это советы, а не защита, модель может их обойти.# Разрешенные команды (Cerbos Synapse): git status # Блокируемые команды: rm -rfЗащита должна быть снаружи процесса агента. Как указывают спецы из Cerbos, HTTP-хуки перехватывают вызовы ИИ и блокируют деструктивные операции (например,rm -rf), не давая агенту права самому управлять своими разрешениями."Wiping a volume deletes all backups"Это цитата из документации Railway, о которой не знал ИИ. Бэкапы лежали в том же томе, что и база, поэтому агент снес всё разом. Настоящие резервные копии должны лежать в другом радиусе поражения.
Снова забыл, какой ключ нужен для извлечения файлов из архива tar.xz, или путаешься в современных форматах сжатия? Хватит каждый раз гуглить документацию — держи ультимативную шпаргалку ровно на 44 команды по всем видам архивов и компрессии в Linux. 1. Работа с архивами tar Классический инструмент администратора. Создание, распаковка и просмотр содержимого.❗️❗️❗️ Нравится формат? Ставь 👍 👉 Рубрика: #шпаргалка@LinuxSkill ⭐️ Зеркало в MAX# Создать tar архив $ tar cf [archive].tar [files] $ tar czf [archive].tar.gz [files] $ tar cjf [archive].tar.bz2 [files] $ tar cJf [archive].tar.xz [files] # Извлечь tar архив $ tar xf [archive].tar $ tar xzf [archive].tar.gz $ tar xjf [archive].tar.bz2 $ tar xJf [archive].tar.xz # Извлечь в определенную директорию $ tar xf [archive].tar -C [directory] # Показать содержимое архива $ tar tf [archive].tar $ tar tzf [archive].tar.gz2. Сжатие и распаковка (gzip и bzip2) Базовые утилиты для работы с популярными форматами сжатия.# Сжать с помощью gzip $ gzip [file] $ gzip -k [file] $ gzip -9 [file] # Распаковать gzip $ gunzip [file].gz $ zcat [file].gz # Сжать с помощью bzip2 $ bzip2 [file] $ bzip2 -k [file] # Распаковать bzip2 $ bunzip2 [file].bz2 $ bzcat [file].bz23. Современное сжатие (xz и zstd) Форматы, обеспечивающие высокую степень сжатия или невероятную скорость.# Сжать с помощью xz $ xz [file] $ xz -k [file] $ xz -9 [file] # Распаковать xz $ unxz [file].xz $ xzcat [file].xz # Сжать с помощью zstd $ zstd [file] $ zstd -k [file] $ zstd -19 [file] # Распаковать zstd $ unzstd [file].zst $ zstdcat [file].zst4. Популярный формат zip Управление классическими zip-архивами прямо из консоли.# Создать zip архив $ zip [archive].zip [files] $ zip -r [archive].zip [directory] $ zip -e [archive].zip [files] # Извлечь zip архив $ unzip [archive].zip $ unzip [archive].zip -d [directory] $ unzip -l [archive].zip # Показать информацию о zip архиве $ zipinfo [archive].zip5. Другие форматы: 7z, cpio, rar, ar Работа с экзотическими или специфичными форматами упаковки. # Создать 7z архив $ 7z a [archive].7z [files] # Извлечь 7z архив $ 7z x [archive].7z # Показать содержимое 7z архива $ 7z l [archive].7z # Создать cpio архив $ find . | cpio -o > [archive].cpio # Извлечь cpio архив $ cpio -id < [archive].cpio # Извлечь rar архив $ unrar x [archive].rar # Создать ar архив $ ar rcs [archive].a [files]
Ubuntu 26.04 LTS «Resolute Raccoon» не просто обновилась — она знатно «похудела», выкинув пакеты и технологии, на которых годами держались твои конфиги и контейнеры. Список «потерь»❗️❗️❗️ Нравится формат? Ставь 👍 👉 Рубрика: #News@LinuxSkill ⭐️ Зеркало в MAX #ubuntu #linux #sysadmin #devops #lts# Проверка поддержки 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 (их функции теперь в настройках системы).
Хватит мучить текстовые редакторы, держи ультимативный набор из 53 команд для обработки текста прямо в консоли. 1. Манипуляции с sed (замена и удаление)❗️❗️❗️ Нравится формат? Ставь 👍 👉 Рубрика: #шпаргалка@LinuxSkill ⭐️ Зеркало в MAX #Linux #TextProcessing #Bash #DevOps #Sysadmin #CLI# Заменить текст в файле $ 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 -rn4. Обрезка и трансформация текста# Вырезать первую колонку с разделителем двоеточие $ 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 в самый ответственный момент!
Ubuntu 26.04 LTS Resolute Raccoon вышла, но под капотом столько изменений, что твои старые скрипты и контейнеры могут внезапно посыпаться. Что нужно знать❗️❗️❗️ Нравится формат? Ставь 👍 👉 Рубрика: #News@LinuxSkill ⭐️ Зеркало в MAX #ubuntu #linux #sysadmin #devops #ltssudo 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 под облачными учетками.
Думаешь, дефолтный AppArmor надёжно защищает твой Linux и изолирует контейнеры? Исследователи нашли в нём 9 критических дыр, которые дают root-права за секунды. Сейчас разберём, как устроена эта атака и как спасти свою инфраструктуру.❗️❗️❗️ Нравится формат? Ставь 👍 👉 Рубрика: #News@LinuxSkill ⭐️ Зеркало в MAX #linux #apparmor #crackarmor #infosec #linuxjournal# Проверяем версию ядра и статус работы 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) и максимально быстро накатывать обновления ядра.
Хватит гуглить каждую мелочь — держи ультимативную шпаргалку ровно на 41 команду Git. Только хардкор и рабочие конструкции для консоли. 1. Создание репозитория и сохранение изменений❗️❗️❗️ Нравится формат? Ставь 👍 👉 Рубрика: #шпаргалка@LinuxSkill ⭐️ Зеркало в MAX #Linux #Git #DevOps #Sysadmin #CLI #Bash# Клонировать существующий репозиторий (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 status2. Управление ветками# Создать новую ветку (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 -v4. Отмена действий и удаление файлов# Отменить предыдущий коммит (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 -g6. История, изменения и сложные переносы# Показать лог коммитов (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]
Государство планирует ввести жесткие лимиты на зарубежный трафик, а популярные приложения (от маркетплейсов до банков) активно сканируют твой телефон на наличие туннелей,. Сейчас разберём, как провайдеры видят твой КВН и какими инструментами на уровне системы можно заткнуть локальных шпионов. Лимиты на «Иностранный трафик» и борьба с КВН-сервисами > 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,.❗️❗️❗️ Нравится формат? Ставь 👍 👉 Рубрика: #News@LinuxSkill ⭐️ Зеркало в MAX #КВН #Security #DPI #Anubis #Privacy #habr# Генерация случайного порта и пароля на лету скрывает прокси от других приложений: 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 или обнаружить туннель.
Твои любимые приложения втихую сливают данные на удаленные сервера? Сейчас покажу, как поймать их за руку с помощью легендарного интерактивного фаервола Little Snitch, который наконец-то портировали с macOS на Linux.❗️❗️❗️ Нравится формат? Ставь 👍 👉 Рубрика: #News@LinuxSkill ⭐️ Зеркало в MAX #littlesnitch #linux #ebpf #infosecuname -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
