Linux Skill - Освой Linux c нуля до DevOps
10.7K subscribers
59 photos
76 videos
436 links
Освой Linux c нуля до DevOps
Подробный гайд по Linux и море других уроков для системных администраторов

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

РКН https://vk.cc/cMUwm4
Download Telegram
🔐 iptables: доступ к порту 8000 только с одного IP

Привет, хранитель сетей! Если ты хочешь открыть доступ к какому-либо сервису (например, веб-интерфейсу на порту 8000) только для одного IP, не трогая весь остальной трафик — вот как это делается через iptables.

🔧 Пример: разрешить доступ только для 1.2.3.4

iptables -A INPUT -p tcp --dport 8000 -s 1.2.3.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 8000 -j DROP

Так ты явно разрешаешь доступ для IP 1.2.3.4, а все остальные — отсекаешь.

💡 Альтернатива: блокировать всех, кроме одного IP
iptables -A INPUT -p tcp --dport 8000 ! -s 1.2.3.4 -j DROP

Один простой вариант — одна строка, эффект тот же.

📌 Несколько полезных замечаний:
- Для диапазона IP используй:
-s 1.2.3.0/24
- Чтобы снять правило, замени -A на -D (или используй iptables -S и удаляй по номерам).
- Не забудь сохранить конфигурацию, если не хочешь потерять правила после перезагрузки:
  iptables-save > /etc/iptables.rules

🌳 Ветка: https://stackoverflow.com/questions/7423309/iptables-block-access-to-port-8000-except-from-ip-address

📩 Завтра: Как управлять iptables на лету — без sudo, без потерь
Включи 🔔 чтобы не пропустить!
____________________

Дополнительный материал:
🧠 - Не трать время на конфиги: как упростить работу с WireGuard
🧠 - Неожиданный способ взломать систему: что такое бинарный анализ в Linux?

#stackoverflow @LinuxSkill #iptables #Linux #firewall #порт #безопасность #SysAdmin #DevOps
👍12👀1
🧠 Как управлять iptables на лету — без sudo, без потерь

Привет, сетевой волшебник! Если ты хоть раз пытался автоматически обновлять правила iptables из приложения или скрипта — ты знаешь, насколько это боль.
Сегодня разберём, как это делать программно, безопасно и эффективно — даже без API.

🤯 Проблема: у iptables нет API

- libiptc не предназначена для использования — она нестабильна и может быть удалена в будущем.
- Прямого, документированного API в C, Python, Rust и т.д. не существует.

📌 Официальный ответ от Netfilter:
> “Нет, API не предусмотрен. Используйте system() или iptables-restore.”
Источник: Netfilter FAQ

Что работает на практике:

#1. iptables-restore (атомарная загрузка правил)
Можно применять *весь ruleset сразу*, не теряя соединений:

iptables-restore < my_ruleset.conf


✔️ Безопасно: правила применяются при COMMIT, в один вызов ядра
✔️ Работает из любой программы через stdin


#2. ipset — для добавления IP без пересборки

ipset create allowlist hash:ip
ipset add allowlist 1.2.3.4
iptables -A INPUT -m set --match-set allowlist src -j ACCEPT


✔️ Отлично подходит для динамических списков
✔️ Есть поддержка timeout и swap
✔️ Работает быстро и без потерь


#3. rfw — REST API для iptables (open source)

Позволяет управлять правилами через HTTP-запросы:

PUT /drop/input/eth0/11.22.33.44


👉 Проект: https://github.com/gluczywo/rfw
✔️ Поддерживает JSON, GET, PUT, DELETE, сериализацию
✔️ Работает на localhost без SSL
✔️ Подходит для распределённых систем


#4. python-iptables

Обёртка над libiptc (но будь осторожен):

🔗 https://github.com/ldx/python-iptables
✔️ Удобен для скриптов
Требует осторожности при работе с низкоуровневым API

🛑 Что не делать:

- Не пиши правила через iptables -A в цикле
- Не используй libiptc напрямую в проде
- Не забывай про iptables-save как бэкап перед внесением правок

🌳 Ветка: https://stackoverflow.com/questions/109553/how-can-i-programmatically-manage-iptables-rules-on-the-fly

📩 Завтра: Вопрос №17 из теста Linux Essentials Certification
Включи 🔔 чтобы не пропустить!
____________________

Дополнительный материал:
🧠 - Настрой cron за 5 минут и забудь о ручной работе навсегда!
🧠 - Ты больше никогда не запутаешься в systemd: разбор по шагам!
🧠 - 10 секретов команды ping, которые знают только сетевые гуру

