en
Feedback
BashMaster

BashMaster

Open in Telegram

Удобные консольные наработки на каждый день для разработчиков, девопсов и сисадминов. Реклама: @Kone4noVasya Канал на бирже: https://telega.in/c/bash_help

Show more
8 730
Subscribers
-224 hours
+27 days
+21030 days
Posts Archive
⚙️ Linux. Выключение и перезагрузка любым пользователем ✔️Проблема: перезагружать или выключать сервер может только root поль
⚙️ Linux. Выключение и перезагрузка любым пользователем ✔️Проблема: перезагружать или выключать сервер может только root пользователь. Чтобы войти это ограничение можно дать возможность пользователям устанавливать флаг на эти действия, который раз в минуту будет считываться root по cron заданию. Далее описана небольшая конструкция, которая позволяет любому пользователю перезагружать или выключать систему. Её можно модифицировать и ограничить определёнными пользователями, но сама логика будет прежней. ➡️ Чтобы всё заработало crontab -e от лица root пользователя ставим в конец:
@reboot /usr/bin/bash /root/sys_action.sh
Этот скрипт будет стартовать с системой, ежеминутно проверяя наличие флага на перезагрузку или выключение от пользователей. В сам файл /root/sys_action.sh пишем:
# очищаем запланированные операции
echo '' > /tmp/sys_action

# даём доступ всем пользователям
chmod 766 /tmp/sys_action

# бесконечный цикл до тех пор, пока в файле /tmp/sys_action не появится команда, которая считывается раз в 60 секунд
while true
do
    if [ -f /tmp/sys_action ]; then
        if [[ "$(cat /tmp/sys_action)" == 'reboot' ]]; then
            echo 'Перезагрузка сервера';
            systemctl reboot;
        fi
        if [[ "$(cat /tmp/sys_action)" == 'poweroff' ]]; then
            echo 'Выключение сервера';
            systemctl poweroff;
        fi
    fi
    sleep 60
done
Теперь любой пользователь может вызывать перезагрузку, если выполнит команду:
echo 'poweroff' > /tmp/sys_action
➡️ Можно вынести эту команду в алиас, в файл .bashrc в домашней папке пользователя:
alias poweroff='echo "poweroff" > /tmp/sys_action'
Тогда можно будет просто набирать poweroff в консоли и сервер выключится максимум через 60 секунд. 🖼️ Ссылка на источник 🔨 bash_help

У топовых айтишников есть секрет, они работают не 8 часов, а головой! Понимают, что без английского в айти делать нечего. Поэ
У топовых айтишников есть секрет, они работают не 8 часов, а головой! Понимают, что без английского в айти делать нечего. Поэтому в начале карьеры изучают технический английский, а потом смело прибавляют +40% к рыночной зарплате. Знают где в телеграме брать современные идеи и материалы для работы. Например, для web-разработчиков – это Сайтодел. Становись Senior-разработчиком. Всё просто, два клика:Английский для программистовСайтодел 🎁 Бесплатно: Поиск разработчика для сайта и первый созвон по обучению английскому. Не упускай такую возможность!

⚙️ Как переподключить все USB устройства ✔️Иногда на компьютерах происходит беда с USB устройствами. К примеру, во время загр
⚙️ Как переподключить все USB устройства ✔️Иногда на компьютерах происходит беда с USB устройствами. К примеру, во время загрузки операционной системы они не могут начать работать, хотя и "видны" в системе. Лечится это просто - достаточно выдернуть и воткнуть заново проблемное устройство. Но есть и другой способ. ➡️ Представьте, что системный блок компьютера находится в недоступном месте. И вытащить устройство из USB порта невозможно. Тогда чтобы не перезагружать систему можно попробовать инициировать его заново. Для выполнения этой задачи необходимо создать исполняемый bash файл. И в нём оставить такой код, который будет переподключать все USB устройства:
#!/bin/bash

