TGViewer
Channel Public Channel
Linux Ready | DevOps

Linux Ready | DevOps

@linux_ready

Авторский канал по разработке на Linux.
Ресурсы, обучения, задачи, шпаргалки.
Ежедневно информация пополняется!

Cотрудничество: @energy_c
Subscribers
11.2K
Photos
1K
Videos
73
Links
543

Showing posts older than #1301 · Back to latest

Older Posts 18 shown
Post #1299 2.11K
📂 Напоминалка по популярным кибератакам!

Например, Phishing обманывает пользователя и заставляет ввести свои данные на поддельной странице, а SQL Injection позволяет атакующему получить доступ к базе данных через уязвимость в запросах.

На картинке — самые распространённые типы атак, которые важно понимать каждому разработчику и специалисту по безопасности.

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

🚪 Linux Ready | #ресурс
  • 🔥 18
  • 👍 10
  • 🤝 9
Post #1298 2.21K
Как понять, что делает процесс в Linux?

Бывает ситуация, когда процесс есть, но непонятно, что он делает. В Linux можно смотреть системные вызовы.

Подключаемся к живому процессу:
strace -e trace=%file -p <PID>


Видно, какие файлы он открывает, читает или не может найти.

Если подозрение на сеть:
strace -e trace=%network -p <PID>


Покажет сетевые syscalls (connect, send*, recv*).

Если нужно понять поведение целиком:
strace -f -o trace.log your_command


Флаг -f отслеживает дочерние процессы, а лог можно спокойно разобрать позже.

🔥 Это часто даёт ответ быстрее, чем чтение кода или логов, особенно при работе с чужими бинарями, контейнерами или нестабильными сервисами.

🚪 Linux Ready | #совет
  • 👍 19
  • ❤ 9
  • 🔥 9
Post #1296 1.99K
📂 Карта ресурсов для изучения Linux!

На схеме структурированы направления: обучающие YouTube-каналы, профильные блоги, специализированная литература, популярные дистрибутивы, сертификации.

Это удобная схема — можно быстро понять, куда двигаться дальше и какие ресурсы использовать.

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

🚪 Linux Ready | #ресурс
  • 👍 21
  • ❤ 11
  • 🤝 8
  • 👎 1
Post #1295 2.27K
Перенаправляем трафик процесса через прокси — без изменения кода приложения!

Иногда нужно прогнать готовое приложение через прокси: отладка API, анализ трафика, тестирование доступа через альтернативный сетевой маршрут.

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

Установка:
# Debian/Ubuntu
sudo apt install proxychains4 -y

# Arch
sudo pacman -S proxychains-ng

# RHEL/CentOS (обычно через EPEL или совместимые репозитории)
sudo yum install proxychains-ng


В большинстве дистрибутивов используется proxychains-ng — поддерживаемая реализация proxychains.

Настройка: конфиг обычно лежит в /etc/proxychains4.conf или /etc/proxychains.conf.
sudo nano /etc/proxychains4.conf


Добавляем прокси:
socks5 127.0.0.1 9050


Можно указать SOCKS4/5 или HTTP CONNECT-прокси. Частый кейс — Tor или локальный прокси анализатора (Burp/ZAP).

Использование:
proxychains curl https://example.com


proxychains перехватывает вызовы connect() и DNS-функции, поэтому приложение продолжает работать как обычно, но его исходящие соединения идут через прокси:
proxychains git clone https://github.com/repo.git


Подходит для многих CLI-утилит, использующих стандартные сетевые вызовы через libc (но не для всех).

Практический пример:
proxychains firefox


Можно прогнать трафик через Tor или анализатор. С браузерами возможны нюансы из-за их архитектуры и многопроцессности — иногда надёжнее использовать встроенные настройки прокси.

Ограничения и нюансы: работает только с dynamically linked бинарями (из-за LD_PRELOAD), статически скомпонованные — не поддерживаются; некоторые приложения обходят libc, поэтому трафик может не проксироваться. Возможны проблемы с DNS (иногда требуется proxy_dns).

🔥 Минимальный способ управлять сетевым поведением приложений без правки кода.

🚪 Linux Ready | #практика
  • ❤ 20
  • 🔥 11
  • 👍 9
Post #1293 2.48K
🐱 Bash Cheatsheet — шпаргалка по Bash и Linux-командам!

Помогает быстро разобраться в работе с терминалом. Здесь собраны ключевые вещи: переменные, условия, циклы, работа с файлами, аргументы скриптов и базовые команды. Формат максимально простой, короткие примеры и конструкции, которые можно сразу использовать.

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


🚪 Linux Ready | #репозиторий
  • 👍 16
  • ❤ 8
  • 🔥 7
Post #1292 2.91K
✍️ freeCodeCamp — ключевые команды, которые используются в повседневной работе!

Руководство охватывает около 60 основных Bash-команд с примерами и пояснениями, что позволяет быстро понять их назначение и применение. Каждая команда сопровождается примерами использования и краткими рекомендациями, поэтому ресурс удобно использовать как справочник при работе с терминалом или при изучении Linux с нуля.