#stackoverflow @LinuxSkill #iptables #ipset #Linux #SysAdmin #DevOps #firewall #rfw #сетибезопасность
👍14
Media is too big
VIEW IN TELEGRAM
🌐 DNS — самая недооценённая технология, без которой интернет не работает

👋 Привет, root-человек! Если ты думаешь, что DNS — это просто перевод имён в IP, держись. На самом деле это распределённая база доверия, у которой свои короли, правила и уязвимости.

📺 Видео: DNS // Теория
Разложили всё по битам — от hosts до Cloudflare и DNS-записей, которые выдают больше, чем ты думаешь.

⏱️ Таймкоды для удобной перемотки:
00:00 — История DNS: от символьных имён до доверия
08:04 — Почему файл hosts сломался, и появился DNS
14:07 — Как домены стали деньгами
19:05 — Кто управляет интернетом на самом деле
27:02 — DNS = распределённая публичная база данных
36:21 — dig: покажи мне всё
44:23 — Trace: визуальный маршрут от корня до цели
47:12 — Что скрывают A, MX и TXT-записи
56:40 — Cloudflare — щит для твоего DNS
59:24 — DNS как основа сервисов

🧠 Что ты узнаешь:
- Почему DNS жив до сих пор, хотя ему 40 лет.
- Что такое корневые серверы и кто им платит.
- Как dig +trace показывает весь маршрут твоего запроса.
- Какие записи указывают на владельца домена (и могут слить всю инфру).
- Почему Cloudflare стал стандартом де-факто для защиты и ускорения.

🧪 Проверь сам:

dig +noall +answer linux.org
dig +trace linux.org


- Узнай, откуда реально идёт трафик.
- Проверь TTL, A-записи, TXT и MX — а что видит мир про твой домен?

🧩 Вывод:
DNS — это не просто адресная книга. Это доверие, безопасность и контроль над инфраструктурой. Не знаешь, что происходит в твоих DNS-записях — значит, ты вслепую открываешь дверь в продакшн.

Источник: https://youtu.be/a_V23iYheqg?si=CaxvFBk_m-myXPZz

📩 Завтра: Вопрос №18 из теста Linux Essentials Certification
Включи 🔔 чтобы не пропустить!
____________________

Дополнительный материал:
🧠 - Секреты netstat: найди подозрительные соединения за 2 минуты!
🧠 - Ты не используешь curl на полную, пока не знаешь эти трюки
🧠 - Как трое инженеров бросили вызов IBM: История Silicon Cowboys

#Linux_youtube @LinuxSkill #dns #linux #cloudflare #devops #dig #sysadmin #инфраструктура #безопасность #серверы #bash
🔥7👍6
Media is too big
VIEW IN TELEGRAM
🚀 Подними свой DNS-сервер и забудь про Google DNS

Привет, архитектор сетей!
Если ты уже знаешь, что DNS — это не просто «таблица имён», пора пойти глубже. В этом видео ты шаг за шагом разберёшься, как развернуть собственный DNS-сервер на BIND, протестировать его, перехватывать запросы, настраивать зоны и прокачать безопасность.

📺 Видео: Настройка BIND. DNS Часть 2
Таймкоды для быстрой перемотки:

00:01 — Введение в тему
00:55 — Установка BIND на CentOS
03:24 — Альтернативы: PowerDNS и dnsmasq
07:53 — Первая конфигурация DNS-сервиса
10:18 — Проверка работы через другую машину
15:14 — Поведение кэша при повторных запросах
16:03 — Мониторим DNS через dnsmasq
22:22 — Фильтрация и отключение лишнего
23:33 — Угрозы приватности и защита DNS
28:21 — DNS over HTTPS в действии
33:43 — Настраиваем форвардинг на внешние DNS
36:40 — Создание собственной зоны
41:42 — Внутренние и публичные домены
45:16 — Обновляем список корневых серверов
49:18 — Выводы и идеи для продвинутой настройки

🧩 Что ты освоишь:
- Разворачивание DNS-сервера на BIND
- Правильная настройка named.conf и зон
- Форвардинг, кэширование и анализ запросов
- Защита конфиденциальности с DNS-over-HTTPS
- Работа с dnsmasq для мониторинга и отладки

🧪 Полезные команды:

systemctl enable named --now      # Запуск и автозагрузка BIND
dig example.local # Тестирование своей зоны
dnsmasq --log-queries # Перехват DNS-запросов


💡 Вывод:

Свой DNS — это не только про контроль, но и про обучение.
Ты начинаешь видеть интернет по слоям. А ещё понимаешь, как Google, Cloudflare и провайдеры играют в «доверие».

