uz
Feedback
ПиксельСинтез

ПиксельСинтез

Kanalga Telegram’da o‘tish

Самобытно про разработку, devops, linux, скрипты, тестирование, сисадминство, техдирство, пиэмство и за айтишную жизу.

Ko'proq ko'rsatish
1 813
Obunachilar
Ma'lumot yo'q24 soatlar
-27 kun
-530 kun

Ma'lumot yuklanmoqda...

O'xshash kanallar
Ma'lumot yo'q
Muammo bormi? Iltimos, sahifani yangilang yoki bizning qo'llab-quvvatlash boshqaruvchimizga murojaat qiling>.
Taglar buluti
Ma'lumot yo'q
Muammo bormi? Iltimos, sahifani yangilang yoki bizning qo'llab-quvvatlash boshqaruvchimizga murojaat qiling>.
Kirish va chiqish esdaliklari
---
---
---
---
---
---
Obunachilarni jalb qilish
Iyun '25
Iyun '250
0 kanalda
May '250
0 kanalda
Get PRO
Aprel '250
0 kanalda
Get PRO
Mart '25
+1
1 kanalda
Get PRO
Fevral '25
+1
0 kanalda
Get PRO
Yanvar '25
+1
0 kanalda
Get PRO
Dekabr '24
+1
1 kanalda
Get PRO
Noyabr '240
0 kanalda
Get PRO
Oktabr '24
+1
0 kanalda
Get PRO
Sentabr '24
+2
0 kanalda
Get PRO
Avgust '24
+3 905
1 kanalda
Get PRO
Iyul '240
0 kanalda
Get PRO
Iyun '24
+657
0 kanalda
Get PRO
May '24
+693
0 kanalda
Get PRO
Aprel '24
+3
1 kanalda
Get PRO
Mart '24
+6 450
221 kanalda
Sana
Obunachilarni jalb qilish
Esdaliklar
Kanallar
17 Iyun0
16 Iyun0
15 Iyun0
14 Iyun0
13 Iyun0
12 Iyun0
11 Iyun0
10 Iyun0
09 Iyun0
08 Iyun0
07 Iyun0
06 Iyun0
05 Iyun0
04 Iyun0
03 Iyun0
02 Iyun0
01 Iyun0
Kanal postlari
Привет друзья, наш товарищ Sf1nk5 подготовил внушительную статью про CrowdSec. За что ему объявлена благодарность.
CrowdSec — это система защиты от кибератак, которая использует анализ поведения и коллективную защиту. Она похожа на Fail2Ban, но более мощная и современная.
ㅤ Сюда она естественно не влезла, да и с форматированием тут беда, поэтому пришлось поднять сопроводительный блог для таких целей. Так что запасаемся кофеём/пивком и камон 👇 ➡️ Всё что нужно знать про CrowdSec tags: #security — 🔔 ➡️

