es
Feedback
Bash Days | Linux | DevOps

Bash Days | Linux | DevOps

Ir al canal en Telegram

Авторский блог от действующего девопса Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу. Автор: Роман Шубин Реклама: @maxgrue MAX: https://max.ru/bashdays Курс: @tormozilla_bot Блог: https://bashdays.ru

Mostrar más

📈 Análisis del canal de Telegram Bash Days | Linux | DevOps

El canal Bash Days | Linux | DevOps (@bashdays) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 23 788 suscriptores, ocupando la posición 5 702 en la categoría Tecnologías y Aplicaciones y el puesto 28 099 en la región Rusia.

📊 Métricas de audiencia y dinámica

Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 23 788 suscriptores.

Según los últimos datos del 19 junio, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -226, y en las últimas 24 horas de 1, conservando un alto alcance.

  • Estado de verificación: No verificado
  • Tasa de interacción (ER): El promedio de interacción de la audiencia es 23.40%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 13.11% de reacciones respecto al total de suscriptores.
  • Alcance de las publicaciones: Cada publicación recibe en promedio 5 567 visualizaciones. En el primer día suele acumular 3 119 visualizaciones.
  • Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 22.
  • Intereses temáticos: El contenido se centra en temas clave como bashdays, linux, bash, docker, скрипт.

📝 Descripción y política de contenido

El autor describe el recurso como un espacio para expresar opiniones subjetivas:
Авторский блог от действующего девопса Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу. Автор: Роман Шубин Реклама: @maxgrue MAX: https://max.ru/bashdays Курс: @tormozilla_bot Блог: https://bashdays.r...

Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 20 junio, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.

23 788
Suscriptores
+124 horas
-217 días
-22630 días
Archivo de publicaciones
🚀 Хотите узнать, как отслеживать стабильность развертывания в вашем проекте? ✅Тогда вам обязательно стоит посетить бесплатны
🚀 Хотите узнать, как отслеживать стабильность развертывания в вашем проекте? ✅Тогда вам обязательно стоит посетить бесплатный урок по теме «KPI и метрики непрерывной доставки — отслеживаем стабильность развертывания на примере ArgoCD» от OTUS! Спикер Михаил Чугунов — ведущий DevOps-инженер. ⚡️На вебинаре: - рассмотрим, какие метрики и ключевые показатели нужны для успешного мониторинга и оценивания качества конвейера доставки; - поговорим об инструментах; - на примере ArgoCD разберем несколько кейсов, которые могут пригодиться на «боевых» стендах. ⏰ Занятие пройдёт 26 марта в 20:00 мск в рамках курса «SRE практики и инструменты». Доступна рассрочка на обучение! ➡️Пройдите короткий тест прямо сейчас и получите спец. цену на курс, а также запись урока! Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

0xB105F00D, 0xB16B00B5, 0x0B00B135, 0xDEADBABE И снова здрасти. Сегодня на изи, работы валом. Короче эти штуки сверху называю
0xB105F00D, 0xB16B00B5, 0x0B00B135, 0xDEADBABE И снова здрасти. Сегодня на изи, работы валом. Короче эти штуки сверху называются HexSpeak. Это не просто HEX смещение, это запись английский слов, с помощью чисел в шестнадцатеричной системе счисления. Такой вот отголосок из 80х, когда была сцена, демки в 4кб и т.п. Многие персонажи, делали себе подобные ники:
B105F00D = BIOS food B16B00B5 = big boobs 0B00B135 = boobies DEADBABE = dead babe E11TE = elite
Да чо далеко ходить, вон в исходных кодах полно этого говна магических чисел с этими хекспиками. Да и в пасхалки порой их суют.
Про magic numbers писал тут.
Кто всю эту тему раскачал хуй знает, видимо народное творчество. Смысл ты наверное понял, как все это кодируется. Но вкратце: символ «0 - ноль» может быть буквой «О», а «1» = «L» или «I» ну и т.д. Короче это гиковская культура. Теперь смотрим на картинку к посту. Если открыть JAVA файл c классом в редакторе, его первая строка будет выглядеть как «cafe babe». Первые четыре байта. Это магическое число используется для идентификации классов JAVA. А почему вообще «cаfe babe»? На самом деле предположений много разных. Но позже Джеймс Гослинг (батя JAVA) все прояснил. Они вечно тусовались в кофейне, которое прозвали «CAFE DEAD». На самом деле там длинная история, погуглите. Ну и вот, в процессе работы Джеймсу понадобилось заебенить магическое число, а «CAFE DEAD» как раз представляло шестнадцатеричное число. Ну и он его запихал для формата объектного файла. Короче ничо специально не делалось, все произошло в моменте. Про популярные комбинации хекспиков, можешь глянуть на википедии. Давай, завтра увидимся, а на выходные уж отдохнем. tags: #linux @BASHDAYS

❓Часто сталкиваетесь с необходимостью автоматизировать выполнение задач в РЕД ОС, но не знаете, как настроить расписание или
❓Часто сталкиваетесь с необходимостью автоматизировать выполнение задач в РЕД ОС, но не знаете, как настроить расписание или где начать? 🚀 В нашем открытом занятии мы детально разберем, как эффективно планировать задания в РЕД ОС, используя самые надежные и проверенные методы. ✅ Зарегистрируйтесь и научитесь применять команды и скрипты по расписанию, настраивать cron и at, а также создавать таймеры systemd для максимальной эффективности вашей работы. ⏰ Занятие пройдёт 26 марта в 20:00 МСК и будет приурочено к старту курса «Расширенное администрирование РЕД ОС». 🤝Понравится вебинар — продолжите обучение на курсе по специальной цене и даже в рассрочку! Регистрация! Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Всегда задавай себе вопрос — а не хуйню ли я делаю? Кринжатину давно не постил. Исправляюсь. А ты знал… хотя нет, скорее всего не знал. Короче если к слову «Linux» применить XOR шифрование с маской 28, то получится слово PURID = «Чистый».
Это как если к слову «хлеб» применить XOR, то получится «пиво»
Смотри:
echo -e $(printf '\\x%x' $[ 64#{L,I,N,U,X} + 29 ^ 28 ])  
echo -e $(printf '\\x%x' $[ 64#{P,U,R,I,D} + 29 ^ 28 ])
Сразу пример, туда-обратно. Что тут происходит? Если кратно — происходят вычисления. Для слова «Linux» в фигурных скобках применяется Bash Brace Expansion, который приводит слово к такому виду:
`L`,`I`,`N`,`U`,`X`
Арифметическое действие происходит в «$[». А решетка + 64 означает, что числа будут интерпретированы как шестидесятеричные (в системе счисления по основанию 64). В итоге получаем число, которое будет вычислено как комбинация ASCII-кодов символов L, I, N, U, X (в шестидесятеричной системе) + 29, взятое по модулю 28 (используется оператор ^ как побитовое исключающее ИЛИ). Ну и echo -e = разрешаем интерпретацию escape-последовательностей в строке. Кринжатина? Еще какая! А сейчас давай оверхед на perl:
perl -E 'say map { chr(ord($_) ^ 28) } qw(L i n u x)'  
perl -E 'say map { chr(ord($_) ^ 28) } qw(P u r i d)'
Где это можно применить, понятия не имею. Возможно это как-то натолкнет тебя на правильные мысли и ты решишь изучить методы шифрования. Ладно, не смею больше насиловать твой чистый разум. Изучай! tags: #bash #linux @BASHDAYS

Erid: 2Vfnxy9yCkx Хакеры буквально пытались взломать этот вебинар про контейнерные технологии от команды PT Container Securit
Erid: 2Vfnxy9yCkx Хакеры буквально пытались взломать этот вебинар про контейнерные технологии от команды PT Container Security. На какой минуте произошел инцидент и как он повлиял на эфир? Заходи в Telegram-канал продукта, смотри вебинар и ищи багу 😏

Сделать через жопу, это лучше, чем не сделать совсем Иногда требуется проверить поведение скрипта, когда на диске физически закончилось место. Но создавать огромный файл с нулями и забивать всё место — такое себе решение. А как быть? Да всё просто, диск можно забить искусственно, не забивая его. Для этого существует такая поебень как: /dev/full.
/dev/full — это специальный файл устройства, источник данных, который всегда возвращает ошибку «No space left on device».
При попытке записи в /dev/full, тебе выдаст — опа, а места нету! Даже если физически место есть. Это удобно для тестирования софта и обработчиков исключений. Например, пишет твой скрипт в файл какую-нибудь суету, место закончилось. Что будет дальше делать скрипт? Как он себя поведет? Держу пари, будет пытаться продолжать писать. А по-хорошему, он должен сообщить тебе про это, либо корректно завершиться и освободить файл. Смекаешь? Вот пример скрипта:
#!/bin/bash

output_file="data.txt"

while true; do
    # Записываем данные в файл
    echo "bashdays data" >> "$output_file"

    # Проверяем на "No space left on device"
    if ! echo "bashdays data" >> "/dev/full"; then
        echo "Disk is full!"
        break
    fi
done
Скрипт при каждой итерации проверяет заполнен ли диск и если заполнен то выводит сообщение «Disk is full!». Символ «!» в этом примере = инвертирует результат выполнения команды. То есть если запись в /dev/full не вызывает ошибки, то диск еще не заполнен. Echo можешь заменить например на триггер, который тюкнет тебе в телеграм и скажет, что твой скрипт сожрал всё место.
Как взаимодействовать с API телеграм через Bash, я писал тут.
Такие дела. Изучай. tags: #bash #linux @BASHDAYS

Erid: 2Vfnxy9yCkx Хакеры буквально пытались взломать этот вебинар про контейнерные технологии от команды PT Container Securit
Erid: 2Vfnxy9yCkx Хакеры буквально пытались взломать этот вебинар про контейнерные технологии от команды PT Container Security. На какой минуте произошел инцидент и как он повлиял на эфир? Заходи в Telegram-канал продукта, смотри вебинар и ищи багу 😏

Мощные международные серверы VDSina от 4.80 $ / месяц Рады предложить новый зарубежный проект аренды серверов от 4.80 $ / мес
Мощные международные серверы VDSina от 4.80 $ / месяц Рады предложить новый зарубежный проект аренды серверов от 4.80 $ / месяц - https://www.vdsina.com/ru/pricing/standard/?partner=1nkuvyypkz - Доступны все популярные сайты, включая ChatGPT, Netflix, Dell, Intel - Фиксированная цена в долларах США без комиссий - Оплата с российских банковских карт, зарубежных карт, криптовалютой - Русскоязычная поддержка - Подключения к сети интернет — 10 Гбит/сек, возможность бесплатно использовать локальную сеть 100 Гбит/сек - Последнее поколение серверов на базе CPU AMD EPYC 9754 - Подходит для любых задач: работа в браузере, размещение сайтов и ботов - Размещение серверов в Амстердаме Почему я должен верить компании? VDSina работает с 2014 года и сейчас обслуживает более 40 000 серверов. Сомневаетесь? Вот чат в телеграме — задавайте вопросы другим пользователям: https://t.me/vdsina Реклама. ИП Краснов С.В. ИНН: 911104107858, erid: 2VtzqvkHcG4

Начинаем утреннюю гимнастику! Привет, эхх… люблю я издеваться над студентами, в хорошем смысле слова. Поэтому в арсенале всегда имеются задачки со звездочками. Типа с повышенной сложностью. Задачи без хуйни, но с элементом соревнований. Как сейчас модно говорить — челендж. Так намного интереснее, это вызывает азарт. Обучение через геймификацию, все же топ штука. Нужно написать самый короткий Bash скрипт, команду: 1. Вывести на экран таблицу умножения 2. Вывести на экран шахматную доску Ниже я покажу самые короткие решения, которые меня порадовали. Авторы этих решений, 16ти летние пацаны. Видимо мозги еще не убиты кубиками и всратым скрамом.
Перед тем как откроешь спойлера, попробуй сам решить эти задачки и закинуть свои наработки в комментарии. Чьи решения наберут больше реакций/лайков — получат пиздюдей приз.
Чо по плюшкам 1. Аналоговая шаурма/тортик/пиво/другое. Макс закинет тебе приятный бонус на РФ карточку. 2. Статус в чатике - воин дракона (ну или какой сам захочешь). А вот и самые короткие решения от моих студентов. Я предварительно их сломал, копипаста не сработает. Сначала подумай и пофикси, приключений на пару минут.
В комментах закинул скриншоты с рабочих вариантов.
Таблица умножения printf '%3s%3s%3s%3s%3s%3s%3s\n' $[{1..9} * {1..8}] Шахматная доска printf '%b%b%b\n' {1..4}'\b'{{1..5}'\b\e[107m \e[m ',{1..4}'\b \e[107m \e[m'} Дерзай, сегодня наверное еще увидимся. Хорошего тебе дня! А я побежал дальше graylog ковырять. tags: #bash #linux #games @BASHDAYS

In your head, in your head, Zombie, zombie, zombie-ie-ie… Привет. Вчера Юра в комментах спросил за зомби процессы и как с ними деликатно обходиться. Расскажу про свой не деликатный опыт. Поехали. Что такое зомби-процессы?
Зомби-процесс в Linux - это процесс, который завершил выполнение своей работы, но оставил запись в таблице процессов, ожидая, чтобы родительский процесс запросил информацию о его завершении. Пока родительский процесс не сделает это, запись о зомби-процессе останется в системе.
Всё, с теорий хватит. Чтобы потыкать палкой какой-нибудь зомби процесс, нужно его искусственно создать. Пишем на СИ портянку (ниже будет и на Bash):
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>

int main() {
    pid_t child_pid;
    child_pid = fork();

    if (child_pid > 0) {
        sleep(7200);
    } else if (child_pid == 0) {
        printf("Дочерний процесс выполнен.\n");
        exit(0);
    } else {
        perror("Ошибка при вызове fork");
        exit(EXIT_FAILURE);
    }
    return 0;
}
Этот код создает дочерний процесс, который сразу же завершается. Родительский процесс ждет 2 часа и затем завершается без вызова wait(). Вот так мы и получим своего маленького зомби, над которым будем ставить эксперименты. Компилируем и запускаем в фоне этого зомбаря:
gcc zombie.c -o zombie
./zombie &
Либо создаем зомби через Bash:
(sleep 1 & exec /bin/sleep 7200) &
Выполняем команды и наблюдаем zombie процесс:
ps aux | grep Z
Вывод на экран:
root 1669051 Z 14:09 0:00 [zombie] <defunct>
Ага, хорошо, зомби завели. Теперь как это дело всё закилить. Простой kill -9 PID не поможет, так как PID родительского процесса будет отличаться от дочернего. Чтобы найти PID родителя, смотрим:
ps ax | grep zombie
Кто-то грепает по слову defunct, тут уже по потребностям выбирай. Видим все PIDы и родителя и дочернего:
1669050 S+ 0:00 ./zombie
1669051 Z+ 0:00 [zombie] <defunct>
В моем случае PID родительского = 1669050, а дочернего 1669051, который собственно и есть зомбик. Теперь накидываем однострочник:
kill -9 $(ps -A -ostat, ppid | grep -e '[zZ]'| awk '{ print $2 }')
Эта штука найдет все зомби процессы и уничтожит их. Даже не нужно никакие циклы на Bash колхозить. А если требуется регулярно зачищать зомборей, вешаем однострочник на cron и радуемся. Вообще это самый простой способ закилить эту каку. Как это сделать через gdb напишу на следующей неделе. Но сразу предупреждают, там оверхед решение и скорее всего оно тебе не понравится. Хотя через gdb можно оставить в живых родительский процесс и убить только дочерних зомбаков.
В большинстве случаев не стоит обращать внимание на этих зомбаков, эти процессы не жрут ресурсы, а являются лишь косяками программного обеспечения.
У меня зомбаки порой случались с nginx на древней CentOS, но после апгрейда на убунту, все прошло. Если сможешь что-то еще добавить, пиши в комменты, будет всем полезно. Давай, хороших выходных, не болей! tags: #bash #linux @BASHDAYS

Митап про развитие карьеры в Linux Эксперты CROC Cloud Services и приглашенные гости — блогер Антон Павленко и бизнес-директо
Митап про развитие карьеры в Linux Эксперты CROC Cloud Services и приглашенные гости — блогер Антон Павленко и бизнес-директор Southbridge Борис Клименко — обсудят профессиональный путь Linux-специалиста Среди тем: как ускорить прогресс в изучении Linux, с чем откликаться на вакансию, какие вопросы задают на техническом интервью и как расти после оффера. Полезный контент для начинающих спецов, которые хотят развиваться в DevOps Встреча пройдет онлайн, 20 марта в 18:00 (мск). Подробности и регистрация по ссылке

Привет, я тут немного затроил, но без чтива вас не оставлю. Сегодня обсудим что делает kill -0 $pid в Bash скриптах. В принципе логично, команда должна убить какой-то процесс. Но как мы знаем, сигналы начинаются с единицы (1) = SIGHUP, а тут какой-то странный нолик затесался. Что забавно, в официальной документации и всяких манах информации по этому нулю очень мало. В некоторых дистрибутивах, через man 2 kill можно получить такой ответ: If sig is 0, then no signal is sent, but existence and permission checks are still performed; this can be used to check for the existence of a process ID or process group ID that the caller is permitted to signal. Не по-русски, но с переводчиком понятно. Короче с помощью нуля, можно проверить запущен ли процесс и может ли пользователь отправлять ему сигналы.
Более подробно про сигналы я писал в этом посте
Давай к примерам:
sleep 120 &
pid=$!
kill -0 $pid && kill $pid
fg
1. Запускаем в фоне задачу sleep 2. Присваиваем переменной PID процесса 3. Проверяем, если процесс с $pid запущен, то убиваем его 4. Проверяем что процесс убит Здесь мы с помощью нуля проверили наличие запущенного процесса и на возможность отправлять ему сигналы. Если всё ок, то отрабатывает команда kill $pid. А если запустить так:
kill -0 $pid; echo "Exit status: $?"
Получим статус выхода. То есть процесс не запущен и можно смело выходить со статусом 1.
Про статусы и коды возврата можешь почитать в этом посте.
Ну и напоследок проверим, может ли пользователь отправлять сигналы процессы. Запускаем под обычным пользователем:
sudo sleep 120 &
kill -0 $!; echo "Exit status: $?"
В итоге получим:
bash: kill: (1644755) - Operation not permitted
Exit status: 1
То есть запускаем фоновый процесс от рута, а затем с помощью нуля проверяем, сможет ли обычный пользователь убить этот процесс. Как видим - хуй, не сможет. В нормальной жизни я редко встречал скрипты с такими конструкциями и проверками, но тот кто профессионально пишет для opensource это прям мастхев, суют везде, мама не горюй. Хорошего дня, а я пошел дальше диван давить, да лечиться. Увидимся! tags: #bash @BASHDAYS

Научитесь разрабатывать безопасные приложения на курсе Positive Technologies 19 марта стартует обучение на курсе AppSec: Разр
Научитесь разрабатывать безопасные приложения на курсе Positive Technologies 19 марта стартует обучение на курсе AppSec: Разработка безопасного программного обеспечения. Курс разработан совместно с ведущими экспертами в области безопасной разработки и проводится на базе МФТИ. Вы узнаете основные принципы и методологии разработки безопасных приложений, научитесь работать с угрозами, рисками и обеспечивать безопасность на разных уровнях: от контейнерной инфраструктуры до облачной безопасности. Курс будет для вас полезен, если вы являетесь практикующим разработчиком, DevOps-инженером, системным администратором или тестировщиком. О чём ещё важно знать: - Вас ждёт 4,5 месяца обучения. - Лекции и семинары будут проходить 2-3 раза в неделю в 19:00. - В ходе обучения закрепите практику на 3-х практических проектах. Новый поток стартует 19 марта – успейте оставить заявку!

Есть такие команды, они выведут справку по утилите printf:
1. help printf
2. printf --help
3. env printf --help
НО. Каждая команда выведет свою версию справки (почти). То есть результат вывода будет отличаться в разных случаях. Не веришь? Попробуй сам. В первом пункте с help printf всё понятно. Получишь некий огрызок, который трудно назвать страницей помощи. Да и во втором тоже самое. В 1-2 вызывается именно встроенная утилита printf в оболочку Bash. А вот в третьем пункте, выведется достаточно внушительный хелп. И этот внушительный хелп будет от схожей, внешней утилиты printf, которая располагается тут: /usr/bin/printf. Посмотреть все варианты printf можно так:
type -a printf
На экран выведется список:
printf is a shell builtin
printf is /usr/bin/printf
printf is /bin/printf
Ну и везде советуют пользоваться встроенной в Bash командой help, она нативнее и поддерживает почти весь синтаксис оболочки. Тут уже решать тебе. Я очень редко читаю документацию таким способом, предпочитаю сразу загуглить. Ладно. Изучай. tags: #bash @BASHDAYS

Выделенные серверы Vscale от 1490 ₽/месяц Сайт, игра, пет-проект или другая идея— все это легко запустить на серверах в прост
Выделенные серверы Vscale от 1490 ₽/месяц Сайт, игра, пет-проект или другая идея— все это легко запустить на серверах в простой панели Vscale. Ты найдешь выделенные и облачные серверы в РФ с бесплатной защитой от DDoS-атак на базовом уровне (L3-L4), с 1 Гбит/с безлимитного Интернета, с GPU или без. Плати за час или за месяц, как удобно. В скором будущем планируется запуск облачных баз данных и управляемых кластеров Kubernetes. А пока можешь заглянуть в наш уютный чатик, где быстро можно что-то спросить или поделиться опытом. Посмотри все доступные конфиги в панели Vscale: https://slc.tl/m4t0j Реклама ООО «Селектел» erid 2VtzqukMxRi

Кот насрал в макбук Причем не «На», а конкретно «Вв». Сегодня снова про гавно и котов, которые выставляют айтишников на 200к рублей. Сторис С утра настраивал примитивный kubernetes кластер для клиента, пилил таску с ноута, сидя на унитазе. Ну а как, удалёнка, могу себе позволить. Жил бы один, вообщеб обратно в обезьяну эволюционировал. Короче время дейлика с другим клиентом, бросаю открытый ноут в сортире на коврик, бегу к стационарному компу где установлен zoom. 15 минут слушаю очередную хуиту от лосей, проблема не у нас, а на серверах. Классика. По привычке — выгораю, шлю нахуй, реву. Ну и вот! Вся эта поебень заканчивается, закидываю в кружку кофея, беру вонючий айкос и направляюсь в обсерваторию. А в кабинете меня ждет картина маслом. Ну как маслом… Ноут который я бросил на коврик… Ему был произведен основательный апгрейд + 100500 к бренду. Подробности описывать смысла не вижу. Все предельно просто: кот решил, что посрать на теплоё и закрыть крышку будет нативнее, чем в свой тазик. А новое и тёплое всегда безумно манит. Тем более присутствует интерактив — закрыть крышку. Зона комфорта. Ну ты и сам это прекрасно понимаешь. Я даже не стал визжать как сучка, мой косяк, спровоцировал животное. И так ему яйца уже заскейлили за заслуги. Уличные коты себе такого не позволяли, как этот голубых сука кровей, сеньор блядь помидор. Напомнил знакомого, который, любил гадить в лифтах. Сейчас кстати работает JAVA разработчиком. Тоже сеньор, лифты заменил на GIT репозитории. Забавно, но ситуация страшная. Сначала комбик за 50к, потом стена и диван в зале, а сегодня макбук за 200к. Хотя сам кот стоил всего 5к. Сомнительно конечно вложение было. Что дальше, хуй знает. Снова выгорел, поревел…
Такое происходит только в фильмах, но увы, порой я думаю, что живу в каком-то сценарии Тарантино.
Проанализировав произошедшее, в очередной раз убедился, что от apple и кубернейтсов одно зло. Linux / Windows / Android / Bash / Ctypes наше всё. Таску в джире пометил как кот - Blocked, а ноут выставил на авито. Так что будь аккуратнее если решишь купить б/у железяку, возможно ранее в её красиво насрали проапгрейдили. В комментах фото этого диверсанта. Результат апгрейда выкладывать не буду, у меня психологическая травма. Но если есть любители прекрасного, пишите Максу, он скинет. И всегда помни — даже если кот кастрирован, с его жопой ты ничего не сделаешь. Максимум сможешь провести ретроспективу по методологии «Scrum». Говорят в айти охуенно весело. Справедливо! tags: #рабочиебудни @BASHDAYS

Лучшие подкасты про саморазвитие в IT Как понять, каких навыков тебе не хватает для карьерного роста? Как эти навыки развиват
Лучшие подкасты про саморазвитие в IT Как понять, каких навыков тебе не хватает для карьерного роста? Как эти навыки развивать и какие курсы выбрать? Чему нужно учиться, чтобы выдержать конкуренцию с нейросетями? Нашли ответы на вопросы в выпусках подкаста: ⭐️Обучение в IT: как его выбрать и совмещать с работой Из подкаста узнали, как не ошибиться при выборе образовательного трека, какие привычки помогут сделать самообразование приятной рутиной и как распознать бесполезные курсы. ⭐️Нейросети ВМЕСТЕ с разработчиками или ВМЕСТО них Гости рефлексируют над стремительным проникновением нейросетей в IT и обсуждают, как специалистам адаптироваться и оставаться востребованными. ⭐️ Развитие личного бренда в IT В выпуске обсудили, почему важно развивать личный бренд и как найти баланс между развитием реальных навыков и самопрезентацией. Смотрите выпуски на YouTube или слушайте на аудиоплощадках. «Сегодня на ретро» — подкаст @Selectel о повседневных проблемах в карьере IT-специалистов. В нем практикующие разработчики, техлиды и продакты делятся собственным опытом и дают советы по развитию софт- и хард-скиллов. Реклама ООО «Селектел» erid 2VtzqvPJvqi

Кто сеет ветер, тот пожнет бурю А давай пожнем бурю! Как мы любим. Недавно я писал пост про readonly и переменные. Ну дак вот, заансетить переменную можно и другим способом. Не спеши переключать канал, будет ОХУЕННО интересно. Bash теперь не менее опасен чем perl. ctypes - это не просто очередная скриптовая библиотека, это штука позволяет вызывать функции из shared библиотек на СИ, прямо из bash скриптов. Охуеть да? Можно сказать это внештатный модуль для Bash с огромным функционалом. Где не справился Bash, справится Bash + ctypes. Могу сравнить это с паскалем и вставками на ассемблере, ох любил я это дело в школе. Учительница по информатике плакала кровавыми слезами, когда читала мои исходники. А потом вообще просто начала ставить пятерки, чтобы не видеть моих брейнфаков. Давай попрактикуемся. Собираем модуль ctypes.
git clone https://github.com/taviso/ctypes.sh.git
cd ctypes.sh
./autogen.sh
./configure
make
sudo make install
По умолчанию вся эта байда ставится в папку /usr/local/bin и /usr/local/lib. Но при сборке путь можно изменить через параметр PREFIX=$HOME make install. Так собрали, установили. Чо дальше? А дальше пишем самую простую so библиотеку:
#include <stdio.h>

void hello_bashdays() {
    printf("Hello, Bashdays!\n");
}
Компилируем:
gcc -shared -o /tmp/bashdays.so bashdays.c
На выходе получаем готовый файл bashdays.so с функцией hello_bashdays. Проверяем какие символы доступны в скомпилированной библиотеке:
nm -g /tmp/bashdays.so
Команда nm покажет, все глобальные функции и переменные, которые доступны в библиотеке bashdays.so. Мне выдало такое:
w _ITM_deregisterTMCloneTable
w _ITM_registerTMCloneTable
w __cxa_finalize@GLIBC_2.2.5
w __gmon_start__
0000000000001119 T hello_bashdays
U puts@GLIBC_2.2.5
Ок. Всё верно! Символ T перед названием функции, означает, что функция глобальная. А символ U (puts) = что эту функцию можно вызвать из вне. Ну и теперь с помощью ctypes мы можем вызвать эту функцию из Bash скрипта.
#!/bin/bash

source /usr/local/bin/ctypes.sh

dlopen "/tmp/bashdays.so"
dlcall "hello_bashdays"
Опа нихуя! На экран получаем результат выполнения СИ функции hello_bashdays. Собственно Hello, Bashdays! И это всего лишь верхушка айсберга, если копнуть глубже… Вот несколько отзывов на ctypes: - Это отвратительно - Это должно прекратиться - Вы зашли слишком далеко - Это шутка? Вот такие интересные штуки существуют. Надеюсь тебе понравилось. Теперь ты знаешь как собирать shared so файлы и легко вызывать от туда функции. Аа забыл, как заансетить переменную:
readonly VAR=123
source /usr/local/bin/ctypes.sh
dlcall unbind_variable string:VAR
Вот и все. И никаких тебе танцев с gdb. Переменная VAR обнулена. Примени это с умом, ведь на тёмную сторону перейти очень легко. Увы, но я уже там! 🌐 Страница проекта на github tags: #bash #linux @BASHDAYS

🗓 12 марта, 16:00 📌 Как не потерять бизнес в 2024? Основы информационной безопасности В 2023 год участились случаи взлома с
🗓 12 марта, 16:00 📌 Как не потерять бизнес в 2024? Основы информационной безопасности В 2023 год участились случаи взлома сервисов, хакерских атак, утечек персональных данных. На вебинаре от @Selectel коллеги обсудят, как обеспечить безопасность инфраструктуры и не потерять данные клиентов. Программа вебинара: ◽️ Какие атаки были популярны в 2023 году и какие будут актуальны в 2024? ◽️ Как быстро могут вас взломать и какие могут быть последствия? ◽️ Как найти уязвимости и проанализировать безопасность инфраструктуры? ◽️ Пошаговый гайд по повышению защищенности. Регистрируйтесь на мероприятие и участвуйте в розыгрыше приза за лучший вопрос: https://slc.tl/qdqro Реклама ООО «Селектел» erid 2VtzquWVJ3V

Любишь унижения? Рекомендую! Здрасти. В Linux есть возможность включить «оскорбительный режим», который работает из коробки без установки дополнительного шлака. Суть этого режима: при использовании команды sudo, если ты ввел неправильный пароль, система унизит тебя. Для включения, добавь в файл /etc/sudoers (либо в /etc/sudoers.d/fuck.conf) такую строчку:
Defaults insults
А после этого попробуй выполнить от пользователя:
sudo apt update
И введи неправильный пароль. Результаты бывают разные:
Take a stress pill and think things over.
You fucking stupid shit!
My mind is going. I can feel it.
Realy? Are you on drugs?
Все эти фразочки зашиты в библиотеке /usr/libexec/sudo/sudoers.so. Но на английском не интересно. Поэтому можно выводить своё сообщение через такой хак: Делается так:
Defaults  badpass_message="Еще одна попытка и я тебя выебу!"
Предварительно закомментируй Defaults insults. Можно конечно пересобрать sudoers.so со своими фразами, но геморно. Ну либо пропатчить прям этот файл через HEX редактор. Уверен есть способ запустить такой Bash скрипт по триггеру:
#!/bin/bash

messages=("Неверный блядь пароль! У тебя палец сломан?"
          "Еще одна попытка и я тебя выебу"
          "Может, тебе стоит попробовать свою девичью фамилию?")

echo "${messages[$RANDOM % ${#messages[@]}]}"
Изучай! tags: #bash #linux @BASHDAYS