📌 Оставляю ссылочку: freecodecamp.org

🚪 Linux Ready | #сайт
  • 👍 19
  • ❤ 11
  • 🔥 9
Post #1291 2.81K
Пробрасываем локальный порт через SSH — доступ к закрытому сервису за одну команду!

Частый кейс: сервис крутится на удалённой машине, но слушает только localhost (например, база, админка, dev-сервер). Напрямую к нему не подключиться — но можно аккуратно протянуть порт к себе.

Команда:
ssh -L 8080:localhost:3000 user@remote-server


Что происходит: 8080 — локальный порт на твоей машине; localhost:3000 — адрес сервиса на удалённой машине; всё, что ты открываешь на localhost:8080, идёт через SSH на localhost:3000 на удалённой машине.

Теперь просто открываешь в браузере: http://localhost:8080
И видишь сервис с удалённой машины, даже если он не доступен извне.

Чтобы не держать терминал:
ssh -f -N -L 8080:localhost:3000 user@remote-server


Остановить можно, например:
pkill -f "ssh -L 8080"


Практический пример: PostgreSQL на сервере слушает только localhost:
ssh -L 5432:localhost:5432 user@remote-server


Теперь локально можно подключаться как будто база у тебя:
psql -h localhost -p 5432 -U user dbname


Если локальный порт уже занят — просто меняешь его:
ssh -L 9000:localhost:3000 user@remote-server


Важно: трафик шифруется через SSH, не нужно открывать порты на сервере; работает для любых TCP-сервисов (HTTP, DB, Redis и т.д.).

🔥 Это базовый приём: быстро получить доступ к любому закрытому сервису без изменения конфигурации сервера.

🚪 Linux Ready | #практика
  • 👍 23
  • 🔥 15
  • ❤ 9
  • 🤝 1
Post #1289 2.36K
🐱 Linux Cheat Sheet — системная шпаргалка по Linux-командам

Cтруктурированный справочник по Linux, где собраны основные команды и утилиты, разбитые по категориям: пользователи, файлы и директории, права доступа, сеть, процессы, пакеты, поиск, SSH и многое другое. Каждая команда сопровождается описанием и примерами использования, поэтому можно быстро понять, как она работает и где применяется.

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


🚪 Linux Ready | #репозиторий
  • 👍 15
  • ❤ 8
  • 🔥 8
Post #1288 2.45K
Непонятно, откуда взялся процесс?

Большинство смотрят ps aux, но он не показывает причинно-следственную связь.

Настоящая картина — это дерево процессов:
pstree -ap


Здесь видно, какой процесс чей родитель, с аргументами и PID.
Можно быстро понять: это systemd-сервис, cron-задача или дочерний процесс скрипта.

Если есть конкретный PID, смотри цепочку до корня:
pstree -s <PID>


Это показывает путь запуска, от init/systemd до нужного процесса.

Для точечной проверки родителя:
ps -o pid,ppid,cmd -p <PID>


И дальше можно идти вверх по PPID.

Важно: PPID показывает текущего родителя. Если процесс был перезапущен, демонезирован или его родитель умер — он может быть перепривязан к systemd/init, и исходный источник уже не виден.

🔥 Дерево процессов даёт быстрый ответ в большинстве случаев.

🚪 Linux Ready | #совет
  • ❤ 17
  • 👍 10
  • 🔥 8
Post #1282 2.49K
📂 Шпаргалка по cron в Linux!

Например, 0 0 * * * выполняет задачу ежедневно в полночь, а */5 * * * * — с интервалом в 5 минут.

На изображении — структура cron-выражения, основные алиасы (@daily, @weekly, @reboot) и типовые примеры расписаний, которые удобно использовать в повседневной работе.

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

🚪 Linux Ready | #ресурс
  • 🔥 21
  • ❤ 10
  • 🤝 8
Post #1281 2.83K
🐱 Полезную статью нашёл на Хабре: «Чёрное окошко Linux: погружение в подсистему TTY»!

В этой статье:
• Подробно разбирается, что на самом деле скрывается за терминалом в Linux;
• Объясняется разница между консолью, терминалом, shell, TTY и эмуляторами;
• Показано, как процессы взаимодействуют с системой через stdin/stdout/stderr и файловые дескрипторы, и какую роль в этом играет ядро.


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


🚪 Linux Ready | #статья
  • 👍 22
  • ❤ 10
  • 🔥 8
  • 🤝 1
Post #1280 2.84K
Смотрим, какие библиотеки реально отображены в адресное пространство процесса!

Когда приложение падает из-за несовместимой или отсутствующей библиотеки, ldd полезен, но он показывает, как динамический загрузчик разрешает зависимости для бинаря, а не текущее состояние уже запущенного процесса.

Если нужен точный ответ, что уже замаплено в память, используем /proc.

Сначала находим PID процесса:
pgrep -a python


Допустим, это 1234. Теперь смотрим, какие shared objects отображены в его адресное пространство:
grep '\.so' /proc/1234/maps


