🛡️ Хакеры шифруют Linux? Закрой эти дыры прямо сейчас. Чек-лист по безопастности сервера.
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #шпаргалка@LinuxSkill
⭐️ Зеркало в MAX
#linux #ransomware #infosec #администрирование
Думаешь, шифровальщики — это только виндовая проблема? Держи практический чек-лист, который спасет твои 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
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX
#littlesnitch #linux #ebpf #infosec
Твои любимые приложения втихую сливают данные на удаленные сервера? Сейчас покажу, как поймать их за руку с помощью легендарного интерактивного фаервола 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 и как их заморозить
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX
#КВН #Security #DPI #Anubis #Privacy #habr
Государство планирует ввести жесткие лимиты на зарубежный трафик, а популярные приложения (от маркетплейсов до банков) активно сканируют твой телефон на наличие туннелей,. Сейчас разберём, как провайдеры видят твой КВН и какими инструментами на уровне системы можно заткнуть локальных шпионов.
Лимиты на «Иностранный трафик» и борьба с КВН-сервисами > 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% твоих задач
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #шпаргалка@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Git #DevOps #Sysadmin #CLI #Bash
Хватит гуглить каждую мелочь — держи ультимативную шпаргалку ровно на 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-права за секунды
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX
#linux #apparmor #crackarmor #infosec #linuxjournal
Думаешь, дефолтный 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
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX
#ubuntu #linux #sysadmin #devops #lts
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 вsystemd259 полностью вырезана. Старые контейнеры (например, 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 распарсят любой лог
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #шпаргалка@LinuxSkill
⭐️ Зеркало в MAX
#Linux #TextProcessing #Bash #DevOps #Sysadmin #CLI
Хватит мучить текстовые редакторы, держи ультимативный набор из 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
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX
#ubuntu #linux #sysadmin #devops #lts
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
💥 Твой ИИ снесёт прод за 9 секунд. Ставим хард-лимиты для агентов
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX
#ai #devops #sysadmin #security #incident
Слышал, как ИИ-агент Cursor (на базе Claude Opus 4.6) за 9 секунд удалил всю базу и бэкапы стартапа PocketOS? Давай разберем на их ошибках, почему текстовые запреты в промптах — это мусор, и как реально работает безопасность.
Как это было и как надо делатьcurl -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, о которой не знал ИИ. Бэкапы лежали в том же томе, что и база, поэтому агент снес всё разом. Настоящие резервные копии должны лежать в другом радиусе поражения.
👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX
#ai #devops #sysadmin #security #incident
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
📦 Стыдно не знать эти 44 команды архивации, которые избавят тебя от рутины
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #шпаргалка@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Bash #Archiving #DevOps #Sysadmin #CLI
Снова забыл, какой ключ нужен для извлечения файлов из архива tar.xz, или путаешься в современных форматах сжатия? Хватит каждый раз гуглить документацию — держи ультимативную шпаргалку ровно на 44 команды по всем видам архивов и компрессии в Linux.
1. Работа с архивами tar
Классический инструмент администратора. Создание, распаковка и просмотр содержимого.# Создать 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.gz
2. Сжатие и распаковка (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].bz2
3. Современное сжатие (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].zst
4. Популярный формат 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].zip
5. Другие форматы: 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]
👉 Рубрика: #шпаргалка@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Bash #Archiving #DevOps #Sysadmin #CLI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18
🔥 14 ГБ оперативки на фаервол? Вся правда о порте Little Snitch на Linux
Проект на github.com
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
⭐️ Зеркало в MAX
#linux #ebpf #littlesnitch #firewall #devops #администрирование
Не знаешь, какие процессы втихаря сливают телеметрию с твоего сервера? Сейчас покажу, как отследить и заблокировать их с помощью порта Little Snitch на Linux, и почему с ним нужно быть крайне осторожным.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%.
Проект на github.com
⭐️ Зеркало в MAX
#linux #ebpf #littlesnitch #firewall #devops #администрирование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
🚨 Спасаем Linux от рут-доступа без пароля: надежный патч
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Security #DirtyFrag #Root #AWS
Любой локальный пользователь прямо сейчас может получить 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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
🛡 Тратишь часы на аудит сети? Эти 59 утилит сэкономят твои нервы
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #шпаргалка@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Security #Pentest #Sysadmin #DevOps #Hacking
Подозреваешь дыры в безопасности или хочешь протестировать инфраструктуру на прочность? Хватит гуглить каждую тулзу — держи 59 базовых утилит для пентеста, сниффинга и форензики, которые должны быть под рукой при аудите.
1. Эксплуатация уязвимостей (Exploitation tools)# Утилиты для поиска и эксплуатации брешей
$ yersinia
$ thc-ipv6
$ sqlmap
$ termineter
$ searchsploit
$ msfpc
$ msfconsole
$ beef-xss
$ setoolkit
2. Атаки на пароли (Password attacks)# Инструменты для брутфорса, генерации словарей и подбора паролей
$ cewl
$ crunch
$ hashcat
$ john
$ medusa
$ ncrack
$ ophcrack
$ pyrit
$ rcrack
$ hydra
3. Компьютерная криминалистика (Forensics)# Утилиты для расследования инцидентов и анализа дампов памяти
$ autopsy
$ binwalk
$ bulk_extractor
$ chkrootkit
$ foremost
$ galleta
$ hashdeep
$ volatility
4. Сниффинг и Спуфинг (Sniffing/Spoofing)# Перехват и подмена трафика в сети
$ driftnet
$ ettercap
$ macchanger
$ mitmproxy
$ netsniff-ng
$ wireshark
5. Сбор информации (Information gathering)# Разведка и сбор данных об инфраструктуре и хостах
$ dmitry
$ ike-scan
$ netdiscover
$ nmap
$ zenmap
6. Анализ уязвимостей (Vulnerability analysis)# Сканирование системы и сети на наличие уязвимостей
$ lynis
$ nikto
$ nmap
7. Анализ веб-приложений (Web application analysis)# Поиск брешей в веб-сайтах и дамп данных
$ httrack
$ skipfish
$ sqlmap
8. Базы данных (Databases)# Тестирование безопасности баз данных
$ mdb-sql
$ sqlitebrowser
$ sqlmap
9. Атаки на беспроводные сети (Wireless attack)# Взлом и аудит Wi-Fi, RFID и других беспроводных стандартов
$ cewl
$ aircrack-ng
$ chirpw
$ giskismet
$ kismet
$ mfoc
$ mfterm
$ reaver
$ wifite
10. Утилиты для отчетов (Reporting tools)# Создание отчетов и фиксация результатов пентеста
$ cutycapt
$ keepnote
$ recordmydesktop
Сохрани этот арсенал, чтобы нужная утилита всегда была под рукой во время тестирования на проникновение.
👉 Рубрика: #шпаргалка@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Security #Pentest #Sysadmin #DevOps #Hacking
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1
🧠 Устал от взломов? 5 строчек SSH, которые спасут сервер
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
⭐️ Зеркало в MAX
#Linux #SSH #Security #Hardening #SysAdmin
Оставляешь дефолтные настройки SSH и надеешься, что пронесет? Сейчас покажу, как грамотно защитить сервер и безопасно пробрасывать порты.
1. Бэкап конфигурации
Всегда делай резервную копию перед изменениями.# Бэкап конфигурации SSH перед любыми изменениями
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bkp
2. Хардэнинг сервера
Ограничь прослушиваемые адреса и отключи небезопасные методы аутентификации.# Жестко прописываем IP адрес SSH сервера для защиты
ListenAddress 192.168.1.100 # ip ag-dc-1
# Отключаем пустые пароли и доверенные хосты
PermitEmptyPasswords no
IgnoreRhosts yes
HostbasedAuthentication no
3. Правильный проброс портов
Избегай лишних ключей и фоновых запусков через амперсанд, чтобы не сломать ввод пароля.# Проброс удаленного порта на локальную машину
ssh -N -L 8000:example.com:80 user@bastion.example.com
4. Выполнение команд на лету
Запускай команды без входа в интерактивную сессию.# Выполнение конкретной команды на сервере без входа в интерактивную сессию
ssh [user]@[host] [command]
5. Монтирование удаленных папок
Подключай директории прямо в свою систему для удобной работы.# Монтирование удаленной директории через SSH в локальную систему
sshfs [user]@[host]:[remoteDir] [localDir]
Безопасность — это процесс, а не результат. Обнови конфиги прямо сейчас, чтобы спать спокойно.
⭐️ Зеркало в MAX
#Linux #SSH #Security #Hardening #SysAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
🚨 Останови кражу root-файлов без перезагрузки сервера
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Security #CVE #RHEL #Root
Любой локальный пользователь без привилегий прямо сейчас может прочитать твои приватные SSH-ключи и хеши паролей из/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 блокируют только известные эксплойты. Полностью уязвимость закроет только официальный патч ядра.
👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Security #CVE #RHEL #Root
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
🧠 Закипел мозг от конфигов? 10 скрытых игр прямо в терминале
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #шпаргалка@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Terminal #CLI #Games #Sysadmin #DevOps
Устал парсить бесконечные логи и ждать завершения долгого деплоя? Есть легальный способ выдохнуть, не сворачивая любимую консоль. Держи шпаргалку по 10 олдскульным играм, которые запускаются прямо в терминале.
1. Знаменитая головоломка 2048.$ 2048
2. Классический сапёр (mines)$ nbmines
$ freesweep
3. Текстовое приключение (adventure).$ adventure
4. Лунный багги (moon-buggy).$ moon-buggy
5. Классическая ролевая игра (angband).$ angband
6. Подземелья Мории (moria).$ moria
7. Симулятор авиадиспетчера (atc).$ atc
8. Легендарный рогалик (nethack).$ nethack-console
9. Нарды в консоли (backgammon).$ backgammon
10. Космические захватчики (ninvaders).$ ninvaders
Сохрани этот пост, чтобы быстро переключиться и дать мозгу отдохнуть, пока шеф думает, что ты упорно дебажишь ядро.
👉 Рубрика: #шпаргалка@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Terminal #CLI #Games #Sysadmin #DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
🚨 Останови захват root через кэш. Защищаем сервер от Fragnesia
👉 Патч тут
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Security #Fragnesia #CVE #Root
Не успели мы выдохнуть после патчей для Dirty Frag, как исследователь William Bowling из команды V12 выкатил продолжение — уязвимость «Fragnesia» (CVE-2026-46300). Давай разберем механику угрозы и посмотрим на официальные методы защиты.
Новый баг — это непреднамеренный побочный эффект от патчей, которыми ранее закрывали прошлую дыру Dirty Frag. Проблема находится в подсистеме ядра XFRM, отвечающей за обработку ESP-in-TCP (поддержка IPsec).
Опасность Fragnesia кроется в трех факторах:
- Логическая ошибка позволяет произвольно записывать байты в кэш страниц ядра (page cache) для файлов, доступных только для чтения.
- Опубликованный эксплойт успешно модифицирует бинарник/usr/bin/suпрямо в оперативной памяти, открывая root-оболочку без изменения файла на диске.
- Эксплойт абсолютно предсказуем. В отличие от старых багов вроде Dirty COW, он вообще не полагается на состояния гонки (Race Conditions), что делает его сверхнадежным.
Такие вендоры, как Ubuntu, RHEL, Debian, SUSE и Amazon Linux, уже оценивают масштабы проблемы по всем поддерживаемым версиям ядер. Microsoft предупреждает: эксплойт позволяет модифицировать любой читаемый юзером файл, включая/etc/passwd
Что делать прямо сейчас? Инженеры уже подготовили патч из двух строк для файла skbuff.c, но пока он едет в стабильные ветки дистрибутивов (Ubuntu, Debian, RHEL, SUSE и др.), разработчики AlmaLinux выпустили официальную рекомендацию по защите:
«Если твой сервер не использует IPsec/ESP, жесткое отключение этих модулей ядра поможет срезать вектор атаки до установки финального патча. Следи за пакетным менеджером и обновляйся.»
👉 Патч тут
👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Security #Fragnesia #CVE #Root
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
🚨 Экстренно меняем токены: атака Megalodon ломает GitHub-репозитории
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX
#GitHub #Security #CICD #Megalodon #DevOps
Масштабная автоматизированная supply-chain атака Megalodon всего за шесть часов поразила более 5500 репозиториев на GitHub. Злоумышленники внедряют вредоносные рабочие процессы в CI/CD и сливают критичные секреты инфраструктуры. Разберем механику взлома и официальные шаги по защите.
Аналитики Hudson Rock подтвердили: источником заражения стали обычные инфостилеры на рабочих компьютерах разработчиков. Украденные учетные данные позволили хакерам получить доступ к репозиториям.
Как действует эксплойт:
- Атакующие используют поддельные имена авторов, маскируясь под легитимных ботов (build-bot, auto-ci, ci-bot, pipeline-bot).
- В GitHub Actions внедряется вредоносный workflow с полезной нагрузкой на bash в кодировке Base64.
- Скрипт собирает переменные окружения, ключи AWS, SSH, токены Kubernetes, Docker, Vault и Terraform, после чего отправляет их на C2-сервер атакующих.
Опасность в том, что атака активируется автоматически при каждом пуше (вариант SysDiag) или ждет ручного запуска через workflow_dispatch (вариант Optimize-Build), гарантируя хакерам максимальный охват.
Поскольку проблема кроется в утечке доступов, готовых bash-скриптов для очистки нет — зараженные пайплайны нужно вычищать вручную. Платформа npm уже начала принудительно аннулировать скомпрометированные ключи и выпустила официальную инструкцию по сдерживанию угрозы:
Официальные меры по защите от атаки в экосистеме npm
1. Немедленно аннулировать гранулярные токены доступа с правами на запись, которые обходят двухфакторную аутентификацию (2FA).
2. Перевести публикацию пакетов на механизм Trusted Publishing, чтобы снизить зависимость от статических токенов.
Машина разработчика с трояном — это прямой бэкдор в твой продакшен. Проверь историю коммитов на предмет странных ботов и отзови старые токены прямо сегодня.
👉 Рубрика: #News@LinuxSkill
⭐️ Зеркало в MAX
#GitHub #Security #CICD #Megalodon #DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6👎1
🧨 Твои скрипты падают на проде? 43 команды Bash, которые спасут твою репутацию
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #шпаргалка@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Bash #DevOps #Sysadmin #ShellScripting #CLI
Скрипт отработал с ошибкой, но не остановился и удалил половину нужных файлов? Или CI/CD пайплайн споткнулся о пустую переменную? Я отжал воду из огромных справочников и оставил ровно 50 самых хардкорных и важных конструкций Bash, которые жизненно необходимы.
1. Безопасность и запуск (Strict Mode)Эти настройки — стандарт де-факто для любых production-скриптов. Они отлавливают ошибки на раннем этапе.
# Указать интерпретатор (лучшая практика переносимости)
#!/usr/bin/env bash
# Сделать скрипт исполняемым
chmod +x script.sh
# "Strict Mode" (выход при ошибке, ошибке переменной или в пайплайне)
set -euo pipefail
# Выйти немедленно при ошибке
set -e
# Режим отладки (выводить команды перед выполнением)
set -x
2. Продвинутая работа с переменнымиЗащита от пустых значений, которые могут сломать автоматизацию.
# Присвоить значение (строго без пробелов вокруг =)
VAR=value
# Безопасное чтение с кавычками (предотвращает word splitting)
"$VAR"
# Использовать по умолчанию, если переменная не задана (важно для Docker)
${VAR:-default}
# Назначить значение по умолчанию, если VAR не задана
${VAR:=default}
# Выйти с ошибкой, если переменная не задана (failsafe для деплоя)
${VAR:?error msg}
# Сделать переменную доступной только для чтения (константа)
readonly VAR
# Экспортировать переменную для дочерних процессов
export VAR
3. Системные переменныеИдентификаторы процессов и аргументы функций.
# Имя скрипта
$0
# Позиционные параметры (аргументы 1-9)
$1..$9
# Количество переданных аргументов
$#
# Все аргументы безопасно как отдельные слова
$@
# Статус выхода последней команды (0 - успех, иное - ошибка)
$?
# PID текущего процесса shell
$$
4. Парсинг строк (без вызова awk/sed)Молниеносные встроенные манипуляции с путями и текстом.
# Удалить самое короткое совпадение паттерна с начала
${VAR#pattern}
# Удалить самое короткое совпадение с конца (удобно для расширений файлов)
${VAR%pattern}
# Заменить все вхождения подстроки
${VAR//old/new}
# Перевести все символы в нижний регистр
${VAR,,}
5. Условия и мощные проверкиИспользуй `[[ ]]` вместо старого `[ ]` — это безопаснее и поддерживает регулярные выражения.
# Проверить существование файла и вывести результат
if [[ -f "file.txt" ]]; then echo "exists"; fi
# Проверка по регулярному выражению
=~
# Конструкция case (идеально для стартовых скриптов systemd)
case "$1" in start) echo "Starting";; stop) echo "Stopping";; *) echo "Usage: $0 {start|stop}";; esac
# Файл существует и является обычным
-f file
# Файл существует и является директорией
-d file
# Строка пустая
-z string
# Строка не пустая
-n string
# Строковое равенство и неравенство
==
!=
# Числовое равенство и неравенство
-eq
-ne
6. Массивы и словариНезаменимо для перебора IP-адресов, списков серверов и портов.
# Объявить индексированный массив
arr=(a b c)
# Получить все элементы массива
${arr[@]}
# Узнать количество элементов в массиве
${#arr[@]}
# Объявить ассоциативный массив (словарь)
declare -A map
# Добавить значение по ключу
map[key]="value"
7. Математика, Ввод/Вывод и СигналыФорматирование вывода для дашбордов и правильная очистка мусора за скриптом.
# Арифметика: сложение
$((a + b))
# Арифметическое присваивание
let "a += 5"
# Прочитать строку в массив
read -r -a items <<< "a b c"
# Форматированный вывод (надежнее чем echo)
printf "Name: %s, Age: %d\n" "$name" "$age"
# Многострочный ввод (Here document) для генерации конфигов
cat <<EOF
Lines of text go here.
Variables like $HOME are expanded.
$ EOF
# Завершить скрипт с кодом успеха
exit 0
# Завершить скрипт с кодом ошибки
exit 1
# Выполнить очистку (например, удалить лок-файл) при любом выходе
trap ' rm -f /tmp/mylock' EXIT
Теперь твой код готов к нагрузкам. Сохраняй шпаргалку, чтобы не плодить костыли, и применяй правильный синтаксис!
👉 Рубрика: #шпаргалка@LinuxSkill
⭐️ Зеркало в MAX
#Linux #Bash #DevOps #Sysadmin #ShellScripting #CLI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
🛡️ SSH-туннель отваливается? Вечные соединения за секунду
❗️ ❗️ ❗️ Нравится формат? Ставь 👍
👉 Рубрика: #шпаргалка@LinuxSkill
#SSH #Autossh #Linux #DevOps #SysAdmin
Обычный SSH-туннель или прокси падает при малейшем сбое сети, оставляя тебя без связи. Утилита autossh решает эту проблему: она оборачивает SSH-соединение, мониторит его состояние и автоматически перезапускает при обрыве.
Ниже подробная шпаргалка, как поднять вечные туннели для любых задач.
1. Поднимаем постоянный локальный SSH-туннель (Local port forward)
Пробрасываем удаленный порт 80 на локальный 8080 с портом мониторинга 20000autossh -M 20000 -N -L 8080:localhost:80 user@remote
2. Туннель без отдельного порта мониторинга
Полезно, если порты мониторинга закрыты (полагается на ServerAliveInterval)autossh -M 0 -N -L 8080:localhost:80 user@remote
3. Поднимаем вечный обратный туннель (Reverse port forward)
Пробрасываем наш локальный порт 80 на удаленный порт 8080autossh -M 20000 -N -R 8080:localhost:80 user@remote
4. Запуск в фоновом режиме
Ключ -f уводит процесс в фон сразу после аутентификацииautossh -f -M 20000 -N -L 8080:localhost:80 user@remote
5. Создаем неразрывный SOCKS-проксиautossh -M 20000 -N -D 8080 user@remote
6. Управление через переменные окружения
Включаем отладку и задаем задержку перед первой проверкой (по умолчанию 30 сек)AUTOSSH_DEBUG=1 AUTOSSH_GATETIME=10 autossh -M 20000 -N -D 8080 user@remote
Настрой это один раз, и твои пробросы портов больше никогда не умрут от смены IP или перезагрузки роутера. Проверь свои туннели прямо сейчас.
👉 Рубрика: #шпаргалка@LinuxSkill
#SSH #Autossh #Linux #DevOps #SysAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5