Linux Skill - Освой Linux c нуля до DevOps – Telegram
Linux Skill - Освой Linux c нуля до DevOps
11.3K subscribers
68 photos
103 videos
500 links
Освой Linux c нуля до DevOps
Подробный гайд по Linux и море других уроков для системных администраторов

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

РКН https://vk.cc/cMUwm4
Download Telegram
🛠️ Редактируй JSON прямо в pipe: секретные инструменты

Эй, мастер автоматизации! 👋
Надоело копировать JSON в онлайн-форматтеры? Вот 6 инструментов, которые превратят работу с JSON в удовольствие прямо в терминале.
________________

Дополнительный материал:
🧠 - Инфраструктура как код: Создание и управление конфигурациями серверов
🧠 - CI/CD и автоматическая сборка: Интеграция непрерывной поставки и непрерывного развертывания
🧠 - CI/CD и автоматическая сборка: Создание пайплайнов сборки и развертывания

#инфографика@LinuxSkill #JSON@LinuxSkill #DevOps@LinuxSkill #Linux@LinuxSkill #API@LinuxSkill #Automation@LinuxSkill #CommandLine@LinuxSkill
👍5🔥1
Вопрос №44 из теста Linux Essentials Certification: Which command would you use to get comprehensive documentation about any command in Linux? | Какую команду вы бы использовали для получения подробной документации о любой команде в Linux?
Anonymous Quiz
15%
help command
1%
get command
1%
locate command
81%
man command
3%
echo command
👍4👎4
Вопрос №45 из теста Linux Essentials Certification: While deleting all files beginning with the letter a there was still the file Access.txt left. Assuming that it had the correct ownership, why was it not deleted? | При удалении всех файлов, начинающихся
Anonymous Quiz
19%
Файл Access.txt вероятно был открыт другим приложением
3%
Файл Access.txt был скрытым
19%
rm должна была быть вызвана с опцией -R для удаления всех файлов
2%
Файлы с расширениями требуют особого обращения
58%
Имена файлов в Linux чувствительны к регистру
👍8👎3🔥1👀1
🚨 Простая проверка диска с алертом — настроишь за 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
🚀 Как одна команда echo ломает пайпы в Linux

Привет, повелитель терминала! Задумывался ли ты, почему простая команда /bin/echo может сломать пайп, а встроенная echo в bash — нет? Давай разберёмся 👆

🌐 Источник: unix.stackexchange.com

____________________

Дополнительный материал:
🧠 - Станьте мастером Linux с нашим Бесплатным курсом от Нуля до DevOps
🧠 - Загрузочный диспетчер GRUB: Путешествие в глубины системы
🧠 - Персонализируй свой GRUB: Искусство загрузки с удовольствием

#инфографика@LinuxSkill #Linux@LinuxSkill #Bash@LinuxSkill #Echo@LinuxSkill #SIGPIPE@LinuxSkill #OpenSource@LinuxSkill
👍5
🗂️ Как копировать файлы и папки с исключениями: продвинутые трюки с cp

Привет, повелитель терминала!
Иногда нужно скопировать содержимое папки, но исключить определённые файлы или папки. Классический cp это напрямую не поддерживает, но есть несколько хитростей, которые помогут справиться. 👆
________________

Дополнительный материал:
🧠 - Великая Охота за /boot: Приключение GRUB в мире разделов!
🧠 - Загрузчик GRUB: Конфигурационная симфония в нескольких актах!
🧠 - Пробуждение через Wi-Fi: Волшебство WoWLAN

#инфографика@LinuxSkill #Linux@LinuxSkill #cp@LinuxSkill
👍10🔥3👀1
📁 Перестань терять файлы! Система каталогов за 5 минут

Эй, архитектор данных!
Устал искать файлы по всему серверу? Покажу, как создать чёткую структуру каталогов и забыть про хаос навсегда. 👆
____________________

Дополнительный материал:
🧠 - Мониторинг и логирование: Установка и настройка системы мониторинга (примеры: Nagios, Prometheus)
🧠 - Мониторинг и логирование: Логирование событий и анализ логов
🧠 - Облачные технологии и DevOps: Введение в облака. Примеры: AWS

#инфографика@LinuxSkill #Linux@LinuxSkill #mkdir@LinuxSkill
👍4🔥3
Устал от sudo? Одна строчка решит проблему навсегда

Привет, повелитель root-прав!
Бесит, когда sudo каждые 15 минут требует пароль заново? Особенно когда работаешь с длинными скриптами или деплоишь проекты. Покажу, как настроить кэширование один раз и забыть про эту боль. 👆
____________________

Дополнительный материал:
🧠 - Облачные технологии и DevOps: Введение в облака. Примеры: Azure
🧠 - Облачные технологии и DevOps: Конфигурация и автоматизация облачных ресурсов
🧠 - Безопасность и сетевые аспекты: Основы безопасности Linux-сервера

#инфографика@LinuxSkill #Linux@LinuxSkill
👍15👎3
Вопрос №46 из теста Linux Essentials Certification: Which command displays the list of groups to which a user belongs? / Какая команда отображает список групп, к которым принадлежит пользователь?
Anonymous Quiz
43%
lsgroup
20%
whoami
7%
who
31%
id
👍9👀1
tail -n 20 test.txt
👀6🔥5
tail -n 20 test.txt

Дублирую, команду. Для вопроса
🛡️ Защита системы: как разрешить запуск бинарника только службе systemd

Привет! Сегодня поговорим о том, как надёжно ограничить запуск подозрительных или потенциально небезопасных программ в Linux.

Если ты хочешь, чтобы приложение запускалось только через systemd, без возможности запуска вручную — вот несколько решений:

🔹 SELinux
Создай отдельный SELinux-домен для бинарника. Только init_t сможет инициировать его запуск:
allow init_t myapp_t:process { transition };
type_transition init_t myapp_exec_t:process myapp_t;

Не забудь правильно промаркировать файл через chcon!

🔹 Изменение прав доступа
Можно убрать права на исполнение:
chmod 644 /path/to/binary

А запускать его через:
/lib64/ld-linux-x86-64.so.2 /path/to/binary

Но с потерей некоторых capabilities — учитывай это.

🔹 Контейнеризация через Podman
Запускай приложение в контейнере, ограничивая его окружение:
podman run --rm -p 80:80 your_container_image

Или с генерацией сервис-файлов через podman generate systemd.

Так ты минимизируешь риски и защищаешь систему от случайного или несанкционированного запуска.

🌐 Источник: unix.stackexchange.com

________________

Дополнительный материал:
🧠 - GRUB: Командный мостик космического корабля вашего ПК
🧠 - Утренний будильник для вашего ПК: Включение по расписанию с UEFI
🧠 - GRUB Menu Reveal: Как пригласить скрытое меню на ужин

#stackoverflow #Linux #Systemd #SELinux #Безопасность #Fedora #Администрирование #Bash #DevOps
👍9👎1
🚨 НИКОГДА не редактируй 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
👍24