bashdays | Unsorted

Telegram-канал bashdays - Bash Days | Linux | DevOps

22119

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

Subscribe to a channel

Bash Days | Linux | DevOps

Мечтаете в будущем работать в IT и стать экспертом по веб-разработке? Если вам от 13 до 20 лет, вы уже знакомы с Go и уверенно работаете с Git — самое время подняться на новый уровень! 🚀

До 29 января вы можете присоединиться к бесплатной онлайн-программе по веб-разработке на Go. Занятия ведут эксперты Яндекс Лицея, которые каждый день разрабатывают сложные IT-решения. Они научат вас:

🔹 создавать микросервисы,
🔹 настраивать CI/CD,
🔹 разрабатывать и развертывать инфраструктуру.

Специализация по Go длится всего 3 месяца, проходит онлайн и помогает освоить ключевые навыки разработки на практике.

Набор открыт также на онлайн-программы по веб-разработке на Django, анализу данных, машинному обучению и большим данным. Подайте заявку прямо сейчас! 🚀

Читать полностью…

Bash Days | Linux | DevOps

По технической части я хуй знает чо те написать, поэтому закину свои меморисы (2021) на сон грядущий, прям из стола. Мало кто их видел.

Как научиться договариваться. Часть 1.

Похуй насчет чего, с клиентом, руководителем, коллегами, тетей Зиной, котом, чайником. Погнали.

Ты ебать интроверт, проще в одну харю чето сделаешь, чем привлечешь внешнюю помощь.

Тебя нахуй пугают телефонные переговоры, ты рад, что пандемия и можно носить маску на пол еблища и никто не замечает твоего страха.

К директору за повышением ты не ходишь, ссышь, сидишь и ждешь годами пока там сами решат тебе кинуть кусок.

В магазине ты быстро покупаешь продукты и моментально съебываешься в свою нору.

Если возникает какая-то коммунальная авария в твоей халупе, для тебя это конец света, так как очень некомфортно вызывать мастеров.

Тебя можно описать тремя словами — Неуверенность. Смущение. Отчаяние.

Короче я сам в такую пиздень как-то попал, ноги росли от перехода на удаленку.

Да я и до удаленки себя некомфортно чувствовал, а уж в изоляции весь этот пиздец в тысячу раз усилился.

В общем если все выше написанное про тебя, то я тебя обрадую — ни одна книга в мире тебе не поможет.

Как поступает большинство людей, когда пытаются разобраться с проблемой?

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

Тебя по-прежнему трясет, ничего не изменилось. Ты прочитал кучу говна, которая тебе никак не помогла. Встань щас и выкинь нахуй все эти книги, нехуй на них тратить время и деньги. Они не помогут тебе победить страх.

А знаешь чо помогает? А вот чего — ходи регулярно на всякие встречи, выступай, комментируй, как-то проявляй себя, высказывай свое мнение, спорь.

Чем больше у тебя будет таких встреч, тем быстрее у тебя пройдет страх.

Твоя башка просто привыкнет к ситуации общения и ты уже не будешь так сильно бояться и ссаться в штанину. Сначала будет очень страшно, потом станет похуй.

Понятно, что такие встречи отнимают много времени, но это единственный способ вернутся к нормальной жизни и стать здоровым человеком.

Кстати есть еще один вариант. Можешь напиздярится в тряпки алкашкой. Но вариант такой себе. Страх пройдет, но могут быть побочки. Советовать этот вариант не буду. Тут сам решай.

Все книги по переговорам и психологии общения, дадут тебе базовые знания и стратегические скиллы. К примеру как правильно что-то попросить, как задать вопрос, как ебнуть смешной анекдот.

Грузить наукой не буду, все что ты читаешь в книгах остается у тебя в специальном разделе мозга (неокортекс). А вот боязнь попиздеть с людьми находится в зоне эмпатии.

Эта зона появилась хуй знает когда давно, в ней заложены базовые знания, как ходить, срать, жрать. Вот и переговоры входят в эту зону.

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

Прочитав книгу «Как научится играть на гитаре», ты нихуя не научишься играть на гитаре, тебе нужна гитара и практика. Без тренировки, не разовьется мышечный навык.

Не знаю, писал ли я вторую часть, но если найду, закину!


tags: #рабочиебудни #memories

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

Вчера в посте пролетала строчка:

local0.* @log.bashdays.com:514


И тут как раз частый вопрос - чо за символ «собаки» перед названием сервера?

Магии тут нет, символ «@» означает протокол передачи UDP.

Надеюсь ты знаешь, что UDP не гарантирует доставку. Если сеть перегружена или приходят «сетевые ножницы», пакет может — проебаться.

Чтобы этого избежать, логичнее использовать TCP, в rsyslog это делается через двойную собаку.

local0.* @@log.bashdays.com:514


По итогу получаешь:

- Подтверждение доставки (сервер подтверждает приём данных).
- Повторную отправку пакетов, если они теряются.
- Сохранение порядка доставки пакетов.