Что здесь важно: /proc/<pid>/maps — карта памяти процесса; каждая строка — отдельный участок памяти; если в строке есть путь к .so, значит есть файловый маппинг этого объекта.

Пример:
7f2c1a000000-7f2c1a200000 r-xp ... /usr/lib/x86_64-linux-gnu/libssl.so.1.1


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

Если нужен список без дублей:
grep '\.so' /proc/1234/maps | awk '{print $6}' | sort -u


Практический кейс — конфликт версий после обновления: систему обновили, новая библиотека уже лежит на диске, а процесс всё ещё держит старую версию в памяти.

Проверить можно так:
ls -l /proc/1234/map_files/


Если у файла есть пометка (deleted), это сильный сигнал: файл на диске уже удалён или заменён, но процесс продолжает использовать старый inode через существующий маппинг.

🔥 Что важно помнить: изменения на диске не влияют на уже загруженные библиотеки в работающем процессе, после обновления библиотек сервисы обычно нужно перезапускать, доступ к /proc/<pid> и особенно map_files может быть ограничен правами.

🚪 Linux Ready | #практика
  • 👍 14
  • 🔥 10
  • ❤ 8
Post #1270 2.86K
📂 Напоминалка по Linux-командам!

Например, ls показывает содержимое директории, cd помогает перемещаться между папками, а grep позволяет быстро находить нужный текст в файлах.

На картинке — самые используемые команды: работа с файлами, процессами, сетью, правами доступа и системой. Такой набор закрывает 90% повседневных задач в терминале.

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

🚪 Linux Ready | #ресурс
  • 🔥 24
  • 👍 10
  • 🤝 8
  • ❤ 4
Post #1269 2.74K
Почему диск полный, хотя файлы уже удалены?

Удалили огромный лог, но место на диске не освободилось, df показывает, что диск всё ещё заполнен.

Причина в том, что процесс держит открытый файловый дескриптор.
Файл удалён из файловой системы, но продолжает существовать, пока процесс его не закроет.

Найти такие файлы можно так:
lsof | grep deleted


Там будет PID процесса и номер дескриптора.

Теперь можно освободить место без перезапуска сервиса:
: > /proc/<PID>/fd/<FD>


Это обнуляет файл через файловый дескриптор, и место возвращается системе.

🔥 Если диск заполнен невидимыми файлами, часто нужно найти открытые дескрипторы и очистить их через /proc.

🚪 Linux Ready | #совет
  • ❤ 17
  • 👍 11
  • 🔥 8
Post #1267 2.64K
😎 Docker Curriculum — структурированное обучение с нуля!

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

📌 Оставляю ссылочку: docker-curriculum.com

🚪 Linux Ready | #сайт
  • 👍 11
  • 🔥 9
  • ❤ 8
  • 🤝 1
Post #1266 2.73K
Монтируем ISO-образ без записи на диск — мгновенный доступ к содержимому!

Иногда нужно посмотреть, что внутри .iso-файла: проверить структуру, вытащить отдельные файлы, запустить установщик или просто поанализировать. Но зачем сжигать его на флешку или распаковывать, если можно примонтировать прямо в систему?

Для этого понадобится всего одна команда и пустая директория:
sudo mount -o loop ~/Downloads/disk.iso /mnt/iso


Здесь -o loop создаёт виртуальное устройство, ~/Downloads/disk.iso — путь до образа, а /mnt/iso — куда монтировать (создай папку заранее).

Теперь ты можешь просто зайти в /mnt/iso и посмотреть всё содержимое, как если бы это был обычный диск или флешка.

Когда всё закончишь — не забудь отмонтировать:
sudo umount /mnt/iso


🔥 Работает со всеми ISO: Linux-дистрибутивы, Windows-инсталляторы, образы с драйверами, тулкиты пентестера и даже старые архивы.

🚪 Linux Ready | #практика
  • 🔥 19
  • 👍 11
  • ❤ 8
Post #1264 2.61K
📂 Напоминалка по сетевым портам!

Например, порт 22 используется для SSH-подключений, а 443 — для защищённого HTTPS-трафика. Порты — основа любого взаимодействия между клиентом и сервером.

На картинке — 18 основных портов.

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

🚪 Linux Ready | #ресурс
  • 👍 19
  • 🤝 13
  • 🔥 9
Post #1259 2.68K
👩‍💻 Настраиваем swap-файл — защита от OOM и падений сервера!

Всплеск нагрузки, утечка памяти или неудачный деплой и ядро включает OOM Killer. Swap — это страховка, система получает запас по памяти и время на реакцию (пусть и с деградацией по скорости).

В этом посте:
• Проверим, есть ли swap и используется ли он;

• Создадим swap-файл без перезагрузки сервера;

• Подключим его и настроим автозапуск;

• Оптимизируем поведение системы через swappiness.


Практическая настройка, которая снижает риск внезапных падений под нагрузкой.

🚪 Linux Ready | #гайд
  • 👍 20
  • 🔥 10
  • 🤝 8
  • ❤ 2
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →