Linux Ready | DevOps
9.54K subscribers
836 photos
41 videos
341 links
Авторский канал по разработке на Linux.
Ресурсы, обучения, задачи, шпаргалки.
Ежедневно информация пополняется!

Автор: @energy_it

Реклама на бирже: https://telega.in/c/linux_ready
Download Telegram
📂 Напоминалка для работы с Linux LVM!

Например, pvcreate инициализирует диск или раздел под LVM, а vgcreate объединяет физические тома в volume group.

На картинке — наглядная схема архитектуры LVM и самые часто используемые команды для управления physical volumes, volume groups и logical volumes.

Сохрани, чтобы не забыть!

🚪 Linux Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍8🤝7
Выдача бинарникам точечных привилегий через setcap!

Иногда программе нужен root только для одной операции (bind к 80 порту, raw socket, cap_sys_ptrace). Для этого в Linux есть capabilities — они управляются через setcap.

Проверка capabilities у исполняемого файла:
getcap /usr/bin/ping


Типичный вывод:
/usr/bin/ping cap_net_raw=ep


В современных дистрибутивах ping часто не setuid-root, а работает через capabilities, получая доступ к raw socket.

Пример: разрешить бинарнику слушать порт <1024 без root:
sudo setcap cap_net_bind_service=ep ./server


Теперь запуск возможен от обычного пользователя:
./server


Bind к :80 будет работать без sudo.

Проверка назначенных capabilities:
getcap ./server


Удаление capabilities у бинарника, если нужно полностью убрать выданные ранее права и вернуть его в обычное состояние:
sudo setcap -r ./server


Несколько capabilities сразу, если бинарнику требуется больше одного привилегированного действия:
sudo setcap cap_net_bind_service,cap_sys_time=ep ./tool


Просмотр списка и описания всех capabilities:
man 7 capabilities


Важно: работает только на файловых системах с поддержкой extended attributes, cp по умолчанию сбрасывает xattr (используйте cp --preserve=xattr или -a), tar сохраняет capabilities только с --xattrs

🔥 Capabilities — способ выдавать минимально необходимые права, вместо запуска всего от root.

🚪 Linux Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1510🔥7
Знали, что одна настройка логирования может стереть следы реальной атаки?

Опция RepeatedMsgReduction в rsyslog заменяет одинаковые строки лога фразой «last message repeated N times».

Для хакера это подарок: можно замаскировать брутфорс или шумный скан внутри одного легитимного события, которое система просто объединит:
# Отключаем скрытие повторов
$RepeatedMsgReduction off


Эта настройка в /etc/rsyslog.conf заставит систему записывать каждое событие отдельно, сохраняя точную хронологию и уникальные маркеры атак.

Перезапуск сервиса для применения изменений:
sudo systemctl restart rsyslog


После применения лог станет «грязнее», но в нем перестанут исчезать попытки подбора паролей и сетевые аномалии.

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

🚪 Linux Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍7🔥7🤝2
👍16🤝7🔥61
Как убрать зависший процесс, дав ему шанс завершиться нормально?

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

Сначала отправь корректный сигнал завершения:
kill -TERM 1234


SIGTERM даёт процессу шанс закрыть файлы, сохранить состояние и выйти.

Подожди пару секунд (значение условное, часто этого достаточно):
sleep 2


Если не вышел, завершаем принудительно:
kill -KILL 1234 2>/dev/null || true


SIGKILL нельзя перехватить: ядро завершит процесс (за исключением редких случаев D-state из-за I/O).

🔥 SIGTERM - позволяет процессу корректно освободить ресурсы и закрыть файловые дескрипторы; SIGKILL используй только как fallback, когда процесс игнорирует сигналы и завис.

🚪 Linux Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝11👍10🔥65
📂 Напоминалка для работы с XSS!

Например, Reflected XSS выполняется сразу после перехода по вредоносной ссылке, а Stored XSS сохраняется в базе и срабатывает у всех пользователей.

На картинке — 3 основных типа XSS, которые важно различать при разработке и ревью кода.

Сохрани, чтобы не забыть!

🚪 Linux Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11🤝7👍63
Разрежённые файлы (sparse files) и экономия диска!

В Linux файл может иметь логический размер, превышающий фактически занятое место на диске. Незаписанные области представлены как дыры (holes) и физически места не занимают.

Создание файла большого размера без записи данных:
truncate -s 10G bigfile.img


Файл имеет логический размер 10G, но почти не занимает место на диске.

Проверка:
ls -lh bigfile.img
du -h bigfile.img


ls показывает логический размер файла, du — реально занятое дисковое пространство.

Создание sparse-файла через dd:
dd if=/dev/zero of=bigfile.img bs=1 count=0 seek=10G


Смещение файлового офсета устанавливается на 10G без записи данных — создаётся файл с дырой.

Частичная запись данных:
printf 'DATA' | dd of=bigfile.img bs=1 seek=1G conv=notrunc


Физически будет занят только небольшой участок около 1G, остальное останется дырами.

Просмотр расположения данных:
filefrag -v bigfile.img


Показывает, какие диапазоны файла реально занимают блоки на диске (для классических FS вроде ext4/xfs).

Освобождение места внутри существующего файла, автоматическое преобразование участков, заполненных нулями, в дыры:
fallocate -d bigfile.img


Точечное выбивание физических блоков с сохранением логического размера:
fallocate --punch-hole --offset 1G --length 500M --keep-size bigfile.img


Корректное копирование sparse-файлов:
cp --sparse=always src.img dst.img


Для архивов:
tar --sparse -cf backup.tar bigfile.img


Важно: поддержка sparse-файлов и hole punching зависит от файловой системы и её конфигурации (ext4, xfs — поддерживают).

🔥 Sparse-файлы — базовый механизм экономии диска для образов, дампов и крупных артефактов.

🚪 Linux Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍188🤝8
This media is not supported in your browser
VIEW IN TELEGRAM
😎 Linux/DevOps Interview Questions — вопросы для подготовки к собеседованиям!

Отличный репозиторий с реальными вопросами, которые проверяют знания Linux и DevOps. Здесь есть вопросы по командам, процессам, файловым системам, сетям, bash и другим темам, которые часто встречаются в задачах и на собеседованиях.

Оставляю ссылочку: GitHub 📱


🚪 Linux Ready | #репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1511🤝9🔥1
📂 Напоминалка по DDoS-атакам!

DDoS — это атака, при которой сервер заваливают огромным количеством запросов, из-за чего он перестаёт отвечать реальным пользователям.

На картинке — наглядная схема: как работает DDoS; роль ботов (zombie); чем отличается нормальный TCP handshake от атаки.

Сохрани, чтобы не забыть!

🚪 Linux Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥10🤝7
Почему grep выводит данные с задержкой в пайпах?

Бывало tail -f app.log | grep ERROR - лог пишется, а grep молчит и выводит всё сразу через секунды?

Это не баг. Большинство CLI-утилит буферизуют stdout, когда работают не в TTY, а в пайпе. Отключаем буферизацию:
stdbuf -oL grep "ERROR" app.log


-oL — построчный вывод (line-buffered).

Классический сценарий мониторинга логов без задержек:
tail -f app.log | stdbuf -oL grep "ERROR"


Альтернатива специально для grep:
tail -f app.log | grep --line-buffered "ERROR"


Работает и с другими командами:
journalctl -f | stdbuf -oL grep nginx


🔥 Если команда в пайпе не отвечает, почти всегда виновата буферизация. stdbuf -oL (или grep --line-buffered) возвращает вывод без переписывания пайпа.

🚪 Linux Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥108
👩‍💻 Быстрый анализ больших файлов!

В этом посте — набор утилит для потоковой обработки и анализа больших файлов без загрузки их в память. Эти инструменты используются при работе с логами, CSV/TSV-данными и текстовыми дампами. С их помощью можно извлекать колонки, фильтровать строки, сортировать данные и отслеживать прогресс обработки.

🚪 Linux Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22👍128🤝3
This media is not supported in your browser
VIEW IN TELEGRAM
💡 Awesome Linux Software — список лучших приложений, утилит и инструментов!

Здесь собран большой русскоязычный список полезного софта: консольные утилиты, системные инструменты, графические приложения, окружения рабочего стола, а также ссылки на форумы и полезные ресурсы по Linux.

Оставляю ссылочку: GitHub 📱


🚪 Linux Ready | #репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
19🔥12👍9🤝3👎1
😎 Нашёл полезную статью на Хабре: «Звук на 2-х и более устройств в Ubuntu одновременно»!

В этой статье:
• Автор на примере Ubuntu разбирает, как выводить аудио одновременно на несколько устройств;
• Пошагово объясняется, какие модули и утилиты нужны для мультивыхода;
• Приводятся рабочие команды для создания виртуального аудиоустройства и его настройки.


🔊 Продолжайте читать на Habr!


🚪 Linux Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
16👍16🤝9
Обновляем файлы через подмену, а не через редактирование!

Подготавливаем новую версию файла отдельно, не трогая рабочий:
cp --preserve=mode,ownership config.conf config.conf.new


Редактируем её как угодно, ошибки здесь никому не мешают:
vim config.conf.new


Заменяем файл одной атомарной операцией:
mv config.conf.new config.conf


В Linux имя файла - это запись каталога, указывающая на inode.
mv (rename) атомарно меняет эту запись, процесс либо видит старую версию файла, либо уже новую, без промежуточного состояния.

🔥 Атомарность гарантирована только внутри одного файлового раздела. mv между разными FS - это копирование и удаление.

🚪 Linux Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍199🤝9
👍27🔥13🤝10
👩‍💻 Приводим время в порядок: настраиваем синхронизацию через chrony!

Сhrony - NTP-клиент, который корректно держит время на VPS, виртуальных машинах и серверах с нестабильной сетью. Он является стандартом де-факто в современных дистрибутивах.

В этом посте:
Проверяем текущее состояние времени и синхронизации в системе;

Устанавливаем и включаем chrony;

Проверяем источники времени и фактическую точность;

Убеждаемся, что время стабильно.


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

🚪 Linux Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥1110🤝4😁1