Короче тут сам выбираешь что тебе важнее, либо скорость, либо надежность.

Запоминаем:

Раз «собака» = UDP
Два «собака» = TCP

Что чаще применяют?

UDP, но если логи прям критичные то TCP, нет серебряной пули, всё зависит от конкретной ситуации. Но тут речь не про это, а про «собак».

Такие дела.

tags: #linux #monitoring

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

Последний вагон. Напоминалка короче, для тех кто упустил момент или только что вышел из НГ комы.

1. Акция на LF заканчивается 12.01 (5000р 2500р), вписаться здесь.

2. Бесплатный курс по Bash от Tagd стартует 11.01, вписать здесь.

3. Завтра снова пятница.

По всем вопросам можешь писать сюда: @linuxfactorybot

Читать полностью…

Bash Days | Linux | DevOps

Такс, пора выходить из новогодней комы и включаться в работу.

При манипуляции с логами, ты можешь столкнуться с какими-то непонятными local0 – local7. Чо эт ваще такое?

Это «Фасилити»… Ладно, это что-то вроде категорий в которые можно завернуть свои логи и потом уже по ним грепать.

Суть этих категорий — не смешивать выхлоп пользовательских программ с системными логами.


Системные логи это: auth, daemon, mail, kern и т.д. Эти штуки ты можешь встретить например при настройке rsyslog конфига.

Рассмотрим пример:

import syslog

syslog.openlog(ident="BashDays", facility=syslog.LOG_LOCAL0)
syslog.syslog(syslog.LOG_INFO, "Привет из local0")


Не проверял, но суть ты поймешь.

Здесь я завернул логи приложения в категорию local0. И теперь могу открыть этот local0 и обрабатывать как мне нужно.

Например, закинуть его в эластик:

local0.* @log.bashdays.com:514


Ну или обработать локально в файл:

local0.* /var/log/local0.log


Так же можно завернуть необходимую группу приложений в эту категорию и отделить ее от системных логов.

Практика использования

local0: логи веб-сервера
local1: для docker контейнеров
local2: логи бекапов
local3: логи крон скриптов
local4–local7: резервные


Такие вот пироги. Ничо в этом сложного нет. Просто категории для изоляции, гибкости и скалируемости.

Изучай!

tags: #linux #monitoring

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

Я тут щас чет подумал — а что бы я хотел сейчас получить от Деда блядь Мороза?

Понятно дело — здоровье, но так нельзя, нужно что-то материальное.

Ну ладно, раньше я мечтал про блок жвачек «черепашки-ниндзя» те самые с карточками которые были, либо жвачки с вкладышами маленьких денег разных стран.

Потом я мечтал об электро-гитаре, даже самой уёбищной, палке-металки.

Потом я перестал делать ставки на Деда блядь Мороза и стал рвать жопу и закрывать свои базовые потребности. Жвачки, гитары и т.п.

Но сейчас? Если представить что ничего этого не было — чтобы я хотел получить на Новый Год?

Новую педальку с дисторшеном и квакалку? Очередной оффер на 500к в месяц? Палку-ебалку? Да нее…

Из материального я бы хотел получить на НГ от Деда блядь Мороза — НИХУЯ! Потому что, не нужно на кого-то надеяться и чего-то ждать.

Нужно самим делать вещи и закрывать свои потребности. Ты сам себе Дед блядь Мороз!

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

К чему это я, если ничо не радует — порадуй себя сам, будь сам Дедом блядь Морозом в своем 127.0.0.1 периметре. Порадуй себя тем, что у тебя есть.

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

Ну и вопрос, или нет… Короче напиши в комменты чтобы ты хотел получить материального на НГ и возможно это каким-то хреном сбудется. Квартиры и машины не в счет, это банально.

Всех обнял, с Наступающим 🎄

tags: #рабочиебудни

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

Злые боты, дырявый Linux — и другие страшилки года

Чем запомнился 2024-й год в кибербезе? В подкасте "Смени пароль!" обсуждаем самые громкие события и тренды: массовые сбои систем безопасности, взрывающиеся пейджеры, развал сообщества Open Source и атаки с помощью искусственного интеллекта. А также — как мы будем защищаться от фальшивых персонажей, можно ли ботам воспитывать детей, и когда наконец работа ИБ-эксперта станет такой же рутиной, как работа электрика.

Ссылка на подкаст

Подпишитесь на телеграм-канал, чтобы не пропустить анонс следующего сезона!

Читать полностью…

Bash Days | Linux | DevOps

🌟 Тест для профессионалов Linux 🌟

Ответьте на 20 вопросов и проверьте, насколько вы готовы к обучению на курсе — «Administrator Linux. Professional»

За 7 месяцев курса вы научитесь решать 3 глобальные задачи
- Освоение гибкого управления Linux-системами.
- Навыки создания и изменения RAID-массивов.
- Управление логическими томами и профессиональная работа с системными ресурсами.
- Практика написания баш-скриптов и применение методологии Infrastructure as Code.