for i in /sys/bus/pci/drivers/[uoex]hci_hcd/*:*; do

[ -e "$i" ] || continue
echo "${i##*/}" > "${i%/*}/unbind"
echo "${i##*/}" > "${i%/*}/bind"

done
Исполнять этот файл необходимо от имени администратора (root). Обратите внимание, что клавиатура и мышка - это тоже USB устройства. Поэтому в процессе выполнения скрипта останетесь без них. Будьте готовы. 🖼️ Ссылка на источник 🔨 bash_help

Что нового в маршрутизаторах ESR. Обновление 1.13 ЕССМ 🗓 05 июля 2024 🕒 14:00 по МСК Часть 1. Что нового в маршрутизаторах
Что нового в маршрутизаторах ESR. Обновление 1.13 ЕССМ 🗓 05 июля 2024 🕒 14:00 по МСК Часть 1. Что нового в маршрутизаторах ESR - Авторизация команд через TACACS - Большие обновления в реализации протокола OSPF - Поддержка регулярных выражений route map для AS PATH - FQDN в качестве адреса NTP сервера Часть 2. Обновление 1.13 ЕССМ - Поддержка SYSLOG - Журналирование действий пользователя - Эмулятор терминала - Определение переменных шаблона 👉Регистрация #eltex #eltexcm #webinar #esr #eccm  @eltexcm Реклама. ООО "ЭЛТЕКС КОММУНИКАЦИИ". ИНН 7714966730.

⚙️ Автоматическая блокировка экрана при отдалении от компьютера мобильного телефона ✔️Ниже представленный скрипт позволяет ор
⚙️ Автоматическая блокировка экрана при отдалении от компьютера мобильного телефона ✔️Ниже представленный скрипт позволяет организовать автоматический вызов блокировщика экрана при отдалении от компьютера мобильного телефона. В качестве фактора вызова блокировщика используется пропадание указанного устройства Bluetooth из области видимости. Для определения MAC-адреса и имени устройства, следует использовать утилиту hcitool scan. Код скрипта:
#!/bin/bash

DEVICE=MAC-адрес Bluetooth-устройства
DEV_NAME="Имя устройства"
INTERVAL=5 # in seconds

# The xscreensaver PID
XSS_PID=

# Start xscreensaver if it's not already running
pgrep xscreensaver
if [ $? -eq 1 ]; then
    echo "Starting xscreensaver..."
    xscreensaver &
fi

# Assumes you've already paired and trusted the device
while [ 1 ]; do
    opt=$(hcitool name $DEVICE)
    if [ "$opt" = "$DEV_NAME" ]; then
        echo "Device '$opt' found"
        if [ -n "$XSS_PID" ]; then
            echo "Killing $XSS_PID"
            kill $XSS_PID
            XSS_PID=
        fi
    else
        echo "Can't find device $DEVICE ($DEV_NAME); locking!"
        xscreensaver-command -lock
        XSS_PID=$!
    fi
    sleep $INTERVAL
done
🔨 bash_help

⚙️ Пять скриптов на Bash, которые могут использоваться для автоматизации рутинных задач в кибербезопасности ➡️ Сканирование п
⚙️ Пять скриптов на Bash, которые могут использоваться для автоматизации рутинных задач в кибербезопасности ➡️ Сканирование портов с использованием nmap
#!/bin/bash
# Сканирование портов конкретного хоста
echo "Введите адрес хоста для сканирования:"
read host
echo "Сканирование портов для хоста $host..."
nmap $host
➡️ Проверка статуса веб-сервера
#!/bin/bash
# Проверка статуса веб-сервера по HTTP статус-коду
url="http://example.com" # Замените example.com на реальный URL
status_code=$(curl -o /dev/null -s -w "%{http_code}\n" $url)
if [ $status_code -eq 200 ]; then
echo "Веб-сервер $url работает нормально (HTTP статус 200)"
else
echo "Веб-сервер $url имеет проблемы (HTTP статус $status_code)"
fi
➡️ Поиск изменений в файлах (интегритет)
#!/bin/bash
# Проверка интегритета файлов в заданной директории
directory="/var/www/html" # Замените на директорию, которую нужно отслеживать
hash_file="hashes.txt"
# Генерируем хэши файлов и сохраняем их для последующего сравнения
find $directory -type f -exec sha256sum "{}" + > $hash_file
# Функция, которая проверяет хэши
check_hashes() {
sha256sum -c $hash_file
}
# Вызываем функцию
check_hashes
➡️ Автоматическое создание бэкапов логов
#!/bin/bash
# Автоматическое создание бэкапов логов
log_path="/var/log/apache2" # Замените на путь к вашей папке с логами
backup_path="/backup/apache2"
# Создаем каталог для бэкапа, если он не существует
mkdir -p $backup_path
# Архивируем и перемещаем логи
tar -czvf $backup_path/log-$(date +%F).tar.gz $log_path
➡️ Мониторинг и оповещение об активности в логах
#!/bin/bash
# Мониторинг и оповещение о подозрительной активности в логах
log_file="/var/log/auth.log" # Замените на путь к вашему лог-файлу
pattern="Failed password" # Замените на паттерн, который вы хотите отслеживать
# Чтение новых строк из лог-файла
tail -fn0 $log_file | \
while read line ; do
echo "$line" | grep "$pattern" > /dev/null
if [ $? = 0 ]; then
# Отправляем уведомление
echo "Подозрительная активность: $line"
# Здесь может быть команда для отправки уведомления, например, через mailx
fi
done
✔️Эти скрипты являются простыми примерами, и предназначены для демонстрации типов задач, которые можно автоматизировать с помощью Bash. В реальных сценариях, Вам потребуются более сложные проверки, логирование, и, возможно интеграция с другими системами и инструментами мониторинга. Кроме того, всегда убедитесь, что Ваши скрипты тестируются в безопасной среде перед их развертыванием в производственной среде. 🖼️ Ссылка на источник 🔨 bash_help

🧐 Увлекательный тест по сетевому инженеру💯 Ответьте на 22 вопроса и проверьте, насколько вы готовы к обучению на курсе - Ne
🧐 Увлекательный тест по сетевому инженеру💯 Ответьте на 22 вопроса и проверьте, насколько вы готовы к обучению на курсе - Network engineer. 📚Курс ориентирован на специалистов и системных администраторов, которые:  - стремятся к более масштабным и крупным проектам; - хотят получить более глубокое представление о своей работе и брать более сложные задачи; - желают добавить к своим компетенциям навыки работы с сетями. Время прохождения теста ограниченно 30 минут. ПРОЙТИ ТЕСТ: https://clck.ru/3BX3Um  Пройдёте тест и получите несколько уроков курса в подарок, а также спец. цену на курс! 😋 Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

⚙️ Контент автоматизации безопасности в SCAP, Bash, Ansible и других форматах ✔️Целью этого проекта является создание контент
⚙️ Контент автоматизации безопасности в SCAP, Bash, Ansible и других форматах ✔️Целью этого проекта является создание контента политики безопасности для различных платформ - Red Hat Enterprise Linux, Fedora, Ubuntu, Debian, SUSE Linux Enterprise Server (SLES),... - а также продуктов - Firefox, Chromium, ... ➡️ "Мы стремимся максимально упростить создание нового и поддержку существующего контента по безопасности во всех широко используемых форматах." 🐙 Перейти на Github 🔨 bash_help

Разбираем как решать задачи на LeetCode ✅ Примеры решений ✅ Пояснения Выбери своё направление: 1. JavaScript 2. Python 3. Jav
Разбираем как решать задачи на LeetCode ✅ Примеры решений ✅ Пояснения Выбери своё направление: 1. JavaScript 2. Python 3. Java 4. C# 5. C/C++ 6. Golang 7. PHP 8. Kotlin 9. Swift

⚙️ LinEnum ✔️Данный скрипт представляет собой экспресс-тест по таким позициям, как Kernel and distribution release details, S
⚙️ LinEnum ✔️Данный скрипт представляет собой экспресс-тест по таким позициям, как Kernel and distribution release details, System Information, Privileged access, Jobs/Tasks, Services, Default/Weak Credentials, Searches, Platform/software specific tests. Скрипт LinEnum успешно протестирован на различных версиях дистрибутивов Ubuntu, Debian, Red Hat и CentOS. Программа собирает информацию и делает проверки возможных векторов эскалации привилегий. ➡️ Установка LinEnum в систему:
$ git clone https://github.com/rebootuser/LinEnum
$ cd LinEnum/
➡️ Простой запуск с вызовом списка ключей:
$ ./LinEnum.sh
➡️ Пример запуска LinEnum с опциями (ключами):
$ ./LinEnum.sh -s -k keyword -r report -e /tmp/ -t
▶️Описание ключей LinEnum: -k — ввести ключевое слово -e — указать директорию для экспорта отчета -t — включить в отчет «длинные» тесты (дополнительные тесты) -s — произвести проверку эскалации текущей учетки sudo perms -r — задать имя итогового отчета -h — вызвать встроенную справку по программе -k — опциональный переключатель, с которым можно указать ключевое слово для поиска файлов по нескольким расширениям ▶️Запуск без опций означает ограниченное сканирование без файла вывода. 🐙 Перейти на Github 🔨 bash_help

🔆 Приглашаем вас на вебинар "Знакомство с MySQL InnoDB Cluster"! 🚀 🧠 Мы разберём все отличия кластерного решения InnoDB Cl
🔆 Приглашаем вас на вебинар "Знакомство с MySQL InnoDB Cluster"! 🚀   🧠 Мы разберём все отличия кластерного решения InnoDB Cluster от обычной репликации. Вы узнаете, как настроить и запустить рабочий кластер, получите полное представление о возможностях и ограничениях этого решения. 👍 Наш вебинар станет находкой для системных администраторов Linux, администраторов баз данных (DBA) и всех, кто хочет познакомиться с InnoDB Cluster. Вебинар откроет новые горизонты в администрировании баз данных, позволив понять основные различия архитектуры кластера и традиционной репликации. 🏆 Спикер Николай Лавлинский — технический директор в Метод Лаб, PhD Economic Science, опытный руководитель разработки и преподаватель. ⏰ Занятие пройдёт 04 июля 2024 года в 19:00 по мск в рамках курса «Инфраструктура высоконагруженных систем». Доступна рассрочка на обучение! 👉 Зарегистрируйтесь для участия https://otus.pw/Ayfv/

⚙️ Несколько полезных команд в Linux dhclient — утилита для работы с DHCP-протоколом (получение динамического IP-адреса, наст
⚙️ Несколько полезных команд в Linux dhclient — утилита для работы с DHCP-протоколом (получение динамического IP-адреса, настройка сетевых интерфейсов и пр.). dmidecode — позволяет получить информацию об аппаратных компонентах системы, а также другую полезную информацию: характеристики процессора, оперативной памяти (DIMM), детали BIOS и т.д. eject — позволяет извлекать съемный носитель (обычно CD-ROM, дискету, ленту, JAZ- или ZIP-диск) с помощью программного обеспечения. expand — позволяет конвертировать табуляции в пробелы в файле, а когда файл не указан, то данные считываются со стандартного ввода. expr — вычисляет заданное выражение и отображает результат. fc — используется для перечисления, редактирования или повторного выполнения команд, ранее введенных в интерактивную оболочку. fc-cache — сканирует каталоги шрифтов (и создает их кэш), которые используют fontconfig для обработки шрифтов. 🔨 bash_help

🔥Тесты для подготовки к собеседованию🔥 Выбери своё направление: 1. Frontend 2. Python 3. Java 4. Тестировщик QA 5. Data Sci
🔥Тесты для подготовки к собеседованию🔥 Выбери своё направление: 1. Frontend 2. Python 3. Java 4. Тестировщик QA 5. Data Science 6. DevOps 7. C# 8. С/C++ 9. Golang 10. PHP 11. Kotlin 12. Swift

⚙️ Регулярные выражения Bash: полный гайд ✔️Одним из принципов Unix-систем является широкое использование текстовых данных: к
⚙️ Регулярные выражения Bash: полный гайд ✔️Одним из принципов Unix-систем является широкое использование текстовых данных: конфигурационные файлы, входные и выходные данные программ в *nix часто организованы в виде обычного текста. Регулярные выражения — это мощный инструмент для манипуляции текстовой информацией. В этом гайде разберем тонкости работы с регулярными выражениями Bash, которые помогут вам реализовать весь потенциал командной строки и скриптов в Linux. ➡️ Регулярные выражения — это специальным образом записанные строки, используемые для поиска символьных шаблонов в тексте. Чем-то они похожи на групповые символы в оболочке, но их возможности куда шире. Многие утилиты для работы с текстом в Linux и языки программирования включают в себя механизм регулярных выражений. Здесь возникают проблемы: разные программы и языки оперируют различными диалектами регулярных выражений. В этой статье рассмотрим стандарт POSIX, которому соответствуют большинство утилит в Linux 🖼️ Ссылка на гайд 🔨 bash_help

📚 Здесь собраны все вопросы, которые могут спросить на собеседовании. Теперь можно легко получить оффер, подготовившись к са
📚 Здесь собраны все вопросы, которые могут спросить на собеседовании. Теперь можно легко получить оффер, подготовившись к самым популярным вопросам. Просто выбери своё направление: 1. Frontend / JavaScript 2. Python 3. Java 4. Тестировщик QA 5. Data Science 6. DevOps 7. C# 8. С/C++ 9. Golang 10. PHP 11. Kotlin 12. Swift

⚙️ PhotoshopCClinux – установщик Photoshop CC v19 для Gnu/Linux ✔️Этот bash-скрипт поможет вам установить Photoshop CC версии
⚙️ PhotoshopCClinux – установщик Photoshop CC v19 для Gnu/Linux ✔️Этот bash-скрипт поможет вам установить Photoshop CC версии 19 на вашу Linux машину. Также он использует wine и настраивает некоторые необходимые компоненты для наилучшей производительности. 🐙 Перейти на Github 🔨 bash_help

❓ Как подготовить приложение к запуску в Kubernetes? Привет! Мы — команда Слёрма, учебный центр для айти-специалистов middle+
❓ Как подготовить приложение к запуску в Kubernetes? Привет! Мы — команда Слёрма, учебный центр для айти-специалистов middle+ и фанаты k8s 😎  И 27 июня в 18:00 мы приглашаем вас на вебинар «Адаптация приложения под Kubernetes».  На встрече обсудим: ✔ где разворачивать базу данных, и можно ли это делать в кубе; ✔ concurrence; ✔ disruption budget; ✔ конфигурации, хранение секретов, интеграции с волтом; ✔ зависимости, кодовые базы. Спикеры: ➡️ Кирилл Борисов, SRE Lead в MTS Digital ➡️ Виталий Лихачёв, Ex-avito Senior Software Engineer, SRE в booking.com ➡️ Виктор Попов, ecom.tech, единственный в мире малыш-девопёс Зарегистрироваться на вебинар можно с помощью нашего бота-помощника. Подключайтесь! 🔗 ХОЧУ НА ВЕБИНАР erid: LjN8KPtc5

⚙️ Neofetch ✔️Системный информационный инструмент командной строки, написанный на bash 3.2+ ➡️ Neofetch отображает информацию
⚙️ Neofetch ✔️Системный информационный инструмент командной строки, написанный на bash 3.2+ ➡️ Neofetch отображает информацию о вашей операционной системе, программном и аппаратном обеспечении в эстетичном и визуально приятном виде. 🐙 Перейти на Github 🔨 bash_help

“Active Directory: пентест инфраструктуры - 2024" стартует 24 июня. Это последний поток курса, который ведут его авторы: HackerRalf (Михаил Порываев) и BlackRabbit (Павел Никитин), 5-кратные победители the Standoff Содержание курса: - Архитектура AD и ее базис - Компоненты AD Kerberos, Microsoft SQL Server и центр сертификации — как их взломать? - Харденинг в AD, добыча критичной информации, развитие по инфраструктуре - Как закрепиться внутри? Техники и эксплоиты На 100% прикладной курс: практическая лаборатория AD содержит 16 виртуальных машин, позволяя участникам отточить свои навыки на практике в 100+ рабочих тасках 🏆 Трудоустройство для лучших выпускников 🏆 Сертификат / удостоверение о повышении квалификации  Пишите нам @Codeby_Academy или звоните +74994441750 Подробнее о курсе

⚙️ BASHUI BASHUI - это BASH + UI, а не то что вы подумали. Какой UI без кнопок? С(т)ранный, поэтому я начал с элемента - кноп
⚙️ BASHUI BASHUI - это BASH + UI, а не то что вы подумали. Какой UI без кнопок? С(т)ранный, поэтому я начал с элемента - кнопка. Идея заключается в том что кнопка(и остальные элементы UI) будет представлена функцией. Функцию можно использовать из коробки. Но удобнее сделать "обёртку"(функцию) с какими-то предустановленными параметрами и уже эту функцию использовать по назначению. Для всех элементов UI я подготовил примеры(demo_*) их можно найти в репе. Вот как выглядит пример для кнопки:
#!/bin/bash
source bashui

mess="RESULT"
name="The Button"
title="Push the button, will get a result..."

butt(){
    # Новая кнопка на основе button из bashui, параметры:
    #1 координата X(колонка)
    #2 координата Y(строка)
    #3 название кнопки
    #4 выполняемая функция
    #5 цвет текста
    #6 цвет рамки
    #7 цвет подложки
    local x=$((COLUMNS/2-(${#name}/2+2)))
    local y=$((LINES/2))
    #       1  2    3       4       5      6       7
    button $x $y "$name" "result" "$wht" "$ylw" "$bblk"
}

# кнопка выполнит эту функцию
result(){
    local x=$((COLUMNS/2-${#mess}/2))
    local y=$((LINES/2+5))
    XY           $x $y  "$mess"
    (sleep 1; XY $x $y "${mess//[[:print:]]/ }") &
}

# все собрано вместе
menu(){
    cursor off          # отключаем курсор
    default_button butt # это необходимо для активации кнопки
    XY $((COLUMNS/2-${#title}/2)) $((LINES/2-2)) "$title"
    butt # рисуем кнопку

    # в цикле опрос клавиатуры и логика
    while true; do
        read_input
        case $_input_ in
              enter ) press_button butt;; # нажат enter, нажимаем кнопку
              escape) return;;            # нажат escape, выход
        esac
    done
}

clear
menu
🖼️ Дочитать на Habr'е 🔨 bash_help