Иногда нужно понять, какое
USB-устройство только что подключили: флешку, мышь, телефон или что-то неизвестное. Можно поставить громоздкие тулзы, а можно сделать лёгкую утилиту.В этом посте:
• Создаём udev-правило, которое срабатывает при подключении любого USB-устройства;
• Пишем Bash-скрипт, который логирует дату и идентификаторы устройства;
• Добавляем вывод idVendor и idProduct для удобной диагностики;
• Проверяем работу и смотрим живой лог в /var/log.
Такой подход помогает быстро анализировать новое железо, вести аудит подключений и упрощает диагностику проблем c
USB.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍7🔥6
erid: 2W5zFJMvwZ3
Хотите монетизировать канал в MAX, но не знаете, с чего начать?
✅MAX Клаб — это готовый сервис для запуска платных каналов и закрытых сообществ.
Вы создаете контент, а сервис берет на себя:
· прием платежей;
· выдачу доступа;
· управление подписчиками.
🖥️Не нужно писать код, искать разработчиков или настраивать сложные интеграции.
Попробуйте сервис за 199 ₽ и оцените его возможности.
https://max.ru/id972103845933_2_bot?start=ref_zy73cq
Хотите монетизировать канал в MAX, но не знаете, с чего начать?
✅MAX Клаб — это готовый сервис для запуска платных каналов и закрытых сообществ.
Вы создаете контент, а сервис берет на себя:
· прием платежей;
· выдачу доступа;
· управление подписчиками.
🖥️Не нужно писать код, искать разработчиков или настраивать сложные интеграции.
Попробуйте сервис за 199 ₽ и оцените его возможности.
https://max.ru/id972103845933_2_bot?start=ref_zy73cq
👎10🤝1
Знали, почему большинство пользователи Linux почти всегда используют find вместе с -print0?
Обычная передача списка файлов через
Чтобы исключить эту проблему,
Теперь этот поток можно безопасно передать в
Так будут корректно обработаны любые допустимые имена файлов, независимо от пробелов, табуляции и других символов.
Тот же приём подходит для удаления файлов:
И для передачи файлов любой другой программе:
Именно связка
🔥 Если пишете shell-сценарии или автоматизацию, этот приём избавляет от целого класса трудноуловимых ошибок.
🚪 Linux Ready | #совет
Обычная передача списка файлов через
xargs небезопасна. Если имя файла содержит пробел, перевод строки, кавычки или другие специальные символы, команда может обработать его неправильно.Чтобы исключить эту проблему,
find умеет разделять имена файлов нулевым байтом:$ find . -type f -print0
Теперь этот поток можно безопасно передать в
xargs:$ find . -type f -print0 | xargs -0 sha256sum
Так будут корректно обработаны любые допустимые имена файлов, независимо от пробелов, табуляции и других символов.
Тот же приём подходит для удаления файлов:
$ find . -type f -print0 | xargs -0 rm
И для передачи файлов любой другой программе:
$ find . -type f -print0 | xargs -0 grep "TODO"
Именно связка
-print0 и -0 считается стандартным способом безопасной обработки имён файлов в Unix-подобных системах.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍6❤5
This media is not supported in your browser
VIEW IN TELEGRAM
На сайте собрана большая база компактных шпаргалок, среди которых есть полезные справочники по Linux, Bash, SSH, systemd, Vim, Tmux, Docker, Git, Regex и другим инструментам. Основные команды, параметры и примеры использования собраны максимально компактно, поэтому нужную информацию можно найти буквально за несколько секунд.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍5🤝5
Сборка мультизагрузочного Live-USB накопителя для аварийного аудита и восстановления.
В арсенале любого специалиста по безопасности должен быть портативный инструмент для оперативного восстановления систем, сброса паролей и анализа цифровых следов. Мы соберем собственный тревожный
Для начала установим консольную утилиту Ventoy в операционную систему Linux для разметки флешки.
Архив успешно скачан и распакован в текущую рабочую директорию.
Выполним разметку и установку загрузчика Ventoy на ваш USB-накопитель (например,
Накопитель будет разбит на два раздела: скрытый с загрузчиком и основной под
Смонтируем флешку и скопируем необходимые дистрибутивы для аудита и пентеста напрямую в корень накопителя.
Файлы образов скопированы, и загрузчик Ventoy автоматически добавит их в системное стартовое меню.
Контрольный просмотр содержимого готового накопителя:
Ожидаемый вывод:
Безопасное размонтирование флешки перед извлечением:
Созданный таким образом
🚪 Linux Ready | #практика
В арсенале любого специалиста по безопасности должен быть портативный инструмент для оперативного восстановления систем, сброса паролей и анализа цифровых следов. Мы соберем собственный тревожный
Live-USB накопитель с помощью утилиты Ventoy, которая позволяет загружать любые ISO-образы простым копированием без форматирования флешки. Это превратит обычный USB-диск в универсальный швейцарский нож, готовый к запуску Kali Linux, Tails или системных реаниматоров на любом железе.Для начала установим консольную утилиту Ventoy в операционную систему Linux для разметки флешки.
wget https://github.com/ventoy/Ventoy/releases/download/v1.0.99/ventoy-1.0.99-linux.tar.gz && tar -xvf ventoy-1.0.99-linux.tar.gz
Архив успешно скачан и распакован в текущую рабочую директорию.
Выполним разметку и установку загрузчика Ventoy на ваш USB-накопитель (например,
/dev/sdX).
cd ventoy-1.0.99 && sudo ./Ventoy2Disk.sh -i /dev/sdX
Накопитель будет разбит на два раздела: скрытый с загрузчиком и основной под
ISO-образы.Смонтируем флешку и скопируем необходимые дистрибутивы для аудита и пентеста напрямую в корень накопителя.
sudo mount /dev/sdX1 /mnt && cp kali-linux-live.iso tails-amd64.iso /mnt/
Файлы образов скопированы, и загрузчик Ventoy автоматически добавит их в системное стартовое меню.
Контрольный просмотр содержимого готового накопителя:
ls -la /mnt/*.iso
Ожидаемый вывод:
/mnt/kali-linux-live.iso /mnt/tails-amd64.isoБезопасное размонтирование флешки перед извлечением:
sudo umount /mnt
Созданный таким образом
Live-USB накопитель позволяет на лету докидывать новые инструменты, скрипты и образы без перезаписи всей флешки. Держите на ней Kali для сетевого пентеста, Tails для анонимной работы и чистый дистрибутив Linux для сброса забытых локальных паролей через chroot.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤6👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Так сказал мой друг из Африки, когда увидел этот стол)
Не знаю уж че за сетап, меня зовут Саша и качественную необычную мебель из натурального дерева я делаю уже больше 12-ти лет, столько же занимаюсь и темой здоровья.
Когда я услышал, что до 10% смертности связано с сидячим образом жизни, меня это поразило и я задался целью делать максимально функциональные и полезные рабочие пространства, ибо геморрой в 30 это конечно довольно нишево, но все же сомнительно 😂
Ну а собрать такой комплект под свои задачи и при этом сразу прикинуть цены вы можете в удобном Mini App конструкторе
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2🔥1
Даже если ты часто правишь firewall — эти ключи ускорят диагностику и правки: посмотреть текущие цепочки, быстро вставить правило в начало, удалить шум или настроить NAT и фильтрацию по TCP. Полезно при дебаге доступа, перенаправлении портов и быстрой ревизии правил перед деплоем.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12🤝6👍4
Перенос инфраструктуры в
Kubernetes не обязательно должен происходить за один релиз. Гораздо безопаснее мигрировать сервисы поэтапно: начиная с наименее критичных компонентов, постепенно переносить зависимости, проверять стабильность каждого этапа и только потом переходить к ключевым сервисам.На картинке — пошаговый план миграции в Kubernetes: от инвентаризации сервисов и подготовки платформы до пилотного проекта, постепенного переноса приложений, стратегий
Blue/Green и Canary, а также финальной оптимизации и вывода старой инфраструктуры из эксплуатации.Сохрани, чтобы не потерять!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤5🔥5
DevOps Exercises более 2600 задач и вопросов по DevOps!
В репозитории собраны практические задания, вопросы и готовые разборы по Linux, Docker, Kubernetes, Terraform, Ansible, CI/CD, сетям, облачным платформам и мониторингу. Материалы можно проходить по отдельным темам, использовать для проверки своих знаний или подготовки к собеседованию.
Оставляю ссылочку: GitHub
➡️ DevOps Ready | #репозиторий
В репозитории собраны практические задания, вопросы и готовые разборы по Linux, Docker, Kubernetes, Terraform, Ansible, CI/CD, сетям, облачным платформам и мониторингу. Материалы можно проходить по отдельным темам, использовать для проверки своих знаний или подготовки к собеседованию.
Оставляю ссылочку: GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤3👍3
Шпаргалка по безопасной настройке прав в Linux!
Например, chmod 600 ~/.ssh/id_ed25519 закрывает приватный ключ от других пользователей, а режим 2755 включает setgid для каталога и помогает сохранять его группу у новых файлов.
На картинке специальные биты setuid, setgid и sticky bit, рекомендуемые права для SSH, скриптов и web-root, а также причины ошибок Permission denied, особенности символических ссылок, ACL и рекурсивного chmod.
Сохрани, чтобы не потерять!
➡️ DevOps Ready | #ресурс
Например, chmod 600 ~/.ssh/id_ed25519 закрывает приватный ключ от других пользователей, а режим 2755 включает setgid для каталога и помогает сохранять его группу у новых файлов.
На картинке специальные биты setuid, setgid и sticky bit, рекомендуемые права для SSH, скриптов и web-root, а также причины ошибок Permission denied, особенности символических ссылок, ACL и рекурсивного chmod.
Сохрани, чтобы не потерять!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤3🔥2
1000+ свежих IT-вакансий каждый месяц в одном месте 🤘
Пока другие листают hh — мы ищем вакансии по всему рынку: каналы, сайты компаний, стартапы и закрытые источники.
IT Россия
IT СНГ
Стажировки
Digital
Международка
Удалёнка
Python
Бигтех
Дизайн
QA
Джунам
Frontend
Аналитика
Стартапы за рубежом
DevOps
Не с HH
Автоотклики
Пока другие листают hh — мы ищем вакансии по всему рынку: каналы, сайты компаний, стартапы и закрытые источники.
IT Россия
IT СНГ
Стажировки
Digital
Международка
Удалёнка
Python
Бигтех
Дизайн
QA
Джунам
Frontend
Аналитика
Стартапы за рубежом
DevOps
Не с HH
Автоотклики
Please open Telegram to view this post
VIEW IN TELEGRAM
Почему sudo echo всё равно может вернуть Permission denied?
Часто системный файл пытаются изменить так:
Но команда может завершиться ошибкой доступа, хотя перед echo указан sudo.
Причина в порядке выполнения. sudo запускает с повышенными правами только echo, а перенаправление > обрабатывает текущий shell ещё до запуска команды.
Именно обычный пользователь пытается открыть системный файл для записи.
Для таких случаев удобно использовать tee:
Здесь файл открывает уже tee, запущенный через sudo.
Чтобы не перезаписывать файл, а добавить строку в конец, используйте -a:
Многострочный конфиг можно записать через heredoc:
Кавычки вокруг 'EOF' запрещают shell подставлять переменные и выполнять команды внутри блока. Содержимое будет записано буквально.
➡️ DevOps Ready | #совет
Часто системный файл пытаются изменить так:
sudo echo "PORT=8080" \
> /etc/myapp/app.conf
Но команда может завершиться ошибкой доступа, хотя перед echo указан sudo.
Причина в порядке выполнения. sudo запускает с повышенными правами только echo, а перенаправление > обрабатывает текущий shell ещё до запуска команды.
Именно обычный пользователь пытается открыть системный файл для записи.
Для таких случаев удобно использовать tee:
echo "PORT=8080" |
sudo tee /etc/myapp/app.conf \
> /dev/null
Здесь файл открывает уже tee, запущенный через sudo.
Чтобы не перезаписывать файл, а добавить строку в конец, используйте -a:
echo "LOG_LEVEL=info" |
sudo tee -a /etc/myapp/app.conf \
> /dev/null
Многострочный конфиг можно записать через heredoc:
sudo tee /etc/myapp/app.conf \
> /dev/null <<'EOF'
PORT=8080
LOG_LEVEL=info
CACHE_ENABLED=true
EOF
Кавычки вокруг 'EOF' запрещают shell подставлять переменные и выполнять команды внутри блока. Содержимое будет записано буквально.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍4🔥2
Шпаргалка по командам Docker CLI!
Например, docker run -p 8080:80 nginx запускает контейнер и публикует его порт, а docker logs -f <container> показывает новые строки логов в реальном времени.
На картинке команды для сборки и удаления образов, запуска и остановки контейнеров, просмотра логов и статистики, открытия shell внутри контейнера, а также загрузки и публикации образов через Docker Hub.
Сохрани, чтобы не потерять!
➡️ DevOps Ready | #ресурс
Например, docker run -p 8080:80 nginx запускает контейнер и публикует его порт, а docker logs -f <container> показывает новые строки логов в реальном времени.
На картинке команды для сборки и удаления образов, запуска и остановки контейнеров, просмотра логов и статистики, открытия shell внутри контейнера, а также загрузки и публикации образов через Docker Hub.
Сохрани, чтобы не потерять!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤7👍6
Bash-конвейер может скрыть ошибку одной из команд!
По умолчанию код завершения конвейера определяется последней командой:
Если
Опция
Теперь конвейер завершится с ошибкой, если неуспешной была любая его часть:
Коды отдельных команд последнего конвейера можно посмотреть через
В автоматизированных Bash-скриптах часто включают сразу несколько строгих настроек:
Ожидаемые ошибки при этом лучше обрабатывать явно:
Добавляйте
➡️ DevOps Ready | #совет
По умолчанию код завершения конвейера определяется последней командой:
curl -sS "$URL" | jq -r '.version'
Если
curl завершится с ошибкой, но jq успешно обработает пустой ввод, весь конвейер может вернуть код 0. Скрипт решит, что команда выполнилась успешно.Опция
pipefail меняет это поведение:set -o pipefail
Теперь конвейер завершится с ошибкой, если неуспешной была любая его часть:
curl -fsS "$URL" |
jq -r '.version' > version.txt
Коды отдельных команд последнего конвейера можно посмотреть через
PIPESTATUS:curl -fsS "$URL" | jq -r '.version'
printf '%s\n' "${PIPESTATUS[@]}"
В автоматизированных Bash-скриптах часто включают сразу несколько строгих настроек:
set -euo pipefail
-e завершает скрипт при необработанной ошибке, -u запрещает использование необъявленных переменных, а pipefail обнаруживает сбой внутри конвейера.Ожидаемые ошибки при этом лучше обрабатывать явно:
if ! grep -q "READY" health.log; then
echo "Service is not ready"
fi
Добавляйте
pipefail в Bash-скрипты, где ошибка загрузки, сборки или обработки данных не должна остаться незамеченной.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤6👍5