Тест займет всего 20 минут вашего времени!

👉 ПРОЙТИ ТЕСТ — https://vk.cc/cGpnC3

💣 Пройдете тест, получите скидку на курс, и доступ к бесплатным урокам курса.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576,
www.otus.ru

Читать полностью…

Bash Days | Linux | DevOps

Что делать, если не хватает практики для работы с k8s?

👉 пойти учиться в Слёрм и систематизировать знания о работе с кластером! Тем более, что до 28 декабря сделать это можно по специальной цене.

Чему научим:
- Основам работы с K8s, системой автоматизации развертывания, масштабирования и управления приложениями в контейнерах.
- Запускать кластер, работать с базовыми абстракциями и подключать дополнительные компоненты
- Запускать приложение в кластере, понимать принципы работы сети и настраивать CI/CD пайплайн

⭐️ Курс обновлён в июле 2024

Стоимость потока:
До 28 декабря 2024 — 70 000 ₽
С 29 декабря 2024 — 90 000 ₽

Старт потока — в январе.
Забронируйте место по старой цене — оплатить можно в новом году.

Подробности — на сайте 👈

Реклама ООО «Слёрм» ИНН 3652901451

Читать полностью…

Bash Days | Linux | DevOps

Программный комплекс ALD Pro от «Группы Астра» успешно сертифицирован по второму уровню доверия ФСТЭК России.

Теперь его можно использовать в системах, обрабатывающих информацию, составляющую государственную тайну. Продукт соответствует самым строгим стандартам безопасности и обеспечивает надежную защиту данных.

🔐 Что такое ALD Pro?
Это отечественное решение, включённое в реестр российского ПО Минцифры РФ. Оно позволяет управлять учётными записями, правами доступа, обновлять ПО и настраивать системные службы, обеспечивая безопасность вашей ИТ-инфраструктуры.

💼 Почему это важно?
Сертификат был выдан после тщательных проверок, проведенных АО «НПО «Эшелон». Это служит подтверждением того, что ALD Pro отвечает всем требованиям защиты информации, установленным ФСТЭК России.

Такой апдейт безопасности является важным шагом на пути к обеспечению российских организаций продуктами высокого качества, способными заменить зарубежные аналоги.

Узнать о преимуществах подробнее, а также запросить ALD Pro на тест можно здесь.

Реклама. ООО "РусБИТех-Астра". ИНН: 7726388700. Erid:2VtzqwezUzN.

Читать полностью…

Bash Days | Linux | DevOps

Докажите, что вы крутой айтишник и спасите Новый год!
 
Гринч украл подарки и готов пойти на все, чтобы испортить жителям города праздник. Только вы сможете спасти Новый год!
 
Путешествуйте по городской карте, выполняйте задания и ищите ответы на загадки. Приготовьтесь использовать свою эрудицию, смекалку и внимательность. Вам предстоит: взломать электронный замок, отбить DDoS-атаку, разгадать IT-ребусы и решить множество других задач!
 
Спасайте Новый год, получайте подарки от Selectel и партнеров и участвуйте в большом январском розыгрыше.
 
Переходите в бот и начните спасение Нового года прямо сейчас!
 
Реклама. АО “Селектел”, ИНН: 7810962785, ERID: 2Vtzqx6GGWE

Читать полностью…

Bash Days | Linux | DevOps

Учимся разворачивать отказоустойчивые кластеры по ценам 2024 года 🔥

27 января стартует курс «Kubernetes Мега» от учебного центра Слёрм: повышайте устойчивость, безопасность и производительность своих приложений, не ломая кластеры и не роняя прод.

За 7 недель вы научитесь:
🔵переносить продукт на платформу k8s
разворачивать отказоустойчивые кластеры
🔵ускорять траблшуттинг
🔵повышать отказоустойчивость продукта
🔵разворачивать и обслуживать кластер с автоматической ротацией сертификатов, автодеплоем и правильным хранением секретов

ОБНОВИЛИ ВЕСЬ КУРС в сентябре 2024 ⭐️
- Старт 27 января
- 7 недель обучения
- 78 часов практики
- 7 встреч со спикерами

Стоимость:
▶️до 28 декабря 2024: 90 000 ₽
▶️с 1 января 2025: 110 000 ₽

Забронировать скидку или полностью оплатить обучение — на сайте 👈

Реклама ООО «Слёрм» ИНН 3652901451

Читать полностью…

Bash Days | Linux | DevOps

🎥 Вебинар: «Отказоустойчивое хранилище DRBD: настройка, управление, надежность»

Хотите защитить свои данные от сбоев и создать отказоустойчивую систему? DRBD — ваш ключ к максимальной надёжности!

Что будет на вебинаре:
- Разберём, что такое DRBD и как он работает.
- Поговорим о типах репликации данных и тонкостях настройки.
- Научимся восстанавливать систему после сбоев.

Занятие для системных администраторов, инженеров DevOps и специалистов по инфраструктуре.

⭐️ Спикер Андрей Буранов — системный администратор в VK, входит в топ-3 лучших преподавателей образовательных порталов.

🚀 Урок проходит в преддверии старта курса «Инфраструктура высоконагруженных систем». Участники вебинара получат скидку на обучение!

⏰ Встречаемся 26 декабря в 18:00 мск.

👉 Для участия зарегистрируйтесь: https://vk.cc/cGjQBV

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Bash Days | Linux | DevOps

Что в рот влезло, то и полезно

тыгыдык вайл инфинити

while true; do echo -e "\a"; sleep 0.5; done


tags: #tricks #bash

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

K2 Cloud выкатил кастомные реакции на Хабре!

Теперь можно выражать эмоции от статей. Для этого пройди квиз: выбери одну из ИТ-профессий и проведи миграцию в облако. В конце и реакции разблокируешь, и в розыгрыше примешь участие — K2 Cloud дарит новогодние мистери боксы и другие призы.

Квиз тут

Читать полностью…

Bash Days | Linux | DevOps

Тут как-то ребята интересовались как написать свою оболочку, что-то вроде своего Баш-беляш. Ну дак вот.

Нашел для тебя минималистичные исходники на «сиськах».

Проект называется «psh» и он сейчас реально пока очень маленький.

А это значит, тебе не составит труда просмотреть 10 сорцов и на их основе создать что-то своё. Ну конечно если ты немного шаришь за «сиськи». Хотя там и так всё на поверхности.

Если ты студент, можешь хорошо выебнуться своей длинной писькой перед преподами. И может тебя по телеку покажут, как когда-то создателя «BolgenOS» или антивируса Бабушкина.


➡️ Исходники тут / Демка тут

ps: А есть еще такой проект: mysh

tags: #utilites

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

💪 Кластеры для профи: прокачай навыки и стань экспертом инфраструктуры!

Думаешь, что репликация и кластеризация — одно и то же?

На открытом уроке «Percona XtraDB Cluster (PXC): знакомство и настройка» 14 января в 19:00 мск разложим всё по полочкам, запустим кластер и покажем, как он работает на реальных примерах.

📝 Что будет на вебинаре:
- разберём архитектурные различия PXC и репликации;
- запустим и настроим полноценный рабочий кластер.

Урок для системных администраторов и DBA, которые хотят освоить продвинутые инструменты и работать с высоконагруженными системами.

⭐️ Спикер Николай Лавлинский — опытный разработчик, руководитель и преподаватель, кандидат экономических наук.

🚀 Вебинар проходит в преддверии старта курса «Инфраструктура высоконагруженных систем». Участникам — скидка на обучение!

👉 Регистрация для участия: https://vk.cc/cH4zlG

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Bash Days | Linux | DevOps

🐧 Что общего между Linux и Санта Клаусом?

Они оба работают за кадром.Ты не видишь, как Санта доставляет подарки или Linux поддерживает сервера, но без них магия исчезает.

Санта Клаусом стать не получится, но магию Linux вы точно освоите на бесплатном практикуме Linux от Rebrain. Неважно, кто вы, опытный инженер или новичок: вас ждут задания разной сложности, которые помогут понять свой уровень и определить дальнейший путь в освоении Linux.

🔹 Что входит в программу:

подключение к виртуальной машине по SSH и работа с ней: создание файлов, запись данных
установка веб-серверов nginx и Apache
работа с конфигурацией установленного ПО, проверка статуса программ

↘️ Начните практикум бесплатно: https://clck.ru/3FTPoo

Реклама. ООО "РЕБРЕИН". ИНН 7727409582 erid: 2Vtzqxh3hAD

Читать полностью…

Bash Days | Linux | DevOps

Какие проблемы решает Observability?

▶️Выявление аномалий в работе кластера
▶️Мониторинг сетевой активности и предотвращение сбоев
▶️Обеспечение соответствия политик безопасности
▶️Снижение времени простоя за счет быстрого устранения инцидентов
▶️Упрощение эксплуатации сложных систем с минимальными затратами

16 января в 19:00 приглашаем вас на бесплатный вебинар «Observability и k8s: полный контроль над инфраструктурой и сервисами» от учебного центра Слёрм.

Рассмотрим внутренние инструменты k8s, связанные с безопасностью и отладкой работы кластера
Так же посмотрим на инструменты, полезные для понимания работы больших систем без необходимости внедрения большого кол-ва изменений в сервисы, написанные на разных языках и фреймворках

Эксперты встречи:
🔴Виталий Лихачёв, SRE в крупном голландском тревелтехе
🔴Кирилл Борисов, SRE в VK

Когда: 16 января в 19:00 мск
Регистрация на вебинарчерез бота 👈👈

Реклама ООО «Слёрм» ИНН 3652901451

Читать полностью…

Bash Days | Linux | DevOps

Нашел на просторах пиздатый генератор реверс-шелов, разнообразие способов просто зашкаливает.

Мастхевная штука для пентестеров и тех, кто подобными штуками увлекается. Ну и чисто ради любопытства можно просто позырить.

Забирай, пригодится: https://www.revshells.com/

По реверс-шелам у меня есть отдельный пост с подробным мануалом.


🎄 Ну и еще раз с Наступающим! Нарезали салатиков?

tags: #utilites #linux #security

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

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

Короче спасибо и с наступающим! Здоровья, тебе и твоим близким, всё остальное — хуйня!

Как сказал Дима в @gitgate — Личная благодарность всем кто участвовал и помогал! Вы все молодцы и красавчики и красавицы!

По мере возможностей в каникулы буду подгонять годноту, но ничего не обещаю, рекламных интеграций вроде нет, максимум про Linux Factory буду загонять, шоб ты акцию не просрал и не ждал майских, не обессудь.

С Наступающим ребят, всего тебе самого хорошего, искренне! 🥳 ❤️ С уважением ко всем, Шубин Роман Олегович

Кстати самый топовый пост Not again за год тут

И еще мне Selectel прислал всетаки НГ коробочку, моё почтение, зря я ныл в чатике, отдельно потом напишу покажу. Спасибо!

Читать полностью…

Bash Days | Linux | DevOps

Просто напомню. Для получения уникальных значений файла служит программа uniq. Беда в том, что она работает только с отсортированными данными.

🔤🔤🔥🔤🔤🔤🔤

sort "filename"|uniq


Я уже также приводил конструкцию на awk которая извлекает из файла уникальные значения, но без требования сортировки:

awk '!a[$0]++' $RF


Она основана на использовании ассоциативных массивов, у которых ключ (текстовый индекс) всегда уникален.

Алгоритм описан здесь.


Я подумал, что на bash такое тоже можно реализовать, ведь в bash тоже есть ассоциативные массивы. Да, конечно не так изящно, и уж, конечно, не быстро. Но зато чистый bash. Но может кому-то пригодится. Приведу сразу все примеры:


#!/bin/bash

clear
declare RF="./rnd_file.txt"
:> $RF # создали файл 10000 значений
# в диапазоне 0-4
for i in {1..10000};do
echo $(($SRANDOM%5))>>$RF
done

echo '#results'
echo '#sort|uniq'
sort $RF|uniq

echo '#uniq on AWK'
awk '!a[$0]++' $RF

echo '#uniq on #BASH'
declare -A A=
cat $RF |
while read -e rec;do
((A["$rec"]++)) || echo "$rec"
done

#results
#sort|uniq
#0
#1
#2
#3
#4
#uniq on AWK
#1
#2
#4
#0
#3
#uniq on #BASH
#1
#2
#4
#0
#3


Напомню, что алгоритм на awk/bash держит весь массив уникальных значений в памяти, поэтому при больших файлах ее может потребоваться много. Хотя при реализации на bash, Вы скорее умрете от старости, чем закончится память :-)

tags: #bash #linux

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

В каждом из нас живет «Топографический кретин», это такое общее понятие. Например, когда путаешь лево и право или коммит разработчика с куском гавна.

Меня это коснулось с командами chmod и chown. Ну вот блядь так получилось. Как только нужно права поменять или атрибуты поставить — хуй там плавал, начинаю троить и перепроверять себя в гугле.

На помощь пришли «якоря». Это что-то из психологии или НЛП, точно уже не помню, не скажу.

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

Аналогичный якорь получился установить с чмодами и човнами. Но уже без вопросов, а с осознания того что означают эти слова.

chown = change owner
chmod = change mode


В первом случае ключевое слово: Owner (владелец), английский я знаю, поэтому якорюсь на английское «овнер».

Овнер значит работа с правами. (часто слышал от пиэмов — кто сука овнер у этой задачи?)

Соответственно для второго, ключевое слово: Mode (режим доступа), якорюсь конкретно на «моде».

У этого файла должны быть «модные» права доступа.

Такое вот наглядное применение «психологических» приёмчиков в айти. Теперь я эти команды никогда не путаю и даже якоря уже не нужны, довел руки до мышечной памяти.

Кстати с ключами по tar аналогично, в чатике как-то обсуждали эту тему. Илья закинул якорей типа:

czf - create ze file
xzf - eXtract ze file


Такие дела. Любой кретинизм можно забагфиксить, хоть и костылями, но работать будет.

А у тебя какой «кретинизм»? На чем троишь? Пиши в комменты, попиздим.

tags: #linux #рабочиебудни

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

Так ребята, писал давненько скрипт одному упоротому безопаснику на заводе.

Задача стояла такая: Я работаю в офисе и порой хожу посрать, но кругом хакеры, ноут с собой постоянно таскать не могу, он прибит гвоздями, а терпеть не вариант.

Ну ты понял. Тип захотел, чтобы его ноут сфоткал ебальник коллеги, который возможно вынашивает коварный план. И однажды попытается взломать его пароль из 128 символов.

Сказано сделано, дополнительно прикрутил фичу с оправкой фотки в телегу.

Публикую как есть, оптимизировать задачи не было, нужно было сделать вчера.


#!/bin/bash

# Херачим переменные
TOKEN="BOT_TOKEN"
CHAT_ID="CHAT_ID"
USER=$(whoami)
TIMESTAMP=$(date '+%Y-%m-%d_%H-%M-%S')
IMAGE_PATH="/tmp/ebalo-${USER}-${TIMESTAMP}.png"

# Делаем фотку с вебки
if ffmpeg -y -t 1 -f video4linux2 -s 640x480 -r 30 -i /dev/video0 -f image2 "$IMAGE_PATH"; then
echo "✅ Ебальник успешно захвачен: $IMAGE_PATH"
else
echo "❌ Ошибка: Не удалось захватить ебальник"
exit 1
fi

# Пулим фотку в телегу
RESPONSE=$(curl -s -X POST "https://api.telegram.org/bot$TOKEN/sendPhoto" \
-F chat_id="$CHAT_ID" \
-F photo="@$IMAGE_PATH" \
-F caption="🚨 Хакер пойман, лови ебальник: $USER на $(hostname)")

# Проверяем респонс
if echo "$RESPONSE" | grep -q '"ok":true'; then
echo "📨 Ебальник успешно отправлен в Telegram"
else
echo "❌ Ошибка: Не удалось отправить ебальник в Telegram"
echo "Ответ Telegram API: $RESPONSE"
fi

# Подчищаем за собой
rm -f "$IMAGE_PATH"


Делаем скрипт исполняемым (иксим через чмод), кидаем этот скрипт например сюда: /usr/local/bin/

Добавляем строчку в /etc/pam.d/common-auth

auth optional pam_exec.so /usr/local/bin/ebalo_send.sh


optional = скрипт не блокирует аутентификацию, даже если выплюнет ошибку

Если хочешь чтобы скрипт был обязателен для выполнения, замени optional на required.

Работает так:

- При неудачной аутентификации PAM вызывает скрипт ebalo_send.sh

- Скрипт делает снимок ебальника с камеры и отправляет его в телегу

Да, не забудь проверить что у PAM есть разрешение на доступ к /dev/video0 и на выполнение скрипта.


Такие дела. Бери на вооружение, может где-то и пригодится.

Ну и свои варианты кидай в комменты, всяко чото интересное всплывет.

tags: #linux #security #bash

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

Увидал сегодня у коллеги такое:

- name: Установка глобального PATH для Linux
hosts: all
become: true
tasks:
- name: Создать скрипт для глобального PATH
copy:
dest: /etc/profile.d/custom_path.sh
content: |
export PATH="/usr/bin:/bin"
mode: '0644'
notify: Reload profile

handlers:
- name: Reload profile
command: source /etc/profile


это кусок ансибла если чо

Что это за ебать костыль и нахуя?


А это оказывается регламент такой внутренний, какие-то требования, которые должны быть применены при настройке новых серверов. И это только 1% из этого плейбука, показать весь по объективным причинам не могу.

Короче суть — создается чистая переменная PATH, на глобальном уровне.

Обычно это делается для повышения безопасности или для обеспечения предсказуемого поведения скриптов.

Определяются только базовые пути.

Безопасность:

- Уменьшается риск выполнения вредоносного кода из непредсказуемых каталогов.
- Снижается вероятность атаки типа Path Hijacking, когда злоумышленник подсовывает вредоносные программы в каталоги, находящиеся в начале PATH.

Предсказуемость:

- Скрипты и процессы используют конкретные версии утилит, а не случайные исполняемые файлы из пользовательских каталогов.

Чистая среда для скриптов:

- В автоматизированных сценариях, например, в CI/CD, чистая PATH помогает избежать конфликтов из-за пользовательских переменных окружения.

Системное администрирование:

- При диагностике или отладке минимальный PATH позволяет исключить влияние пользовательских и нестандартных путей.

Например:

#!/bin/bash

export PATH=/usr/bin:/bin
if ! command -v curl &> /dev/null; then
echo "curl не установлен или не доступен в чистом PATH"
exit 1
fi

echo "curl доступен, продолжаем..."


Такой подход гарантирует, что скрипт будет использовать только проверенные исполняемые файлы из системных каталогов.

Тема конечно больше про безопасность и в обычной жизни встречается крайне редко, всем насрать на Path Hijacking.

Пусть за это специально обученные люди отвечают. У нас лапки.

tags: #linux

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

В LF ребята частенько впадают в ступор, пытаются запушить в мастер, а оно такое — эй дядя, иди на хуй, такой ветки нет!

Мануалы связанные с этим есть, а ветки нет?

В смысле блядь нет? Всю жизнь была, а теперь нет?

Притащу сюда, раз из 10 человек 2е обязательно поинтересуются. Буду ссылку на пост давать, оптимизация процессов.


Это давнишняя история. Ёбнутые дядьки с загнивающего запада кукухой поехали и такие — мы потомки рабов, негоже нас оскорблядь!

А в чем оскорбление?

Обида на слово «master»

Это можно трактовать как — «хозяин». А если ты еще и выгоревший в угли разработчик, то тебе пиздец наверное обидно.

Ты типа slave (раб), а целая ветка в гите — «хозяин».

Отправляйся на плантацию в IDE и ебашь больше кода, а затем приноси его «хозяину»!


Ну короче ты понял, господа ёбу дали, лишь бы не работать.

Ничо против не имею, у каждого свои загоны.

Теперь в лучшем случае гит ветка по умолчанию называется — «main».

А какая ветка у тебя основная? У меня «master», ебал я эти качели.

Подробнее и душераздирающе можно почитать тут (на русском), особенно комменты доставляют удовольствие.

tags: #рабочиебудни

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

Привет чокаво.

Ребенок щас вопрос задал — пап, а в чем разница? Этож одно и тоже?

source script.sh 
. script.sh
./script.sh


В первых двух случаях, да это одно и тоже. Source и точка (как макдак блядь), это идентичные команды. Точка сделана для краткости.

Команда source и точка, используется для выполнения команд из файла в текущем сеансе оболочки.

VAR="bashdays"

source script.sh
. script.sh


Передаем в скрипт переменную VAR, по итогу если в скрипте сделать echo $VAR, то на экран выведется слово — bashdays.

Если же сделать так:

VAR="bashdays"

./script.sh


Нихуя не выведется и даже не запустится если нет атрибута +x.

Потому, что в этом случае запустится новый процесс, который не видит локальные переменные текущей оболочки, если они не были экспортированы.

Чтобы это заработало нужно сделать:

export VAR="bashdays"
./script.sh


Ну и захуячить chmod +x script.sh, тогда все взлетит.

Ааааа, еще в скрипте тебе нужно обязательно вставить shebang.


В случае с source и точка, эти пиздострадания не нужны. Не нужно ничего экспортировать, выставлять +x и добавлять shebang.

➡️ source script.sh и . script.sh

Новый процесс: Нет
Изменяет окружение текущей оболочки: Да
Требует shebang: Нет
Требует права на выполнение: Нет

➡️ ./script.sh

Новый процесс: Да
Изменяет окружение текущей оболочки: Нет
Требует shebang: Да
Требует права на выполнение: Да

Когда это и где применять?

- Используем source и точку для скриптов, которые должны изменить текущее окружение.

- Используем ./script.sh для независимого выполнения скрипта.

Ничего больше нового не скажу. Теперь и ты это знаешь.

tags: #linux #bash

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

В linux существует куча всяких оболочек, я имею в виду не bash/zsh, а конкретно их типы: login, non-login, interactive, restricted и т.п.

Очередной зоопарк с которым особо никто не разбирается. Давай закроем эту дырку.

Interactive Shell — ну тут ежу понятно, ты вводишь в терминале буковки, а оно тебе в ответ что-то выдаёт. Интерактивно? Конечно! По умолчанию именно этот тип стартует при запуске терминала.

На этом можно и закончить, но хуй там плавал, поехали дальше.

Non-Interactive — Логично? Логично! Этот тип используется в основном для выполнения скриптов или задач в кроне.

Когда ты запускаешь скрипт: ./bashdays.sh, интерактивная оболочка смотрит в скрипт и такая — ага, вижу shebang (#!/bin/sh) Запускаю интерпретатор sh.

Это и будет считаться не интерактивной оболочкой, все запустится где-то там внутри, в кишках.

Что интересно, при запуске в такой оболочке все твои настройки в .profile/.bashrc игнорируются.


Почему? Из-за совместимости, вдруг ты в .bashrc нахуячил своих переменных и команд, а потом решил этот скрипт перенести на другую машину где нет этих переменных и команд. Такие дела.

И в большинстве случаев здесь кроется проблема с выполнением скрипта из крона. Ручками запускаешь — работает. А из крона — нет! Потому что проигнорированы твои поделки в .bashrc и profile.

Как вариант, пиши #!/bin/bash или в кроне явно указывай как запускать твой скрипт: bash script.sh

Login = Запускается при входе в систему (например через ssh). Оболочка входа перечитывает файлы: /etc/profile, ~/.bash_profile, ~/.bash_login, ~/.profile.

Чтобы определить текущий тип оболочки, запусти команду:

echo $0


Если вывод начинается со знака «-» это и есть login shell.

Ну или так:

[[ $- == *i* ]] && echo "Interactive" || echo "Non-Interactive"


Non-Login = запускается из существующей сессии (например, внутри терминала из GUI). То есть не требуется авторизация. Не читает ~/.bash_profile вместо этого использует ~/.bashrc.

Нипонятно… давай на примере:

1. Ты приходишь домой с работы.
2. Зашел через парадную дверь Login Shell.
3. Снимаешь трусы, всё происходит по определённым правилам (файл .bash_profile).

Что происходит:

- Ты готов к долгому пребыванию дома.
- Тебя «встречают» файлы конфигурации входа (.bash_profile).

4. Ты внутри дома, и открываешь окно, чтобы покурить.
5. Non-Login Shell = это как открыть окно внутри дома.
6. Ты не снимаешь трусы заново — ты уже дома!

Файлы .bash_profile не используются, потому что ты уже «внутри». Вместо этого, ты используешь «внутренние» правила дома (это как .bashrc).

Login Shell: Зашёл в дом через дверь — загружается .bash_profile.

Non-Login Shell: Открыл окно, уже находясь в доме — загружается .bashrc.

Restricted Shell = ограниченная оболочка, кастрированные команды, закрученные гайки. Обычно делают для безопасности, чтобы криворукий юзер ничо не сломал.

Возможно ты слышал про rbash, это оно и есть.


System Shell = системная оболочка, используется системой для выполнения фоновых задач и скриптов инициализации (init, systemd). Зачастую это /bin/sh.

Subshell = Подоболочка, создается при выполнении скрипта или команд в скобках () или с помощью bash -c. Подоболочка наследует переменные родительской оболочки, но не влияет на них после завершения.

Например: (cd /tmp && ls)

Есть еще Interactive Login, Interactive Non-Login.

1. Интерактивная оболочка, которая требует входа пользователя (например, через SSH).

2. Интерактивная оболочка, открытая из GUI терминала, но не требует аутентификации пользователя.

➡️ Почитать про shebang
➡️ Почитать про файлы .profile/bashrc и т.п.



Да и вроде всё, закончился зоопарк, по крайней мере про другие типа оболочек я не слышал, либо забыл нахуй.

Напиши в комменты если что-то можно сюда еще приплести, будет интересно.


Увидимся! Шестидневная рабочая неделька обещает быть томной.

tags: #linux

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

Здрасти. Сегодня опять про шаблоны и создание нового пользователя. В прошлом посте я показал skel. Но есть еще одна хуйня, где можно тонко это поднастроить.

Находится оно здесь: /etc/default/useradd

И выглядит это так:

GROUP=100
HOME=/home
INACTIVE=30
EXPIRE=2024-12-31
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
UMASK=077
USERGROUPS_ENAB=yes
PASS_MAX_DAYS=90
PASS_MIN_DAYS=1
PASS_WARN_AGE=7


То есть ты заранее в этом файле прописываешь необходимые параметры, и затем через useradd оно будет по умолчанию подхватываться. Типа дефолтного шаблона для нового юзера.

Все параметры описывать не буду, все логично. Разберем только неочевидный GROUP.

GROUP = указывает GID (ID группы) по умолчанию для новой учетной записи.

И чо у всех юзеров будет GID = 100? Неа!

Этот параметр будет работать, только в случае если в файле /etc/login.defs выставлено USERGROUPS_ENAB=no. Во всех остальных случаях он будет проигнорирован.

Заметь что в /etc/default/useradd можешь реврайтить USERGROUPS_ENAB и не лезть в /etc/login.defs.

По умолчанию USERGROUPS_ENAB=yes. В этом случае для каждого пользователя создаётся его собственная группа с тем же именем, что и имя пользователя. И у этой группы будет уникальный GID.

Например, для пользователя bashdays создаётся группа bashdays с GID 1000. Для следующего будет 1001 и так далее.

Короче значение GROUP=100 применяется только тогда, когда пользовательская группа не создаётся автоматически.

Такие дела, бери на вооружение.

tags: #linux

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

Собирал docker контейнер и чет меня лог сборки прям напряг.

То есть то, что отмечено на скрине красным прямоугольником, это область которая прокручивается. И предыдущий текст теряется.

Ну хуйня же! — подумал я и пошел копать.

А всё, как обычно, просто, в строке сборке делаем так:

docker build -t "setuppython" --progress=plain .


Устанавливаем параметр progress=plain и радуемся. Лог сборки прекращает ротироваться и весь мусор теперь на экране.

Как альтернатива, можно сделать так:

export BUILDKIT_PROGRESS=plain


И теперь не нужно подставлять в каждую команду сборки этот параметр.

progress может быть = autoplain, и tty

tty вывод будет «более красивым» для интерактивных терминалов (то есть он будет перезаписываться).

plain будет просто выводить все. 

auto (по умолчанию) будет предпринята попытка определить, какой из двух вариантов больше подходит для текущей среды.

Такие дела. Изучай.

tags: #docker #devops

🔔 @bashdays➡️ @gitgate

Читать полностью…
Subscribe to a channel