2
Нашел на просторах пиздатый генератор реверс-шелов, разнообразие способов просто зашкаливает. ㅤ Мастхевная штука для пентесте
Нашел на просторах пиздатый генератор реверс-шелов, разнообразие способов просто зашкаливает. ㅤ Мастхевная штука для пентестеров и тех, кто подобными штуками увлекается. Ну и чисто ради любопытства можно просто позырить. Забирай, пригодится: https://www.revshells.com/ По реверс-шелам у меня есть отдельный пост с подробным мануалом. 🎄 Ну и еще раз с Наступающим! Нарезали салатиков? tags: #utilites #linux #security — 🔔 ➡️
2
3
Я тут щас чет подумал — а что бы я хотел сейчас получить от Деда блядь Мороза? ㅤ Понятно дело — здоровье, но так нельзя, нужно что-то материальное. Ну ладно, раньше я мечтал про блок жвачек «черепашки-ниндзя» те самые с карточками которые были, либо жвачки с вкладышами маленьких денег разных стран. Потом я мечтал об электро-гитаре, даже самой уёбищной, палке-металки. Потом я перестал делать ставки на Деда блядь Мороза и стал рвать жопу и закрывать свои базовые потребности. Жвачки, гитары и т.п. Но сейчас? Если представить что ничего этого не было — чтобы я хотел получить на Новый Год? Новую педальку с дисторшеном и квакалку? Очередной оффер на 500к в месяц? Палку-ебалку? Да нее… Из материального я бы хотел получить на НГ от Деда блядь Мороза — НИХУЯ! Потому что, не нужно на кого-то надеяться и чего-то ждать. Нужно самим делать вещи и закрывать свои потребности. Ты сам себе Дед блядь Мороз! Сказка с дедом отличная, возможно работает на мажорах у которых всё уже с рождения готово и хуй во рту, но для рядовых посетителей этого мира эта сказка работает наоборот. К чему это я, если ничо не радует — порадуй себя сам, будь сам Дедом блядь Морозом в своем 127.0.0.1 периметре. Порадуй себя тем, что у тебя есть. Я хуй знает зачем это написал, просто реально не знаю чего бы я хотел чтобы мне насрали положи под елочку. Всёж есть, кроме здоровья. Ну и вопрос, или нет… Короче напиши в комменты чтобы ты хотел получить материального на НГ и возможно это каким-то хреном сбудется. Квартиры и машины не в счет, это банально. Всех обнял, с Наступающим 🎄 tags: #рабочиебудни — 🔔 ➡️
3
4
А мы с вами ребят могучие! Итоги года подводить такое себе, но скажу без хуйни — спасибо тебе что читаешь, делишься своим мне
А мы с вами ребят могучие! Итоги года подводить такое себе, но скажу без хуйни — спасибо тебе что читаешь, делишься своим мнением в чатике да и вообще. Без тебя ничего бы не получилось. Короче спасибо и с наступающим! Здоровья, тебе и твоим близким, всё остальное — хуйня! Как сказал Дима в — Личная благодарность всем кто участвовал и помогал! Вы все молодцы и красавчики и красавицы! По мере возможностей в каникулы буду подгонять годноту, но ничего не обещаю, рекламных интеграций вроде нет, максимум про Linux Factory буду загонять, шоб ты акцию не просрал и не ждал майских, не обессудь. С Наступающим ребят, всего тебе самого хорошего, искренне! 🥳 ❤️ С уважением ко всем, Шубин Роман Олегович Кстати самый топовый пост Not again за год тут И еще мне Selectel прислал всетаки НГ коробочку, моё почтение, зря я ныл в чатике, отдельно потом напишу покажу. Спасибо!
3
5
Просто напомню. Для получения уникальных значений файла служит программа 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 — 🔔 ➡️
2
6
В каждом из нас живет «Топографический кретин», это такое общее понятие. Например, когда путаешь лево и право или коммит разработчика с куском гавна. Меня это коснулось с командами chmod и chown. Ну вот блядь так получилось. Как только нужно права поменять или атрибуты поставить — хуй там плавал, начинаю троить и перепроверять себя в гугле. ㅤ На помощь пришли «якоря». Это что-то из психологии или НЛП, точно уже не помню, не скажу. Кароче когда начинаешь троить, на примере с ложкой, задаёшь себе вопрос — ты какой рукой жопу вытираешь? Вот та рука у тебя Правая. Ну а если ты левша, соответственно ревёрсим. Аналогичный якорь получился установить с чмодами и човнами. Но уже без вопросов, а с осознания того что означают эти слова. chown = change owner chmod = change mode В первом случае ключевое слово: Owner (владелец), английский я знаю, поэтому якорюсь на английское «овнер». Овнер значит работа с правами. (часто слышал от пиэмов — кто сука овнер у этой задачи?) Соответственно для второго, ключевое слово: Mode (режим доступа), якорюсь конкретно на «моде». У этого файла должны быть «модные» права доступа. Такое вот наглядное применение «психологических» приёмчиков в айти. Теперь я эти команды никогда не путаю и даже якоря уже не нужны, довел руки до мышечной памяти. Кстати с ключами по tar аналогично, в чатике как-то обсуждали эту тему. Илья закинул якорей типа: czf - create ze file xzf - eXtract ze file Такие дела. Любой кретинизм можно забагфиксить, хоть и костылями, но работать будет. А у тебя какой «кретинизм»? На чем троишь? Пиши в комменты, попиздим. tags: #linux #рабочиебудни — 🔔 ➡️
1
7
Так ребята, писал давненько скрипт одному упоротому безопаснику на заводе. Задача стояла такая: Я работаю в офисе и порой хожу посрать, но кругом хакеры, ноут с собой постоянно таскать не могу, он прибит гвоздями, а терпеть не вариант. ㅤ Ну ты понял. Тип захотел, чтобы его ноут сфоткал ебальник коллеги, который возможно вынашивает коварный план. И однажды попытается взломать его пароль из 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 — 🔔 ➡️
3
8
Программный комплекс ALD Pro от «Группы Астра» успешно сертифицирован по второму уровню доверия ФСТЭК России. Теперь его можн
Программный комплекс ALD Pro от «Группы Астра» успешно сертифицирован по второму уровню доверия ФСТЭК России. Теперь его можно использовать в системах, обрабатывающих информацию, составляющую государственную тайну. Продукт соответствует самым строгим стандартам безопасности и обеспечивает надежную защиту данных. 🔐 Что такое ALD Pro? Это отечественное решение, включённое в реестр российского ПО Минцифры РФ. Оно позволяет управлять учётными записями, правами доступа, обновлять ПО и настраивать системные службы, обеспечивая безопасность вашей ИТ-инфраструктуры. 💼 Почему это важно? Сертификат был выдан после тщательных проверок, проведенных АО «НПО «Эшелон». Это служит подтверждением того, что ALD Pro отвечает всем требованиям защиты информации, установленным ФСТЭК России. Такой апдейт безопасности является важным шагом на пути к обеспечению российских организаций продуктами высокого качества, способными заменить зарубежные аналоги. Узнать о преимуществах подробнее, а также запросить ALD Pro на тест можно...
2
9
Увидал сегодня у коллеги такое: - 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 — 🔔 ➡️
2
10
В LF ребята частенько впадают в ступор, пытаются запушить в мастер, а оно такое — эй дядя, иди на хуй, такой ветки нет! Мануалы связанные с этим есть, а ветки нет? ㅤ В смысле блядь нет? Всю жизнь была, а теперь нет? Притащу сюда, раз из 10 человек 2е обязательно поинтересуются. Буду ссылку на пост давать, оптимизация процессов. Это давнишняя история. Ёбнутые дядьки с загнивающего запада кукухой поехали и такие — мы потомки рабов, негоже нас оскорблядь! А в чем оскорбление? Обида на слово «master» Это можно трактовать как — «хозяин». А если ты еще и выгоревший в угли разработчик, то тебе пиздец наверное обидно. Ты типа slave (раб), а целая ветка в гите — «хозяин». Отправляйся на плантацию в IDE и ебашь больше кода, а затем приноси его «хозяину»! Ну короче ты понял, господа ёбу дали, лишь бы не работать. Ничо против не имею, у каждого свои загоны. Теперь в лучшем случае гит ветка по умолчанию называется — «main». А какая ветка у тебя основная? У меня «master», ебал я эти качели. Подробнее и душераздирающе можно почитать тут (на русском), особенно комменты доставляют удовольствие. tags: #рабочиебудни — 🔔 ➡️
1
11
Привет чокаво. Ребенок щас вопрос задал — пап, а в чем разница? Этож одно и тоже? 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 — 🔔 ➡️
2
12
В 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 — 🔔 ➡️
3
13
Что в рот влезло, то и полезно тыгыдык вайл инфинити while true; do echo -e "\a"; sleep 0.5; done tags: #tricks #bash — 🔔 ➡️
4
14
Здрасти. Сегодня опять про шаблоны и создание нового пользователя. В прошлом посте я показал 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 — 🔔 ➡️
3
15
Собирал docker контейнер и чет меня лог сборки прям напряг. То есть то, что отмечено на скрине красным прямоугольником, это о
Собирал docker контейнер и чет меня лог сборки прям напряг. То есть то, что отмечено на скрине красным прямоугольником, это область которая прокручивается. И предыдущий текст теряется. ㅤ Ну хуйня же! — подумал я и пошел копать. А всё, как обычно, просто, в строке сборке делаем так: docker build -t "setuppython" --progress=plain . Устанавливаем параметр progress=plain и радуемся. Лог сборки прекращает ротироваться и весь мусор теперь на экране. Как альтернатива, можно сделать так: export BUILDKIT_PROGRESS=plain И теперь не нужно подставлять в каждую команду сборки этот параметр. progress может быть = auto, plain, и tty tty вывод будет «более красивым» для интерактивных терминалов (то есть он будет перезаписываться). plain будет просто выводить все.  auto (по умолчанию) будет предпринята попытка определить, какой из двух вариантов больше подходит для текущей среды. Такие дела. Изучай. tags: #docker #devops — 🔔 ➡️
6
16
В bash есть переменная IFS, отвечающая за разделитель полей при чтении stdin, но нет переменной OFS - для выходного разделителя полей. 🔤🔤🔥🔤🔤🔤🔤 Или есть? Для преобразования можно использовать переменную $* в кавычках. ㅤ Генерим CSV (comma separated value) #!/bin/bash IFS=",$IFS" # добавили запятую set 1 2 3 4 "5 6" 7 # установили параметры echo ' $* ='$* echo '"$*"='"$*" Обычно IFS содержит символы пробел, табуляция, перевод строки. Если использовать "$*" (в кавычках обязательно), то в качестве разделителя используется первый символ IFS. Будьте внимательны, команда set устанавливает параметры командной строки текущего экземпляра bash ($1...$N изменятся). tags: #bash #linux — 🔔 ➡️
4
17
Отлаживал сегодня багу связанную с правами доступа. В суть произошедшего вникать не будем. Главное, что багу помогла решить утилита — namei. Устанавливать не нужно, идет в коробке. Утилита namei — разбивает путь до папки/файла на составляющие и выводит права доступа для каждой из них. Из этого нихуя не понятно, давай просмотрим на практике. ㅤ У меня php работает под юзером bashdays. Но при открытии админки, нихуя не работает. Проверяю путь до админки: namei -l /var/www/bashdays/htdocs/wp-admin/index.php f: /var/www/bashdays/htdocs/wp-admin/index.php drwxr-xr-x root root / drwxr-xr-x root root var drwxr-xr-x bashdays bashdays www drwxr-xr-x bashdays bashdays bashdays drwx--x--x bashdays bashdays htdocs drwx------ root root wp-admin -rw-r--r-- bashdays bashdays index.php Хм… и вижу, что с правами каталога wp-admin что-то совсем не так. Но почему не использовать ls -la? ls -la /var/www/bashdays/htdocs/wp-admin/index.php -rw-r--r-- bashdays bashdays /var/www/bashdays/htdocs/wp-admin/index.php Вот и ответ. Ключи для namei: l — показывает подробный вывод (long listing) для каждого компонента пути. m — показывает права доступа (в виде числового значения, как ls -l). o — показывает владельца и группу каждого компонента. v — детализирует информацию о путях и ошибках. x — показывает права доступа в виде rwx (читаемо). Давай сравним ⚪ namei - разбирает полный путь на компоненты - показывает каждый компонент пути и его права - отображает права доступа на каждый узел пути - раскрывает симлинки и показывает, куда они ведут - выводит ошибки если путь где-то прерывается ⚪ ls - показывает только содержимое текущего каталога - показывает права только конечного узла - показывает права доступа в текущем каталоге - не показывает цепочку ссылок (только сами ссылки) - меньше подходит для цепочек узлов. Я namei пользуюсь достаточно редко, но метко. В основном руки заточены на ввод именно ls -la. Тут уж как привык. Возможно namei тебе зайдет. Изучай. tags: #utilites #linux — 🔔 ➡️
4
18
Изба архитектурных костылей Вспомнил тут приколюху при создании нового пользователя в Linux. Ща расскажу. Короче при создании нового юзера, создается папка /home/user и в ней минимальный набор файлов, типа .bashrc, .profile. И все, больше в ней ничего нет. Про различия .profile/.bashrc и т.п. я писал в этом посте. Но я хочу для новых пользователей сразу создавать необходимую структуру папок. ㅤ Например: /home/user/www/htdocs /home/user/www/logs /home/user/www/tmp Ну тут логично, триггерим какой-нибудь bash скрипт который через mkdir создаст эти папки. НО так не интересно! 😲 В коробке линукса для этого есть /etc/skel. Эта папка служит шаблоном для домашнего каталога нового пользователя. Вот это нихуясе? Ага! Работает это так: sudo mkdir -p /etc/skel/www/htdocs /etc/skel/www/logs /etc/skel/www/tmp Создаём необходимый шаблон со структурой папок. Так-же можешь добавить шаблонные файлы .bashrc и .profile Теперь создаем нового пользователя: sudo useradd -m bashdays Идем в домашнюю папку нового пользователя и видим, что папка содержит шаблонные папки, которые мы определили в skel. Ну красота же! Можешь создавать альтернативные шаблоны структур и затем это раскатывать так: sudo useradd -m -k /custom/skel bashdays И да, все права на папки и файлы автоматически установятся на те что нужно. Ну и на закуску: Не обязательно хостить пользователей в папке /home, можно сделать так: sudo useradd -m -d /var/www/bashdays bashdays В этом случае домашняя папка юзера будет расположена в /var/www/, а в /etc/passwd будет такое: bashdays:x:1000:1000::/var/www/bashdays:/bin/sh Вот так вот и живем. Изучай. А какие приколюхи знаешь ты? Камон в комменты. tags: #linux — 🔔 ➡️
3
19
Так вот 🔤🔤🔥🔤🔤🔤🔤 Эта музыка будет вечной, если я заменю батарейки #!/bin/bash declare -i a=9223372036854775803 for i in {1..10};do echo $((a++)) done Нука бармалеи, чо будет? + прикол #!/bin/bash declare -i a=1 for i in {1..64};do a=a*2 [[ $i -gt 60 ]] && echo $i,$a done
699
20
🎄 Моя! 🎄 Ну чо, кто на ёлку богат уже? Кидайте в комменты ёлки и своё пятничное настроение, пиво там, вискарь или чо там у
🎄 Моя! 🎄 Ну чо, кто на ёлку богат уже? Кидайте в комменты ёлки и своё пятничное настроение, пиво там, вискарь или чо там у вас.
754