Источник: https://youtu.be/JlrV1-jd-4w?si=D7ACgJSzlycDqhxZ

📩 Завтра:
Включи 🔔 чтобы не пропустить!
____________________

Дополнительный материал:
🧠 - Настройка CI/CD для бэкапов: простые шаги к защите данных
🧠 - Linux для геймеров: как настроить игры с помощью PortProton за 5 минут
🧠 - Мастер grep: 8 шагов к совершенству в поиске

#Linux_youtube @LinuxSkill #dns #bind #linux #networking #devops #sysadmin #dnsmasq #инфраструктура #интернет #безопасность
👍25👎1
🚀 Как работает export в bash и когда он реально нужен?

Привет, архитектор переменных и властелин скриптов! Задумывался, зачем вообще нужен export в bash и что он делает с переменными? Сегодня разложим по полочкам — коротко, чётко и с пользой!

🧠 Что делает export

Когда ты пишешь:
export MY_VAR=value

ты говоришь bash: “Эй, сделай эту переменную доступной для всех дочерних процессов.”
Например, твой скрипт вызывает python, curl, node — они смогут использовать MY_VAR.

🤔 А если без export?

Вот так:
MY_VAR=value

Переменная будет доступна только внутри текущего shell, но не в дочерних процессах.
Однако есть лайфхак:

MY_VAR=hello node script.js

Так переменная временно экспортируется только для выполнения node script.js. Удобно? Да!

⚠️ Важное ограничение
Экспорт работает вниз по процессу, но не вверх.
Если ты экспортируешь переменную в скрипте, родительский терминал её не увидит.

🛠 Вывод
Хочешь, чтобы переменная работала в дочерних процессах? Используй export.
Пишешь скрипт с вызовом других программ? Без export будет больно.
Но если переменная нужна только внутри текущего скрипта — не трать лишние байты.


🌳 Ветка: https://stackoverflow.com/questions/1158091/defining-a-variable-with-or-without-export

📩 Завтра: Прокачай свой namei: секретная опция для идеального вывода!
Включи 🔔 чтобы не пропустить!
____________________

Дополнительный материал:
🧠 - Поднимем отказоустойчивое хранилище в Proxmox VE с Ceph
🧠 - Отключи ненужные конфиги в Apache за пару команд!
🧠 - Контролируй трафик в реальном времени! Три утилиты для мониторинга сети в Linux

#stackoverflow @LinuxSkill #Linux #ShellScripting #Export #SysAdmin #DevOps
👍18🔥1
🤔 Как запросить ввод Yes/No/Cancel в shell скрипте?

Хочешь сделать свои скрипты более интерактивными? Узнай, как легко запросить ввод от пользователя в Linux с помощью команд read и select.

Основная информация:

1. Использование команды read:

Команда read позволяет запрашивать ввод от пользователя. Вот пример, как это сделать:

   while true; do
read -p "Do you wish to install this program? " yn
case $yn in
[Yy]* ) make install; break;;
[Nn]* ) exit;;
* ) echo "Please answer yes or no.";;
esac
done


Этот скрипт будет повторять запрос, пока пользователь не введет "yes" или "no".

2. Использование команды select:

select упрощает выбор, автоматически отображая доступные варианты:

   echo "Do you wish to install this program?"
select yn in "Yes" "No"; do
case $yn in
Yes ) make install; break;;
No ) exit;;
esac
done


Здесь пользователь выбирает номер, соответствующий его выбору.

3. Локализация ввода:

Для поддержки разных языков можно использовать locale:

   set -- $(locale LC_MESSAGES)
yesexpr="$1"; noexpr="$2"; yesword="$3"; noword="$4"

while true; do
read -p "Install (${yesword} / ${noword})? " yn
if [[ "$yn" =~ $yesexpr ]]; then make install; exit; fi
if [[ "$yn" =~ $noexpr ]]; then exit; fi
echo "Answer ${yesword} / ${noword}."
done


Используя команды read и select, ты можешь сделать свои скрипты более интерактивными и удобными для пользователей. Попробуй сам и убедись в их эффективности!

🌳 Ветка: https://stackoverflow.com/questions/226703/how-do-i-prompt-for-yes-no-cancel-input-in-a-linux-shell-script

📩 Завтра: Топ команды для DevOps: Что спрашивают на собеседованиях
Включи 🔔 чтобы не пропустить!
____________________

Дополнительный материал:
🧠 - Секреты массового управления пользователями и группами в Linux
🧠 - Не трать время на логи! Вот как найти все медленные запросы за 1 минуту
🧠 - Как ускорить MySQL? Простые советы, чтобы твой сервер летал, как на стероидах

#stackoverflow @LinuxSkill #Linux #ShellScripting #UserInput #SysAdmin #DevOps
👍15
🧠 Как узнать ВСЁ о железе и системе в Linux за 5 минут

Привет, линукс-мастер! 🐧

Хочешь быстро получить полную информацию о процессоре, памяти, дисках, устройствах USB и прочем железе в системе? Лови топ команд для диагностики без лишних движений:

⚙️ Системная информация
- uname -a — версия ядра и архитектура системы.

🖥️ Информация о железе
- lspci — список всех устройств на шинах PCI.
- lsusb — список USB-контроллеров и устройств.
- lshw — детальное описание железа.
- hwinfo — альтернатива lshw с расширенными данными.
- dmidecode — чтение таблицы DMI/SMBIOS (информация о BIOS, материнке, памяти).

🧠 Процессор и память
- lscpu — характеристики процессора.
- free -h — текущая загрузка ОЗУ.
- cat /proc/cpuinfo — подробности о CPU.

🛠️ Диски и файловые системы
- lsblk — список всех блочных устройств.
- blkid — метки разделов и UUID.
- fdisk -l, gdisk -l, parted -l — разметка дисков.
- df -h — свободное место на дисках.
- mount — список смонтированных разделов.

🔥 Дополнительно
- dmesg — лог загрузки ядра и сообщения устройств.
- hdparm -I /dev/sdX — характеристики жестких дисков.
- inxi -Fxz — сводный отчёт о системе и железе.

🛡️ Все команды работают в терминале, без GUI. Удобно для серверов, VPS и быстрой диагностики локальных машин.

📩 Завтра: Вопрос №25 из теста Linux Essentials Certification
Включи 🔔 чтобы не пропустить!
____________________

Дополнительный материал:
🧠 - Превращаем namei в супер-ls с опцией -l!
🧠 - Prometheus: Все Основы Мониторинга — Почему Это Важно
🧠 - Раскрой тайны своего файрвола: просмотр правил iptables!

#Linux_Mastery @LinuxSkill #Linux #Sysadmin #Hardware #Terminal #Diagnostics
👍38
🛠️ 10 самых частых ошибок в Linux и как быстро их исправить

Привет, цифровые искатели приключений! 🧭

Если ты хоть раз настраивал Linux, ты точно натыкался на эти проблемы.
Лови экспресс-гайд, который спасет тебе часы нервов и дебага!

🛡️ Ошибки при обновлении и установке пакетов

- Почини сломанные зависимости:

  sudo apt-get install -f


- Очисти кэш и обнови пакеты:

  sudo apt-get clean
sudo apt-get update


🌐 Проблемы с сетью

- Проверь интерфейсы:

  ip a


- Перезапусти сеть:

  sudo systemctl restart NetworkManager


- Проверь DNS:

  cat /etc/resolv.conf


🔐 Проблемы с правами доступа

- Выполни команду от суперпользователя:

  sudo <command>


- Исправь права на файлы и каталоги:

  sudo chmod 755 /path/to/dir
sudo chown user:user /path/to/file


🖥️ Проблемы с загрузкой системы

- Восстанови GRUB:

  sudo grub-install /dev/sda
sudo update-grub


- Проверь файловую систему:

  sudo fsck /dev/sda1


🗄️ Нет места на диске

- Посмотри занятое пространство:

  df -h


- Очисти временные файлы:

  sudo apt-get clean
sudo rm -rf /var/cache/apt/archives/*


📡 Проблемы с NFS

- Проверь и перезапусти сервисы:

  sudo systemctl status nfs-server
sudo systemctl restart nfs-server


🐍 Конфликты в Python

- Используй виртуальные окружения:

  python3 -m venv myenv
source myenv/bin/activate
pip install <package>


🔥 Проблемы с SELinux

- Просмотри логи:

  sudo ausearch -m avc -ts recent


- Переключи в permissive-режим:

  sudo setenforce 0


🧩 Ошибки с модулями ядра

- Загрузи модуль вручную:

  lsmod
sudo modprobe <module>


🔥 Проблемы с фаерволом

- Посмотри текущие правила:

  sudo iptables -L


- Открой нужный порт:

  sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT


📚 Забирай эту базу знаний в закладки и экономь часы жизни! Проблемы больше не застанут тебя врасплох.

📩 Завтра: Reverse Shell на практике: подключаемся к скрытому серверу за 1 минуту
Включи 🔔 чтобы не пропустить!
________________

Дополнительный материал:
🧠 - Открой секреты своей системы: 18 команд которые должен знать каждый линуксоид!
🧠 - Осторожно: Никогда не запускай эти 11 команд в Linux!
🧠 - Защита SSH-сервера: порты, ключи и iptables

#Linux_Mastery @LinuxSkill #Linux #Troubleshooting #Errors #Sysadmin #DevOps
👍40🔥5
Что будет, если ввести неправильный пароль в sudo? (спойлер: тебя унизят)

Привет, повелитель терминала! 🖥️

Ты знал, что в Linux можно включить "режим унижений" прямо через sudo? 😈
Каждый раз, когда ты вводишь неправильный пароль, система будет подшучивать над тобой острыми фразочками.
Всё работает без установки стороннего шлака!

🚀 Как включить «оскорбительный режим»

Добавь в /etc/sudoers или в отдельный файл в /etc/sudoers.d/ строчку:

Defaults insults


Теперь попробуй выполнить команду от пользователя:

sudo apt update

и нарочно введи неправильный пароль.

Все фразы зашиты в библиотеку /usr/libexec/sudo/sudoers.so.

🎯 Как вывести свои собственные оскорбления

Хочешь персонализировать ответы? Легко!

1. Сначала закомментируй Defaults insults.
2. Добавь свою фразу:

Defaults badpass_message="Попробуй ещё раз, герой терминала!"


Или сделай ротацию фраз через скрипт:

#!/bin/bash
messages=("Неверный пароль! Ты уверен, что это твоя клавиатура?"
"Еще одна ошибка — и я вызываю хакеров!"
"Может, стоит попробовать старый пароль?")
echo "${messages[$RANDOM % ${#messages[@]}]}"


📩 Завтра: Ускоряй рутину в 5 раз: DevToys спасает!
Включи 🔔 чтобы не пропустить!
____________________

Дополнительный материал:
🧠 - Автоматизация кибербезопасности: 5 полезных скриптов на Bash
🧠 - Сравнение производительности Nginx и Caddy Performance: кто победит?
🧠 - Как сделать простую защиту от DoS-атак с Fail2Ban?

#Linux_Mastery @LinuxSkill #Linux #Sudo #Fun #Sysadmin
👍22🔥9
🚨 Ускоряй рутину в 5 раз: DevToys спасает!

Привет, цифровые мастера и оптимизаторы времени! Надоело переключаться между кучей мелких утилит?
Хочешь, чтобы базовые задачи решались быстро и удобно прямо на месте?

Тогда встречай DevToys — универсальный набор инструментов для разработчиков и системных администраторов! ⚙️

Что умеет DevToys прямо из коробки:

- 🔑 Генерация и декодирование JWT
- 📦 Базовая кодировка/декодировка Base64
- 🧮 Быстрые конвертации JSON YAML
- 🖥️ Преобразование UUID, хеширование (SHA, MD5)
- 🔍 Форматирование SQL-запросов
- 🖋️ Валидация регулярных выражений
- 📜 Работа с текстами: сравнение, преобразование
- 🌐 Проверка IP-адресов, портов и других сетевых параметров

Фишка: все это доступно локально — без отправки данных в облако! 🔒

Установка элементарная: через snap, flatpak или компиляцию с GitHub.

🌐 Источник: https://github.com/DevToys-app/DevToys

📩 Завтра:
Включи 🔔 чтобы не пропустить!
____________________

Дополнительный материал:
🧠 - Что означает $@ в shell скрипте?
🧠 - Защити свой сервер: Настройка безопасности SSH на Linux
🧠 - Избавься от лишнего: Как установить только нужные пакеты в Linux

#Linux_Mastery #Linux #DevTools #Productivity #Sysadmin #OpenSource
👍8
🚀 Как за 1 минуту определить, чем управляется сеть в Linux?

Привет, мастер серверов! 👋
Сегодня разберём, как быстро понять, что именно рулит сетью на вашем Linux-сервере — без лишней магии и догадок!

🔍 Пошаговый чек:

1. Проверка старой школыifupdown:
   systemctl status networking.service


2. Есть ли NetworkManager?
   systemctl status NetworkManager


3. Активен ли systemd-networkd?
   systemctl status systemd-networkd


4. Ищем Netplan (обычно для облаков):
   ls /etc/netplan/


5. Быстрая проверка активных сетевых демонов:
   networkctl status
nmcli general status
netplan status


Если активно /etc/network/interfaces + networking.service — значит у вас классическая схема через ifupdown.
Если активен NetworkManager — скорее всего десктоп или ноутбук.
Если активен systemd-networkd — модульная минималистичная конфигурация.
Если есть /etc/netplan/ — используется промежуточный слой Netplan.

🌐 Источник: https://unix.stackexchange.com/questions/785544/how-to-know-if-the-network-is-configured-through-etc-network-interfaces-networ

📩 Завтра: Почему set -e в bash может сломать тебе всё!
Включи 🔔 чтобы не пропустить!
____________________

Дополнительный материал:
🧠 - 10 самых частых ошибок в Linux и как быстро их исправить
🧠 - Reverse Shell на практике: подключаемся к скрытому серверу за 1 минуту!
🧠 - Урок 4 — Почему case круче вложенных if в Bash

#stackoverflow #Linux #Network #SysAdmin #Networking #Debian #NetworkManager #Systemd #Netplan
🔥9👍8
🔥 Быстрое обнаружение проблем в сети через массовый пинг

Привет, мастера мониторинга! 📡

Когда у тебя десятки серверов или рабочих станций, проверять их по одному — это адская рутина.
К счастью, в Linux есть удобные способы пинговать сразу несколько хостов параллельно!

⚙️ Самый простой способ: использовать fping

Установка:
sudo apt install fping


Массовый пинг по списку IP или доменов:
fping -a -f hosts.txt

Где hosts.txt — файл со списком адресов (один хост на строку).

🛠️ Альтернативный способ через bash-скрипт

Минималистичный скрипт:

!/bin/bash
for ip in $(cat hosts.txt)
do
ping -c 1 $ip > /dev/null && echo "$ip is UP" || echo "$ip is DOWN"
done

Можно усложнить и добавить параллельность через & и wait, чтобы ускорить процесс. 🚀

🧠 Плюсик в карму:
- fping поддерживает опцию ограничения количества параллельных пингов (-C).
- Легко интегрируется в cron-джобы для ежедневных проверок.

🌐 Источник: https://spy-soft.net/ping-multiple-hosts-linux/

📩 Завтра: Полная шпаргалка по Bash: команды, синтаксис и фишки!
Включи 🔔 чтобы не пропустить!
____________________

Дополнительный материал:
🧠 - Команды в Linux, которые используются в повседневной работе
🧠 - Бесплатный курс по Linux c нуля до DevOps
🧠 - Работа с файлами и директориями

#Linux_Mastery #linux #networking #sysadmin #monitoring
👍17🔥2
🚀 11 SSH-команд, после которых ты удалишь половину скриптов

Привет, покоритель удалённых серверов! 👋

Устал писать длинные bash-скрипты для простых SSH-задач? Подготовил для тебя команды, которые заменят кучу твоих велосипедов одной строкой.
____________________

Дополнительный материал:
🧠 - Сетевые основы: Удаленное управление
🧠 - Сетевые основы: Безопасность
🧠 - Основы программирования: Основы языка программирования

#инфографика #SSH #Linux #DevOps #Sysadmin #Security #Automation
👍16
🔍 Потерял важный файл? 13 способов его найти прямо сейчас

Привет, хранитель терабайтов! 👋
Знакомо чувство, когда нужный конфиг где-то затерялся в дебрях файловой системы? Держи арсенал команд, которые найдут иголку в стоге сена быстрее, чем ты заваришь кофе.
________________

Дополнительный материал:
🧠 - Основы программирования: Создание скриптов и автоматизация задач
🧠 - Виртуализация и контейнеризация: Виртуализация с помощью VirtualBox
🧠 - Системы контроля версий: Работа с репозиториями и ветвлением

#инфографика #Linux #Find #Search #Sysadmin #DevOps #CommandLine
👍9🔥3👀1
🚨 Упала сеть? 17 команд для мгновенной диагностики

Привет, спасатель сетевых катастроф! 👋
Интернет отвалился? VPN не коннектится? Пользователи паникуют? Держи команды, которые найдут корень проблемы быстрее, чем ты успеешь налить кофе.
________________

Дополнительный материал:
🧠 - Инфраструктура как код: Введение в инструменты автоматизации: Ansible
🧠 - Инфраструктура как код: Введение в инструменты автоматизации: Chef
🧠 - Инфраструктура как код: Введение в инструменты автоматизации: Puppet

#инфографика@LinuxSkill #Network@LinuxSkill #Linux@LinuxSkill #Sysadmin@LinuxSkill #Networking@LinuxSkill #Troubleshooting@LinuxSkill #DevOps@LinuxSkill
👍7
🚨 Простая проверка диска с алертом — настроишь за 1 минуту

👋 Привет, линуксоид!

Бывает, диск на проде забивается — и ты узнаёшь об этом, когда уже всё лежит.
Вот скрипт, который автоматически проверит заполнение и предупредит по почте, если всё плохо.

📌 Сохрани себе:

# Set the maximum allowed disk space usage percentage
MAX=90

# Set the email address to receive alerts
EMAIL=user@example.com

# Set the partition to monitor (change accordingly, e.g., /dev/sda1)
PARTITION=/dev/sda1

# Get the current disk usage percentage and related information
USAGE_INFO=$(df -h ""$PARTITION"" | awk 'NR==2 {print $5, $1, $2, $3, $4}' | tr '\n' ' ')
USAGE=$(echo ""$USAGE_INFO"" | awk '{print int($1)}') # Remove the percentage sign

if [ ""$USAGE"" -gt ""$MAX"" ]; then
# Send an email alert with detailed disk usage information
echo -e ""Warning: Disk space usage on $PARTITION is $USAGE%.\n\nDisk Usage Information:\n$USAGE_INFO"" | \
mail -s ""Disk Space Alert on $HOSTNAME"" ""$EMAIL""
fi

____________________

Дополнительный материал:
🧠 - Безопасность и сетевые аспекты: Защита сети и протоколов
🧠 - Сложные сценарии и решения: Работа с крупными и сложными проектами
🧠 - Сложные сценарии и решения: Решение проблем и отладка системы

#инфографика@LinuxSkill #Linux@LinuxSkill #Disk@LinuxSkill #Monitoring@LinuxSkill #SysAdmin@LinuxSkill #Bash@LinuxSkill #CLI@LinuxSkill
👍13🔥2
🚨 НИКОГДА не редактируй bash-скрипт во время его выполнения!

Привет, повелитель терминала! 👋

Знаешь, что может превратить безобидный скрипт в оружие массового уничтожения данных? Всего одно неосторожное редактирование.

💣 Смотри, какая бомба:

#!/bin/bash
sleep 30
#rm -rf --no-preserve-root /
echo "Time's up!"


Выглядит безопасно? Команда rm закомментирована, скрипт просто ждёт 30 секунд. Но стоит тебе отредактировать его во время выполнения...

Что происходит:
1. Запускаешь скрипт → bash начинает читать его частями
2. Меняешь sleep 30 на sleep 3 в редакторе
3. Сохраняешь файл → смещение байтов сбивается
4. BOOM! → bash читает rm -rf / вместо комментария

🔍 Доказательство через strace:

# Открытие скрипта
openat(AT_FDCWD, "delay.sh", O_RDONLY) = 3

# Парсинг первой строчки (до 80 символов)
read(3, "#!/bin/bash\nsleep 30\n#echo \"Don'"..., 80) = 64

# Возврат к началу
lseek(3, 0, SEEK_SET) = 0

# Переключение на на файловый дескриптор 255
dup2(3, 255) = 255

# Чтение 64-байтового куска файла, чтобы получить команду
read(255, "#!/bin/bash\nsleep 30\n#echo \"Don'"..., 64) = 64

# Поместить курсор обратно в конец команды, которую мы собираемся выполнить
# Offset 21 is the `#`
lseek(255, -43, SEEK_CUR) = 21

# Приостановка выполнения, уход в sleep
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 2072

# До возвращения wait4 файл редактируется с `30` на `3`

# Чтение 64-байтового куска файла, чтобы получить следующую команду
# В этом демо я заменил опасную команду на echo
read(255, "echo \"Don't execute me\"\necho \"Ti"..., 64) = 42

# Bash решает выполнить оба echo одновременно без нового чтения
# Очевидно, что-то идёт не так
write(1, "Don't execute me\n", 17) = 17
write(1, "Time's up!\n", 11) = 11

# Чтение следующего фрагмента и обнаружение конца файла
read(255, "", 64) = 0


🛡️ Как защититься:
Копируй скрипт перед редактированием
Останови выполнение перед правками
Используй блокировки файлов
Тестируй на копиях важных скриптов

💡 Вывод
Bash читает скрипт блоками по 64 байта и отслеживает позицию. Удаление символов сдвигает содержимое, но не позицию чтения!

🌐 Источник: https://habr.com/ru/articles/500832/
____________________

Дополнительный материал:
🧠 - GRUB Files Unveiled: Путеводитель по конфигурационным файлам
🧠 - Как настроить автоматическое включение вашего компьютера с помощью RTC
🧠 - GRUB Rescue Ops: Как оживить систему, замершую на grub>

#Linux_Mastery #Linux #Bash #Security #DevOps #SysAdmin #ScriptSafety
👍21
📦 100GB логов → 0: безопасная очистка одной командой

Эй, борец с переполненными дисками!

Знакомо? Zabbix кричит "disk full", а в /var/log лежит 100GB мусора. Держи улучшенный скрипт очистки, который не сломает ротацию логов.

🔧 cleanup:
#!/bin/bash
# cleanup v2: Безопасная очистка логов

# Проверка root-прав
if [[ $EUID -ne 0 ]]; then
echo "Ошибка: запускай от root!"
exit 1
fi

LOG_DIR=/var/log

# Переходим в директорию логов
cd $LOG_DIR || exit 1

# Очищаем, но не удаляем файлы
cat /dev/null > messages
cat /dev/null > wtmp

echo "Логи очищены."
exit 0


💡 Почему именно так:

cat /dev/null > вместо rm — сохраняет файл и права доступа. Сервисы продолжат писать логи без перезапуска.

Проверка root — защита от случайного запуска.

exit 0 — явный код возврата для автоматизации.

🚀 Автоматизируй:
# Добавь в cron для еженедельной очистки
0 3 * * 0 /root/cleanup.sh


Теперь диск не переполнится внезапно, а сервисы продолжат работать!
____________________

Дополнительный материал:
🧠 - LSOF: Многофункциональный инструмент для системных администраторов Linux
🧠 - User Private Group: Революционный подход Red Hat к безопасности пользователей в Linux
🧠 - Настройка sudo для аутентификации без пароля root: Пошаговое руководство

#bash_guide #bash #logs #cleanup #Linux #sysadmin #script
🔥9👍2
🎯 8-я строка из 10000: достаём мгновенно

Привет, хирург логов!

Нужна конкретная строка из огромного файла? Забудь про медленный grep. Комбо head + tail работает как скальпель!

🔧 Базовый мониторинг логов:

#!/bin/bash
filename=sys.log

# Создаём/очищаем файл
cat /dev/null > $filename
# Альтернативы: : > $filename или > $filename

# Снимок последних строк системного журнала
tail /var/log/messages > $filename
echo "$filename содержит 10 последних строк системного журнала."


💡 Извлекаем конкретную строку:

# 8-я строка из файла
head -n 8 database.txt | tail -n 1

# 100-я строка? Легко!
head -n 100 huge.log | tail -n 1


🚀 Продвинутый трюк — блок в переменную:

# Сохраняем строки 50-55 в переменную
var=$(head -n 55 $filename | tail -n 5)

# Формула:
# head -n $m | tail -n $n
# m = до какой строки читать
# n = сколько строк от конца взять


📝 Важно:

# Старый синтаксис (deprecated)
tail -10 file.txt

# Правильный синтаксис
tail -n 10 file.txt


🛡️ Права доступа:

# Для общего доступа к логам
chmod 644 /var/log/messages


Теперь ты можешь выдёргивать любую строку из любого лога мгновенно!
________________

Дополнительный материал:
🧠 - Понимание UID и GID в Linux: Не просто числа, а ключи к безопасности
🧠 - Установка нового пароля root в Linux: Пошаговое руководство для системных администраторов
🧠 - Мастерство управления пользователями в Linux: Ваше полное руководство

#bash_guide #bash #logs #tail #head #Linux #sysadmin
👍9
🔥 Читаемые логи одной командой: секрет в xargs

Привет, укротитель логов!

Устал от нечитаемого месива в /var/log/messages? Покажу трюк с xargs, который превратит системные логи в аккуратный отчёт.

🔧 Скрипт мониторинга:
#!/bin/bash
# logfile.sh - создаём читаемый отчёт из системных логов

LINES=5

# Заголовок с датой и системой
( date; uname -a ) >>logfile
echo "----------------------------------------" >>logfile

# Магия: tail + xargs + fmt
tail -n $LINES /var/log/messages | xargs | fmt -s >>logfile

echo >>logfile
exit 0


💡 Как это работает:
- tail -n 5 — берём последние 5 строк
- xargs — объединяет строки в одну
- fmt -s — форматирует текст для читаемости

🚨 Защита от кавычек:
# Если в логах есть непарные кавычки
tail -n $LINES /var/log/messages | tr -d "\"'" | xargs | fmt -s >>logfile


🚀 Автоматический мониторинг:
# Каждые 20 минут
watch -n 1200 ./logfile.sh

# Или через cron
*/20 * * * * /path/to/logfile.sh


📝 Не забудь права:
# Чтобы скрипт работал не только от root
chmod 644 /var/log/messages


Теперь вместо каши получишь структурированный отчёт!
____________________

Дополнительный материал:
🧠 - Усиление безопасности веб-серверов Linux с помощью самоподписанных сертификатов
🧠 - Секретные техники от Linux Skill: Откройте для себя мир возможностей!
🧠 - Взгляд в прошлое: Историческая роль файла /etc/passwd в Linux

#bash_guide #bash_guide #bash #logs #xargs #monitoring #Linux #sysadmin
👍3