Надо было тут провести экстренные технические работы на сервере. Сервер публичный и смотрит жопой в интернет.
Клиенты это обычные пользователи, которые заходят по ssh и пытаются на практике изучать bash и linux. Короче студенты какого-то крупного ВУЗа, а сервер выступает подопытным стендом для всяких лабораторных работ.
Клиентов дофига (человек 800) предупредить о технических работах нет никакой возможности. А если бы и была, то 99% не увидят электронных писем с важной информацией и начнут долбать саппорт.
Задача вроде тривиальная, но нужно было предварительно задропать все сессии + не разрешать повторно подключить. Ну и естественно каким-то хреном выслать уведомление всем тем, кого задропали в моменте.
На самом деле тут все просто. Создаем пустой файл /etc/nologin. Теперь только root сможет авторизоваться по ssh. Да, предварительно нужно разрешить вообще заходить под root’ом.
Часть задачи решили. Теперь нужно уведомить бедолаг, которые в данный момент что-то делают в терминале. Пусть сохраняют свои поделки и отправляются на заслуженный отдых.
Для этого воспользуемся утилитой wall.
Wall — утилита командной строки, которая отображает сообщение на терминалах всех вошедших в систему пользователей.
Запускаем команду:
Все кто был подключен к серверу, получают сообщение:
И неважно что делает человек и где находится, сообщение появится у него на экране. Через wall кстати можно спамить определенным группам пользователей.
Ну все, ответственность с себя сняли. В 10:15 запускаем ассасина:
Вот так вот грубо мы выгнали всех с сервера, кроме root’а. Вот и все, спокойно проводим технические работы, удаляем /etc/nologin и радуемся какие мы молодцы.
Wall можно заменить например на такое:
Но тут сообщение уйдет конкретному пользователю user. Конечно если по какой-то причине отсутствует wall в системе, можно и через цикл выгрести всех юзеров и через echo скормить им уведомление.
write - утилита, позволяющая отправить сообщение другому пользователю, который имеет сессию в этой же системе.
Ну либо так:
Пытался сделать так /dev/pts/[0-9]*, но чет не проканало, заорала как потерпевшая. Ну это всё костыли, в общем неважно.
Ладно, хорошо тебе провести остаток выходного, увидимся завтра.
tags: #bash #linux #utils
—
💩 @bashdays
Клиенты это обычные пользователи, которые заходят по ssh и пытаются на практике изучать bash и linux. Короче студенты какого-то крупного ВУЗа, а сервер выступает подопытным стендом для всяких лабораторных работ.
Клиентов дофига (человек 800) предупредить о технических работах нет никакой возможности. А если бы и была, то 99% не увидят электронных писем с важной информацией и начнут долбать саппорт.
Задача вроде тривиальная, но нужно было предварительно задропать все сессии + не разрешать повторно подключить. Ну и естественно каким-то хреном выслать уведомление всем тем, кого задропали в моменте.
На самом деле тут все просто. Создаем пустой файл /etc/nologin. Теперь только root сможет авторизоваться по ssh. Да, предварительно нужно разрешить вообще заходить под root’ом.
Часть задачи решили. Теперь нужно уведомить бедолаг, которые в данный момент что-то делают в терминале. Пусть сохраняют свои поделки и отправляются на заслуженный отдых.
Для этого воспользуемся утилитой wall.
Wall — утилита командной строки, которая отображает сообщение на терминалах всех вошедших в систему пользователей.
Запускаем команду:
wall "Быстренько сохраняемся и валим с сервера. В 10:15 сервер уходит в запой."
Все кто был подключен к серверу, получают сообщение:
Broadcast message from root@dev (pts/0) (Sun Dec 17 11:38:21 2023):
Быстренько сохраняемся и валим с сервера. В 10:15 сервер уходит в запой.
И неважно что делает человек и где находится, сообщение появится у него на экране. Через wall кстати можно спамить определенным группам пользователей.
Ну все, ответственность с себя сняли. В 10:15 запускаем ассасина:
pkill -9 -u `who | awk '{print $1}'| grep -v root|head -1Вот так вот грубо мы выгнали всех с сервера, кроме root’а. Вот и все, спокойно проводим технические работы, удаляем /etc/nologin и радуемся какие мы молодцы.
Wall можно заменить например на такое:
echo "Hello from BashDays" | write user
Но тут сообщение уйдет конкретному пользователю user. Конечно если по какой-то причине отсутствует wall в системе, можно и через цикл выгрести всех юзеров и через echo скормить им уведомление.
write - утилита, позволяющая отправить сообщение другому пользователю, который имеет сессию в этой же системе.
Ну либо так:
echo "Hello from BashDays" > /dev/pts/1
Пытался сделать так /dev/pts/[0-9]*, но чет не проканало, заорала как потерпевшая. Ну это всё костыли, в общем неважно.
Ладно, хорошо тебе провести остаток выходного, увидимся завтра.
tags: #bash #linux #utils
—
Please open Telegram to view this post
VIEW IN TELEGRAM
👍205 2
Привет. Утренний микропост. Короче когда перенаправляешь вывод результатов в файл, то на экране нифига не видно. Но порой это бывает критично, а нужно и в файл записать и глазками позырить в реалтайме.
На этот случай у нас есть утилита tee, которая как раз этой хераборой и занимается.
На картинке хорошо видно, откуда произошло название tee, это буква T в произношении. Вывод затекает сверху слева и вытекает в двух направлениях. Ты видишь происходящее на экране, а параллельно это происходящее записывается и в файл. Удобно.
Вот как нужно называть утилиты! Взял произношение буквы и можно в коробку упаковывать. Кстати пока писал, вспомнил что английская «H», взяло название от Eighth - то есть восьмая буква алфавита. Короче никто особо не заморачивался с неймингом.
Ну а еще есть подобная утилита, называется просто script. Она позволяет записать всё происходящее на экране сразу в файл. Работает даже в интерактивном режиме. Запустил ты ее и работаешь в консоли, а она пишет все твои действия в кабачок.
Ключей у нее много разных, если интересно можешь глянуть хелпину. Видел что её подключают в bashrc чтобы логировать все действия криворуких обезьян.
Я ни tee ни script не использую, потому что всё время про них забываю, да и особой необходимости нет.
Такие дела. Вечерком закину еще чтива, увидимся!
tags: #bash #utils
—
💩 @bashdays
На этот случай у нас есть утилита tee, которая как раз этой хераборой и занимается.
command | tee log.txt
На картинке хорошо видно, откуда произошло название tee, это буква T в произношении. Вывод затекает сверху слева и вытекает в двух направлениях. Ты видишь происходящее на экране, а параллельно это происходящее записывается и в файл. Удобно.
Вот как нужно называть утилиты! Взял произношение буквы и можно в коробку упаковывать. Кстати пока писал, вспомнил что английская «H», взяло название от Eighth - то есть восьмая буква алфавита. Короче никто особо не заморачивался с неймингом.
Ну а еще есть подобная утилита, называется просто script. Она позволяет записать всё происходящее на экране сразу в файл. Работает даже в интерактивном режиме. Запустил ты ее и работаешь в консоли, а она пишет все твои действия в кабачок.
Ключей у нее много разных, если интересно можешь глянуть хелпину. Видел что её подключают в bashrc чтобы логировать все действия криворуких обезьян.
Я ни tee ни script не использую, потому что всё время про них забываю, да и особой необходимости нет.
Такие дела. Вечерком закину еще чтива, увидимся!
tags: #bash #utils
—
Please open Telegram to view this post
VIEW IN TELEGRAM
👍150 9
Сегодня вынужденно весь день работал инженером электроником. Три компьютера собрал, винду накатил, дату перенес, господи, как это выматывает. Я лучше ELK лишний раз настрою, чем всё это железо разгребать, стар я для этого дерьма стал.
Ну и тут одно событие как-то вскользь прошло и связано оно с нативным файловым менеджером «FAR» который теперь можно без лишнего геморроя поставить на новые линуксы прям из официального репозитория.
Да, когда я начинал свой путь в айти, FAR был как правая рука для окошечников. Все активно призывали пересесть на total commander, но сколько я не делал попыток, так и не смог себя пересилить. Ну люблю я все эти консольные штуки и минимализм.
У меня знакомый большую часть жизни вообще в FAR фронтенд делал, плагинами обвешал и получилась неплохая IDE.
А вот когда я начал знакомство с linux, то второе, что я запустил (после vi), это был как раз midnight commander. Ну и все. FAR и mc стали маст-хэв штуками. Вот даже сейчас сидя на винде у меня вкорячен FAR и я даже раза два в месяц им пользуюсь.
Мой роадмеп был такой - Norton commander → Dos navigator → FAR → Midnight commander.
Короче в новых убунтах ставится так:
Кому подойдет FAR? Все просто, тому, кому не нравится midnight commander.
Я попробовал ради прикола воткнуть его на 23ю убунту (в wsl), взлетело, выглядит как FAR, даже alt+f1 работает для выбора дисков. Ну и по ssh запускается, в смысле подключаешься к серверу по ssh и запускаешь там FAR, работает.
Не знаю, но я уже точно ни на что не променяю Midnight commander. Даже в винде его использую. Мы связаны одной цепью.
А какой у тебя был путь с файловыми менеджерами? Чем нынче пользуешь?
tags: #рабочиебудни #utils #linux
—
💩 @bashdays
Ну и тут одно событие как-то вскользь прошло и связано оно с нативным файловым менеджером «FAR» который теперь можно без лишнего геморроя поставить на новые линуксы прям из официального репозитория.
Да, когда я начинал свой путь в айти, FAR был как правая рука для окошечников. Все активно призывали пересесть на total commander, но сколько я не делал попыток, так и не смог себя пересилить. Ну люблю я все эти консольные штуки и минимализм.
У меня знакомый большую часть жизни вообще в FAR фронтенд делал, плагинами обвешал и получилась неплохая IDE.
А вот когда я начал знакомство с linux, то второе, что я запустил (после vi), это был как раз midnight commander. Ну и все. FAR и mc стали маст-хэв штуками. Вот даже сейчас сидя на винде у меня вкорячен FAR и я даже раза два в месяц им пользуюсь.
Мой роадмеп был такой - Norton commander → Dos navigator → FAR → Midnight commander.
Короче в новых убунтах ставится так:
sudo apt install far2l
Кому подойдет FAR? Все просто, тому, кому не нравится midnight commander.
Я попробовал ради прикола воткнуть его на 23ю убунту (в wsl), взлетело, выглядит как FAR, даже alt+f1 работает для выбора дисков. Ну и по ssh запускается, в смысле подключаешься к серверу по ssh и запускаешь там FAR, работает.
Не знаю, но я уже точно ни на что не променяю Midnight commander. Даже в винде его использую. Мы связаны одной цепью.
А какой у тебя был путь с файловыми менеджерами? Чем нынче пользуешь?
tags: #рабочиебудни #utils #linux
—
Please open Telegram to view this post
VIEW IN TELEGRAM
С наступающим! Давным-давно я избавился от OpenVPN и сейчас активно продолжаю использовать WireGuard. Даже порой связываю продакшен сервера wg тоннелями в разных регионах, где нет возможности это сделать из коробки. Стабильно, быстро, бесплатно.
Всё было хорошо, пока я не повзрослел и непознал джаззз установил себе Windows. Ну и естественно запихал туда официальный гуёвый клиент от wg. А что могло пойти не так? А всё!
Клиент в рандомный момент показывал средний палец и работал через хуй копыто.
Приходилось его выгружать, перезапускать службы, иногда передергивать софтверно сетевую карту, чтобы не ребутить машину. Ну такое себе удовольствие… Мне блять/блядь работать надо, а я тут утехами занимаюсь.
Так я ебался с полгода, но в этот понедельник меня это окончательно заебало! Пошел искать альтернативы, конкретно гуишного клиента. Потому что сама технология wg меня устраивает, не устраивают эти постоянные глюки.
И да, я много гуглил про эти проблемы, они имеются и фиксятся именно, так как я их и фиксил, перезагрузками, службами и другими костылями.
Короче перебрал я разные клиенты, всё шлак, ну и наткнулся на гитхабе на что-то приличное, простое и даже с фичами.
Называется эта штука TunnlTo. Работает в коллаборации с WireSock. По бенчмаркам обгоняет даже официальный WG клиент. На странице проекта там все подробно описано, можешь самостоятельно ознакомиться.
Чо понравилось:
1. Не глючит, шустрый, не виснет
2. Поддержка импорта тоннелей из официального wg клиента
3. При загрузки ОС можно автоматом подключать/не подключать VPN
4. Разделение приложений, кто идет через VPN, а кто нет
5. Ну и конечно другие фичи, какие хз, мне 4х хватает
В общем мне пока нравится. Заточено под винду, но у маководов и линукс-гиков и так всё хорошо, мой личный пруф.
💻 Страница проекта на github
Неделька выдалась продуктивная и очень нервная, в плане работы, в плане домашней рутины, в плане партнерских интеграций. Надо уже новых коллег к нам приводить, а я всё фигнёй какой-то занимаюсь. Исправлюсь! На выходные сделаем небольшую паузу, буду готовить контент план, чтобы уж совсем из пальца темы не высасывать. Да и ты отдохнешь.
Ну а тебе и твоим близким желаю хороших предстоящих выходных, берегите себя ребят. Увидимся!
tags: #utils #windows #networks
—
💩 @bashdays
Всё было хорошо, пока я не повзрослел и не
Клиент в рандомный момент показывал средний палец и работал через хуй копыто.
Приходилось его выгружать, перезапускать службы, иногда передергивать софтверно сетевую карту, чтобы не ребутить машину. Ну такое себе удовольствие… Мне блять/блядь работать надо, а я тут утехами занимаюсь.
Так я ебался с полгода, но в этот понедельник меня это окончательно заебало! Пошел искать альтернативы, конкретно гуишного клиента. Потому что сама технология wg меня устраивает, не устраивают эти постоянные глюки.
И да, я много гуглил про эти проблемы, они имеются и фиксятся именно, так как я их и фиксил, перезагрузками, службами и другими костылями.
Короче перебрал я разные клиенты, всё шлак, ну и наткнулся на гитхабе на что-то приличное, простое и даже с фичами.
Называется эта штука TunnlTo. Работает в коллаборации с WireSock. По бенчмаркам обгоняет даже официальный WG клиент. На странице проекта там все подробно описано, можешь самостоятельно ознакомиться.
Чо понравилось:
1. Не глючит, шустрый, не виснет
2. Поддержка импорта тоннелей из официального wg клиента
3. При загрузки ОС можно автоматом подключать/не подключать VPN
4. Разделение приложений, кто идет через VPN, а кто нет
5. Ну и конечно другие фичи, какие хз, мне 4х хватает
В общем мне пока нравится. Заточено под винду, но у маководов и линукс-гиков и так всё хорошо, мой личный пруф.
Неделька выдалась продуктивная и очень нервная, в плане работы, в плане домашней рутины, в плане партнерских интеграций. Надо уже новых коллег к нам приводить, а я всё фигнёй какой-то занимаюсь. Исправлюсь! На выходные сделаем небольшую паузу, буду готовить контент план, чтобы уж совсем из пальца темы не высасывать. Да и ты отдохнешь.
Ну а тебе и твоим близким желаю хороших предстоящих выходных, берегите себя ребят. Увидимся!
tags: #utils #windows #networks
—
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Если пишешь говнокод, неважно куда он попадет, в GIT репозиторий или унитаз. Суть одна.
Привет отдыхающим. Нашел на github неплохую пепяку «config-file-validator», которая из консольки валидирует файлы в форматах:
Работает на всём, линуксы, винда, макоська, малина. Надо только установить. В репах увы её нет. Написано на golang.
✔️ Репа с рейтингом, люди пользуются, форкают.
Я качнул с репозитория zip’ник и закинул в
А если любишь docker, то можно прям контейнер подтянуть с этим валидатором.
Теперь в каталоге с файлами запускаем: validator и смотрим:
Отличное решение, когда лень или нет возможности запускать IDE. Быстро, просто, бесплатно.
Люблю такие тулзы, вроде нихера не делают, но пользу приносят. Взял к себе на вооружение. Рекомендую.
🌐 Страница проекта на github
tags: #utils
@BАSHDАYS | BАSHDАYS.CОM
Привет отдыхающим. Нашел на github неплохую пепяку «config-file-validator», которая из консольки валидирует файлы в форматах:
Apple PList XML, CSV, ENV, HCL, HOCON, INI, JSON, Properties, TOML, XML, YAML
Работает на всём, линуксы, винда, макоська, малина. Надо только установить. В репах увы её нет. Написано на golang.
Я качнул с репозитория zip’ник и закинул в
/usr/local/sbincd /tmp
wget https://github.com/Boeing/config-file-validator/releases/download/v1.6.0/validator-v1.6.0-linux-amd64.tar.gz
tar -xf validator-v1.6.0-linux-amd64.tar.gz
mv validator /usr/local/sbin
А если любишь docker, то можно прям контейнер подтянуть с этим валидатором.
Теперь в каталоге с файлами запускаем: validator и смотрим:
root@dev:# validator
× bashdays.json
error: Error at line 3 column 2: invalid character '"' after object key:value pair
✓ bashdays.yml
Summary: 1 succeeded, 1 failed
Отличное решение, когда лень или нет возможности запускать IDE. Быстро, просто, бесплатно.
Люблю такие тулзы, вроде нихера не делают, но пользу приносят. Взял к себе на вооружение. Рекомендую.
tags: #utils
@BАSHDАYS | BАSHDАYS.CОM
Please open Telegram to view this post
VIEW IN TELEGRAM
Открытие костыльного цеха
Привет. Все бэкапы, как и полагается я сжимаю через tar + gzip. Ну повелось так. Можно сказать это устоявшийся стандарт.
Но моя ебанца покоя не даёт, вот и в этот раз сижу, думаю — а хули так долго все сжимается, у меня 32 ядра на сервере с репликой, диск не самый плохой. А оно еле ворочается.
Пошел ковырять кишочки, оказывается у меня gzip хуярит на одном ядре. Не понял. Так и есть. Говорят что с версии 1.7 все изменилось и оно само подстраивается под железо. НИХУЯ, у меня 1.10. Из коробки работает одно ядро.
Хм, может для gzip есть какой-то ключ? Бегло пробежался, в хелпах про threads ничего нет.
Ну раз так. Расчехляем свиней. PIGZ!
Ставится из репы:
Давай затестим. Создаем 10ти гигабайтный файл.
Запускаем тесты:
Хуясе да! PIGZ сжал 10гигабайт за 8 секунд. А gzip понадобилось аж 46 секунд. Разница ОЩУТИМА! Понятно тесты синтетические, но мне их достаточно.
Ради интереса открыл htop, всё верно. Gzip усирается на одном ядрышке. А «свиньи» сразу жрут всё с костями. Прекрасно!
✔️ Теперь pigz нужно подружить с tar
С этим все просто, через пайп:
Либо как вариант через ключ
Но мне первый больше нравится. А чтобы видеть прогресс, можешь запустить так:
Тут используется утилита pv, про нее писал в этом посте.
Короче pigz прям тема и гибко конфигуряется. Я в восторге. Например, можешь сказать ей чтобы использовала только 2 ядра и 2 потока. Почитай хелпину если интересно. Основное я тебе рассказал. Изучай.
Увидимся! Пойду адаптировать под свои бэкапы.
tags: #linux #utils
@ВАSНDАYS | BАSHDАYS.CОM
Привет. Все бэкапы, как и полагается я сжимаю через tar + gzip. Ну повелось так. Можно сказать это устоявшийся стандарт.
Но моя ебанца покоя не даёт, вот и в этот раз сижу, думаю — а хули так долго все сжимается, у меня 32 ядра на сервере с репликой, диск не самый плохой. А оно еле ворочается.
Пошел ковырять кишочки, оказывается у меня gzip хуярит на одном ядре. Не понял. Так и есть. Говорят что с версии 1.7 все изменилось и оно само подстраивается под железо. НИХУЯ, у меня 1.10. Из коробки работает одно ядро.
Хм, может для gzip есть какой-то ключ? Бегло пробежался, в хелпах про threads ничего нет.
Ну раз так. Расчехляем свиней. PIGZ!
PIGZ (Parallel Implementation of GZIP) - это утилита для сжатия файлов, которая использует параллельные вычисления для ускорения процесса сжатия данных.
Ставится из репы:
apt install pigz, а где-то уже сразу установлен.Давай затестим. Создаем 10ти гигабайтный файл.
truncate -s 10G bashdays
Запускаем тесты:
time gzip -k -c bashdays > /dev/null
real 0m46.590s
time pigz -k -c bashdays > /dev/null
real 0m8.535s
Хуясе да! PIGZ сжал 10гигабайт за 8 секунд. А gzip понадобилось аж 46 секунд. Разница ОЩУТИМА! Понятно тесты синтетические, но мне их достаточно.
Ради интереса открыл htop, всё верно. Gzip усирается на одном ядрышке. А «свиньи» сразу жрут всё с костями. Прекрасно!
С этим все просто, через пайп:
tar cf - bashdays | pigz -k -c > bashdays.tar.gz
Либо как вариант через ключ
--use-compress-programtar --use-compress-program="pigz --best --recursive" -cf bashdays.tar.gz bashdays
Но мне первый больше нравится. А чтобы видеть прогресс, можешь запустить так:
tar cf - bashdays | pigz -k -c | pv > bashdays.tar.gz
Тут используется утилита pv, про нее писал в этом посте.
Короче pigz прям тема и гибко конфигуряется. Я в восторге. Например, можешь сказать ей чтобы использовала только 2 ядра и 2 потока. Почитай хелпину если интересно. Основное я тебе рассказал. Изучай.
Увидимся! Пойду адаптировать под свои бэкапы.
tags: #linux #utils
@ВАSНDАYS | BАSHDАYS.CОM
Please open Telegram to view this post
VIEW IN TELEGRAM
Лишаем Linux девственности
Доброе утро друзья. Сейчас покажу как попасть в секретный каталог в Linux. И в 99%, ты никогда раньше в нём не был.
Для этого тебе понадобится портал, который уже есть в твоем дистрибутиве.
Запускам Bash и вводим:
Опа-опа, нихуя!
Видишь два слеша в промте? Поздравляю, дефлорация прошла успешно. Даже не нужно было вводить IDDQD, чтобы активировать «годмод».
И где это мы?В пизде! Ну а чо гадать, давай посмотрим:
Хм, понятнее не стало… Давай посмотрим что находится у нас в этом каталоге, делаем
И что же мы видим? А видим мы содержимое корневой директории. Для чистоты эксперимента можешь запустить так
Получается никакого секретного каталога нет? Получается так. Нас наебали?Расходимся. Не совсем.
✔️ Почему так? Откуда берется второй слэш?
POSIX в своём описании, говорит, что три и более слешей могут быть заменены на один слеш. Нужно это для канонизации текущего рабочего каталога.
И сделано это для исторической совместимости. Некоторые версии Unix во времена динозавров использовали пути вида:
Короче вся ответственность по двум слешам ложится на плечи дистрибутивов. И каждый дистрибутив в праве делать с ними всё что захочет.
Пример: если в Cygwin выполнить
Потому что Cygwin использует корень из
А все что более 2х слешей, должно рерайтиться на один слеш. Такие дела!
Всех с пятницей и хороших выходных! Да и на выходные будут посты. На связи!
tags: #linux #utils
@ВАSНDАYS | BАSHDАYS.CОM
Доброе утро друзья. Сейчас покажу как попасть в секретный каталог в Linux. И в 99%, ты никогда раньше в нём не был.
Для этого тебе понадобится портал, который уже есть в твоем дистрибутиве.
Запускам Bash и вводим:
cd //
Опа-опа, нихуя!
user@server:/$ cd //
user@server://$
Видишь два слеша в промте? Поздравляю, дефлорация прошла успешно. Даже не нужно было вводить IDDQD, чтобы активировать «годмод».
И где это мы?
user@server:/$ cd //
user@server://$
user@server:/$ pwd
//
Хм, понятнее не стало… Давай посмотрим что находится у нас в этом каталоге, делаем
ls -la. И что же мы видим? А видим мы содержимое корневой директории. Для чистоты эксперимента можешь запустить так
ls -la /////// и получишь такой же результат.Получается никакого секретного каталога нет? Получается так. Нас наебали?
POSIX в своём описании, говорит, что три и более слешей могут быть заменены на один слеш. Нужно это для канонизации текущего рабочего каталога.
Что такое POSIX, писал в этом посте.
И сделано это для исторической совместимости. Некоторые версии Unix во времена динозавров использовали пути вида:
//hostname/path для доступа к path на сервере //hostname.Короче вся ответственность по двум слешам ложится на плечи дистрибутивов. И каждый дистрибутив в праве делать с ними всё что захочет.
Пример: если в Cygwin выполнить
cd // а затем ls, получишь ошибку: ls: reading directory '.': Permission denied
Потому что Cygwin использует корень из
// для определения //имени хоста/пути. А убунта с этим нормально уживается и выводит содержимое корневой директории.А все что более 2х слешей, должно рерайтиться на один слеш. Такие дела!
Всех с пятницей и хороших выходных! Да и на выходные будут посты. На связи!
tags: #linux #utils
@ВАSНDАYS | BАSHDАYS.CОM
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ 14-летний школьник из Москвы сошел с ума собирая KDE из исходников
Сижу в потоке, правлю
Запускаюпохерены отсутствуют.
Почесываю свою лысую кабину. Ага, значит какой-нибудь puppet агент тут крутится или ансибл.
Смотрю процессы, паппета нет, смотрю логи auth на момент подключения ансибла. Да блядь. Пусто! Смотрю логи крона и сам крон, ничо нет. В логах нет — нихуя!
Списываю всё на глюки симуляции этого мира и магнитные бури. Добавляю еще раз локейшены, перезапускаю nginx, сука! Локейшенов нет ))
Курю, бегаю по каталогам, размеренно думаю. Ииии замечаю забавнейшую вещь. В корне каталога etc есть директория .git!!! Вот и сложился пазл. Картина маслом.
Как я и думал, здесь установлен ETCKeeper.
Эта такая херабора, которая отслеживает изменения в каталоге etc. Если что-то изменилось, оно это откатывает из git репозитория.
А чтобы поправить nginx конфиг, предварительно нужно запушить в репу актуальные правки иии только потом оно останется на сервере.
Штука довольно интересная, в своё время я ее втыкал где только можно. Очень полезна от криворуких разработчиков/тестировщиков с рутом. Которые ломают и потом утверждают, что они ничего не делали.
А ты просто смотришь диффы в git и тыкаешь их носом как нагадивших в макбук котяток.
Ставится эта штука очень просто, через apt, ну а дальше почти из коробки работает, достаточно сказать с каким репозиторием ей взаимодействовать и по желанию добавить всякие конфиденциальные файлы в .gitignore.
Давай позабавимся:
В git репе в разделе Deploy Keys, добавляем public root ключик с галочкой Allow write access.
А затем применяем бест практику и пушим в мастер:
Всё Initial Commit почти со всем содержимым, запушен в репу. Красотища!
✔️ Но перед пушем не забываем поправить файлик .gitignore и добавить в него например всякие shadows и т.п.
Ну а теперь пробуем отредактировать какой-нибудь fstab и добавить новую строчку. Добавил? Ок, запускай!
Всё! Правки в git репе. Ну и по желанию всё это дело можно откатить, либо пачкой, либо один файл.
Делается так, смотрим список коммитов:
Теперь откатываем правленый fstab:
Ееее! Откатилось. Ну и не забываем, что после отката нужно зафиксировать все изменения.
Вот и всё! Функционал etckeeper намного шире, я рассказал про основное и саму концепцию. А если будет интересно думаю ты и сам найдешь всю нужную информацию в гугле.
Вообще можно и через Bash скрипт такое размутить, не устанавливая никакой софт, но иногда проще сделать
Отслеживать изменения можно через incron и автоматически коммитить:
Incron запускает таски не по временным меткам, а по событиям.
Добавить больше нечего. Хорошего тебе дня!
tags: #linux #utils
@ВАSНDАYS | BАSHDАYS.CОM
Сижу в потоке, правлю
nginx.conf, птички поют, коты ебутся, весна! Запускаю
nginx reload, хм, ничего не изменилось… Лезу в nginx.conf, а в нем все мои локейшены, которые я добавил — Почесываю свою лысую кабину. Ага, значит какой-нибудь puppet агент тут крутится или ансибл.
Смотрю процессы, паппета нет, смотрю логи auth на момент подключения ансибла. Да блядь. Пусто! Смотрю логи крона и сам крон, ничо нет. В логах нет — нихуя!
Списываю всё на глюки симуляции этого мира и магнитные бури. Добавляю еще раз локейшены, перезапускаю nginx, сука! Локейшенов нет ))
Курю, бегаю по каталогам, размеренно думаю. Ииии замечаю забавнейшую вещь. В корне каталога etc есть директория .git!!! Вот и сложился пазл. Картина маслом.
Как я и думал, здесь установлен ETCKeeper.
Эта такая херабора, которая отслеживает изменения в каталоге etc. Если что-то изменилось, оно это откатывает из git репозитория.
А чтобы поправить nginx конфиг, предварительно нужно запушить в репу актуальные правки иии только потом оно останется на сервере.
Штука довольно интересная, в своё время я ее втыкал где только можно. Очень полезна от криворуких разработчиков/тестировщиков с рутом. Которые ломают и потом утверждают, что они ничего не делали.
А ты просто смотришь диффы в git и тыкаешь их носом как нагадивших в макбук котяток.
Ставится эта штука очень просто, через apt, ну а дальше почти из коробки работает, достаточно сказать с каким репозиторием ей взаимодействовать и по желанию добавить всякие конфиденциальные файлы в .gitignore.
Давай позабавимся:
apt install etckeeper git
cd /etc
git remote add origin git@github.com:bashdays/etc.git
В git репе в разделе Deploy Keys, добавляем public root ключик с галочкой Allow write access.
А затем применяем бест практику и пушим в мастер:
git push -u origin master
Всё Initial Commit почти со всем содержимым, запушен в репу. Красотища!
Я этой хуйнёй не занимаюсь, ну спиздят у меня хеши паролей, да ради бога. Репа приватная. Да и на серваке у меня вход по паролям всегда отключен, только ключи.
Ну а теперь пробуем отредактировать какой-нибудь fstab и добавить новую строчку. Добавил? Ок, запускай!
etckeeper commit "поправил fstab" && git push
Всё! Правки в git репе. Ну и по желанию всё это дело можно откатить, либо пачкой, либо один файл.
Делается так, смотрим список коммитов:
etckeeper vcs log --pretty=oneline
e36f279 (HEAD -> master, origin/master)
9c24a66 поправил fstab
c1ee020 Initial commit
Теперь откатываем правленый fstab:
etckeeper vcs checkout 9c24a66 /etc/fstab
Ееее! Откатилось. Ну и не забываем, что после отката нужно зафиксировать все изменения.
etckeeper commit "вернул как было"
git push
Вот и всё! Функционал etckeeper намного шире, я рассказал про основное и саму концепцию. А если будет интересно думаю ты и сам найдешь всю нужную информацию в гугле.
Вообще можно и через Bash скрипт такое размутить, не устанавливая никакой софт, но иногда проще сделать
apt install чем отлаживать баги в своем коде.Я как-то на коленке изобретал нечто подобное для nginx, писал в этом посте.
Отслеживать изменения можно через incron и автоматически коммитить:
incrontab -e
/etc IN_MODIFY /usr/bin/etckeeper commit "modified $@/$#"
Incron запускает таски не по временным меткам, а по событиям.
Добавить больше нечего. Хорошего тебе дня!
tags: #linux #utils
@ВАSНDАYS | BАSHDАYS.CОM
Please open Telegram to view this post
VIEW IN TELEGRAM
Linux всем надоел?
Привет. Сегодня поговорим про полезную утилиту, которой я лично пользуюсь для поиска всякого говна на Linux серверах.
В контексте говна выступает всё то, что не должно быть на серваке. К примеру собранные их исходников древние артефакты и т.п.
Короче софтина ищет все файлы, которые попали на сервак в обход пакетного менеджера. Ну и которые были установлены из левых источников, либо созданные самими пользователями.
✔️ Называется Сruft, ставится через апт, или чего там у тебя.
А дальше запускаем. НО из коробки она будет въедливо и долго шуршать. Поэтому заранее сообщаем ей, какие директории нужно проигнорировать.
Например, я знаю что установлен docker и мне в отчете это видеть не обязательно. Справедливо и для всяких mysql и т.п.
Тем самым ты уменьшишь свой отчет и потратишь меньше времени на анализ.
Отчет выглядит примерно так:
В отчете ты найдешь ОЧЕНЬ много интересного, особенно если это сервак клиента или ты устроился на новую работу и нужно въехать в инфраструктуру. А может найдешь какую-нибудь хитро запрятанную малварю.
Из отчета выше я вижу какой-то Bash скрипт
Короче очень удобно искать подобные вещи, о которых ты не подозреваешь или забыл.
У утилиты достаточно много ключей, но я ими не пользуюсь, максимум загоняю в игнор жирные пользовательские папки, докеры и подобную хероту.
Советую присмотреться, ни раз мою жопу выручал во время миграций со старых серваков на новые.
Давай! Не смею больше отвлекать🥳
tags: #linux #utils
@ВАSНDАYS | BАSHDАYS.CОM
Привет. Сегодня поговорим про полезную утилиту, которой я лично пользуюсь для поиска всякого говна на Linux серверах.
В контексте говна выступает всё то, что не должно быть на серваке. К примеру собранные их исходников древние артефакты и т.п.
Короче софтина ищет все файлы, которые попали на сервак в обход пакетного менеджера. Ну и которые были установлены из левых источников, либо созданные самими пользователями.
apt install cruft
cruft - Check the filesystem for cruft (missing and unexplained files)
А дальше запускаем. НО из коробки она будет въедливо и долго шуршать. Поэтому заранее сообщаем ей, какие директории нужно проигнорировать.
Например, я знаю что установлен docker и мне в отчете это видеть не обязательно. Справедливо и для всяких mysql и т.п.
cruft --ignore /boot --ignore /sys --ignore /home --ignore /var/lib/docker -r ~/bashdays-report.txt
Тем самым ты уменьшишь свой отчет и потратишь меньше времени на анализ.
Отчет выглядит примерно так:
cruft report: Fri Apr 19 10:00:07 UTC 2024
---- unexplained: / ----
/usr/local/sbin/fuck.sh
/usr/local/sbin/growroot
/usr/local/sbin/ttyd
/usr/local/sbin/validator
/usr/local/share/fonts/.uuid
В отчете ты найдешь ОЧЕНЬ много интересного, особенно если это сервак клиента или ты устроился на новую работу и нужно въехать в инфраструктуру. А может найдешь какую-нибудь хитро запрятанную малварю.
Из отчета выше я вижу какой-то Bash скрипт
/usr/local/sbin/fuck.sh о котором не знал. А оказывается я его писал очень давно и совсем про него забыл. Опа. А если я бы похерил сервер, то и скрипт бы похерился. Обидно. А еще вон какой-то validator затесался, явно тоже самописная приблудина.Короче очень удобно искать подобные вещи, о которых ты не подозреваешь или забыл.
У утилиты достаточно много ключей, но я ими не пользуюсь, максимум загоняю в игнор жирные пользовательские папки, докеры и подобную хероту.
Советую присмотреться, ни раз мою жопу выручал во время миграций со старых серваков на новые.
Давай! Не смею больше отвлекать
tags: #linux #utils
@ВАSНDАYS | BАSHDАYS.CОM
Please open Telegram to view this post
VIEW IN TELEGRAM
Почему 99% девопсов жирные?
Ну ясно понятно, из-за стресса, а не из-за того, что много жрут и ведут сидячий образ жизни.
Далеко ходить не будем. Вчера мы с тобой тёрли за cruft, поэтому делюсь еще одной штукой, которую также применяю.
✔️ Утилита называется — debsums
Она предназначена для проверки целостности файлов, которые установлены пакетным менеджером. Вроде хуйня, а НЕТ! Инструмент — мастхэв.
Из названия уже понятно, что проверка целостности пакетов будет проходить на основе контрольных хэш сумм.
Откуда берутся эталонные хэши?
При установке пакетов и т.п. все эталонные, контрольные суммы попадают в «базу данных», которая находится тут:
В ней содержатся файлы с данными, которые и использует debsums для проверки.
Например,
Ну дак вот. Debsums либо идет сразу в коробке, либо ставится через пакетный менеджер.
У меня в Селектел на убунте 22 уже была предустановлена, хотя локально её не было. Имей это ввиду.
Запускаем так
В этом случае, будут проверяться все хэш суммы, всех файлов. Это дохуя долго, но иногда полезно если разбираешься с сервером, на который через php залили крипто-майнер или нечто подобное.
Если нужно проверить только измененные:
Опять же очень полезно при миграциях с сервера на сервер.
А для проверки только конфигов:
Например, я в душе не ебал что файл php.ini кто-то правил, а debsum мне это подсказал. И я не зафакапил.
После отработки команды, имеем список измененных файлов:
Ну а дальше включаем в себе подозрительного аналитика и разбираемся с полученной информацией. Также можно быстро визуально понять, какой софт устанавливался и какими внешними пакетами напичкан сервер.
Указав ключ -x весь её высер можно сразу выгрузить в файл. В отчет попадут только измененные файлы.
Из минусов — пиздец долго всё ищет (при полной проверке). Запускаем и идем пить кофе/смотреть мультики. Но это приятное ожидание, плюсы покрывают минусы.
Рекомендую взять на вооружение, утилита довольно пиздатая и достойна твоего внимания.
Подобных утилит много, из тех что я знаю: AIDE, Tripwire, rkhunter, chkrootkit, ossec, Lynis. Присмотрись и к ним, возможно найдешь среди них что-то интересное под свои задачи.
Ну вот и всё. Пойдука я чайку хапну. Хорошего тебе дня!
tags: #linux #utils
@ВАSНDАYS | BАSHDАYS.CОM
Ну ясно понятно, из-за стресса, а не из-за того, что много жрут и ведут сидячий образ жизни.
Далеко ходить не будем. Вчера мы с тобой тёрли за cruft, поэтому делюсь еще одной штукой, которую также применяю.
Она предназначена для проверки целостности файлов, которые установлены пакетным менеджером. Вроде хуйня, а НЕТ! Инструмент — мастхэв.
Из названия уже понятно, что проверка целостности пакетов будет проходить на основе контрольных хэш сумм.
Откуда берутся эталонные хэши?
При установке пакетов и т.п. все эталонные, контрольные суммы попадают в «базу данных», которая находится тут:
/var/lib/dpkg/info.В ней содержатся файлы с данными, которые и использует debsums для проверки.
Например,
nginx-common.md5sumsdba41b system/nginx.service
17d6d7 package-hooks/source_nginx.py
9e33ba nginx-common/NEWS.Debian.gz
6c278a nginx-common/README.Debian
Ну дак вот. Debsums либо идет сразу в коробке, либо ставится через пакетный менеджер.
У меня в Селектел на убунте 22 уже была предустановлена, хотя локально её не было. Имей это ввиду.
Запускаем так
debsums -a
В этом случае, будут проверяться все хэш суммы, всех файлов. Это дохуя долго, но иногда полезно если разбираешься с сервером, на который через php залили крипто-майнер или нечто подобное.
Если нужно проверить только измененные:
debsums -ac
Опять же очень полезно при миграциях с сервера на сервер.
А для проверки только конфигов:
debsums -ae
Например, я в душе не ебал что файл php.ini кто-то правил, а debsum мне это подсказал. И я не зафакапил.
После отработки команды, имеем список измененных файлов:
/etc/crontab
/sbin/start-stop-daemon
/etc/modprobe.d/blacklist.conf
/etc/nginx/sites-available/default
/etc/php/8.1/fpm/pool.d/www.conf
/etc/sysctl.conf
/etc/sudoers
/etc/pam.d/sudo
/etc/systemd/zram-generator.conf
Ну а дальше включаем в себе подозрительного аналитика и разбираемся с полученной информацией. Также можно быстро визуально понять, какой софт устанавливался и какими внешними пакетами напичкан сервер.
Указав ключ -x весь её высер можно сразу выгрузить в файл. В отчет попадут только измененные файлы.
Из минусов — пиздец долго всё ищет (при полной проверке). Запускаем и идем пить кофе/смотреть мультики. Но это приятное ожидание, плюсы покрывают минусы.
Рекомендую взять на вооружение, утилита довольно пиздатая и достойна твоего внимания.
Подобных утилит много, из тех что я знаю: AIDE, Tripwire, rkhunter, chkrootkit, ossec, Lynis. Присмотрись и к ним, возможно найдешь среди них что-то интересное под свои задачи.
Ну вот и всё. Пойдука я чайку хапну. Хорошего тебе дня!
tags: #linux #utils
@ВАSНDАYS | BАSHDАYS.CОM
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Привет отдыхающим. Продолжим тему с повышением прав. Искать suid биты через find конечно мастхев, но есть пиздатый инструмент под названием LinPEAS.
Изобрел его некий пентестер - Карлсон (Carlson P), который держит проект HackTricks, возможно ты про него когда-нибудь слышал.
Короче штука написана на sh. Чувствуешь уровень? То есть будет работать хоть на чайнике.
При запуске LinPEAS сканирует Linux машину, на всякие дырки и криворукость админов.
Один из тестов, как раз показывает файлы с suid битами, которые можно использовать для повышения привилегий.
Скрипт заточен как раз под поиск всякой хуйни, которая может помочь злоумышленникам надругаться над твоим серваком.
Работает самодостаточно, не нужен root, ничего не пишет на диск, не требует каких-то библиотек, запустил и получил на экране отчет. Заплакал, сделал выводы, закрыл дырки/оставил как есть.
Запускается одной командой и не требует установки:
Но можно и через змеюку:
Поддерживает различные ключи запуска и всякие навороты, тут уже читай мануал. Мне обычно хватает запуска по дефолту.
Да, утилита раньше входила в состав Kali Linux, сейчас хз, не проверял, но скорее всего там и осталась.
Короче достойная пепяка! Рекомендую потыкать, по крайней мере на своих сервачках с пет проектами. Найдешь много интересного.
🌐 Страница проекта на github
tags: #linux #security #utils
@ВАSНDАYS | BАSHDАYS.CОM
LinPEAS - Linux Privilege Escalation Awesome Script
Изобрел его некий пентестер - Карлсон (Carlson P), который держит проект HackTricks, возможно ты про него когда-нибудь слышал.
Короче штука написана на sh. Чувствуешь уровень? То есть будет работать хоть на чайнике.
При запуске LinPEAS сканирует Linux машину, на всякие дырки и криворукость админов.
Один из тестов, как раз показывает файлы с suid битами, которые можно использовать для повышения привилегий.
Скрипт заточен как раз под поиск всякой хуйни, которая может помочь злоумышленникам надругаться над твоим серваком.
Работает самодостаточно, не нужен root, ничего не пишет на диск, не требует каких-то библиотек, запустил и получил на экране отчет. Заплакал, сделал выводы, закрыл дырки/оставил как есть.
Запускается одной командой и не требует установки:
curl -L https://github.com/peass-ng/PEASS-ng/releases/latest/download/linpeas.sh | sh
Но можно и через змеюку:
python -c "import urllib.request; urllib.request.urlretrieve('https://github.com/peass-ng/PEASS-ng/releases/latest/download/linpeas.sh', 'linpeas.sh')"
python3 -c "import urllib.request; urllib.request.urlretrieve('https://github.com/peass-ng/PEASS-ng/releases/latest/download/linpeas.sh', 'linpeas.sh')"Поддерживает различные ключи запуска и всякие навороты, тут уже читай мануал. Мне обычно хватает запуска по дефолту.
Да, утилита раньше входила в состав Kali Linux, сейчас хз, не проверял, но скорее всего там и осталась.
Короче достойная пепяка! Рекомендую потыкать, по крайней мере на своих сервачках с пет проектами. Найдешь много интересного.
tags: #linux #security #utils
@ВАSНDАYS | BАSHDАYS.CОM
Please open Telegram to view this post
VIEW IN TELEGRAM
✨ Ты — caмый счaстливый чeловек нa плaнeте!
Почему? Потому, что сейчас узнаешь про ONLY.
Частенько возникала необходимость разрешить пользователю запускать только определенные команды по ssh. То есть явно указать ему белый список таких команд.
Городили мы конечно знатные велосипеды с помощью костылей, rbash, симлинков, chroot и т.п.
Все эти костыли были неудобные и какие-то пиздец сложно поддерживаемые. Но решение было найдено и вполне элегантное. Всё ужеукрадено придумано за нас.
Для затравки:
Думаю идею ты понял. Пользователь подключается по ssh и может выполнить только 3 команды rsync, ls, cat.
И тут большой плюс - пользователь не получает интерактивную оболочку, то есть всё сводится к выполнению подобной конструкции:
Команда ls находится в белом списке и успешно отработает при подключении по ssh, а дальше сессия завершится.
Нехер ему на сервере делать. Есть список команд, вот пусть ими и довольствуется без интерактива.
✔️ Теперь подробности
ONLY это НЕ какая-то встроенная команда в Linux, это Bash скрипт, который аккуратно лежит в
1. Берем only из репы
2. Кидаем его в
3. Ставим chmod +x чтобы запускался
4. Делаем пару ключей для работы
P = пустая парольная фраза
f = задаем имя ключа
Содержимое ключа only pub добавляем в authorized_keys нужному пользователю, а private key отдаем, тому кто будет подключаться к серверу.
Да, файл authorized_keys у меня выглядит примерно так:
То есть запрещаем всякую лишнюю хуйню. Ну и добавляем в белый список команды, которые будем позволять запускать этому пользователю.
Важная штука, потребуется файл с правилами, называется .onlyrules. Забирай тут.
Этот файл нужно также скопировать в папку, того пользователя, которого ограничиваем, например в
Правила нужны, чтобы еще сильнее ограничить пользователя на ввод команд, этакие лимиты на регулярках и sed.
Короче это фильтры на аргументы, ключи и т.п. Можно не заморачиваться и просто обернуть нужные команды между
Все файлы из этого поста можешь взять в нашей репе. А историю создания этой пепяки и мельчайшие подробности, можешь почитать тут кстати очень занятно чтиво, правда на английском, да и похер.
Лично мне эта штука понравилась, раздал тестировщикам ключики, теперь они сами могут своих вонючих демонов перезапускать, без блуждания по серверу и фраз — да блядь, я что-то нажал и всё сломалось!
Такие дела. Увидимся!
tags: #bash #linux #utils
@ВАSНDАYS | BАSHDАYS.CОM
Почему? Потому, что сейчас узнаешь про ONLY.
Частенько возникала необходимость разрешить пользователю запускать только определенные команды по ssh. То есть явно указать ему белый список таких команд.
Городили мы конечно знатные велосипеды с помощью костылей, rbash, симлинков, chroot и т.п.
Кстати про chroot писал в этом посте, почитай на досуге, мож где применишь.
Все эти костыли были неудобные и какие-то пиздец сложно поддерживаемые. Но решение было найдено и вполне элегантное. Всё уже
Для затравки:
/home/user/.ssh/authorized_keys command="only rsync ls cat" ssh-rsa AAAAB3Nza
Думаю идею ты понял. Пользователь подключается по ssh и может выполнить только 3 команды rsync, ls, cat.
И тут большой плюс - пользователь не получает интерактивную оболочку, то есть всё сводится к выполнению подобной конструкции:
ssh user@bashdays.ru ls /home/user/
Команда ls находится в белом списке и успешно отработает при подключении по ssh, а дальше сессия завершится.
Нехер ему на сервере делать. Есть список команд, вот пусть ими и довольствуется без интерактива.
ONLY это НЕ какая-то встроенная команда в Linux, это Bash скрипт, который аккуратно лежит в
/usr/local/sbin, положить его туда ты должен самостоятельно.1. Берем only из репы
2. Кидаем его в
/usr/local/sbin/only3. Ставим chmod +x чтобы запускался
4. Делаем пару ключей для работы
ssh-keygen -P "" -f only
P = пустая парольная фраза
f = задаем имя ключа
Содержимое ключа only pub добавляем в authorized_keys нужному пользователю, а private key отдаем, тому кто будет подключаться к серверу.
Да, файл authorized_keys у меня выглядит примерно так:
command="only rsync cat ls", no-agent-forwarding, no-port-forwarding, no-pty, no-user-rc, no-X11-forwarding ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAA
То есть запрещаем всякую лишнюю хуйню. Ну и добавляем в белый список команды, которые будем позволять запускать этому пользователю.
Важная штука, потребуется файл с правилами, называется .onlyrules. Забирай тут.
Этот файл нужно также скопировать в папку, того пользователя, которого ограничиваем, например в
/home/user/.onlyrulesПравила нужны, чтобы еще сильнее ограничить пользователя на ввод команд, этакие лимиты на регулярках и sed.
\:^ls$:{p;q}
\:^who$:{p;q}Короче это фильтры на аргументы, ключи и т.п. Можно не заморачиваться и просто обернуть нужные команды между
\:^ и $:{p;q}.Бонусом, в папке пользователя можешь разместить файл .onlyrc и затюнить всякие информационные сообщения. Но автор не рекомендует этого делать и использовать only без этого файла.
Все файлы из этого поста можешь взять в нашей репе. А историю создания этой пепяки и мельчайшие подробности, можешь почитать тут кстати очень занятно чтиво, правда на английском, да и похер.
Лично мне эта штука понравилась, раздал тестировщикам ключики, теперь они сами могут своих вонючих демонов перезапускать, без блуждания по серверу и фраз — да блядь, я что-то нажал и всё сломалось!
Такие дела. Увидимся!
tags: #bash #linux #utils
@ВАSНDАYS | BАSHDАYS.CОM
Please open Telegram to view this post
VIEW IN TELEGRAM
Привет, сегодня коротко, очередная внеплановая пятница. Короче в продолжение к постам про повышение привилегий.
Если звезды сошлись (suid/guid и прочая хуйня), то через vim ты можешь получить интерактивный root shell.
Делается так:
Или так:
На выходе тебе выплюнет доллар ($) ну и там уже бесоёбишь.
Это применимо не только к пентесту, но и к ситуации когда админ порезал оболочку, ограничив тебя белым списком.
И если в этом списке есть vi/vim, то ты ничем не ограничен. Запускаешь полноценный shell через vim и развлекаешься. А порой можно дотянутся и до папки /root и всего остального. Было бы желание🥳
Вектор этот очень распространён, добавил в бэклог. Сниму как-нибудь видос на ютубину, покажу так сказать всю подноготную выхода из клетки средствами vim.
Давай, хороших выходных! Я пожалуй тоже устрою себе внеплановый отпуск на пару дней. Увидимся!
Там еще ребята с какого-то облака пришли. Устроим с ними конкурс в ближайшее время с вкусными призами, обещают подвезти вам облачных плюшек на халяву, а я в свою очередь денежный бонус задоначу, приобретете себе чтонибудь пиздатое, например как Дима тут ))
tags: #linux #security #utils
@ВАSНDАYS | BАSHDАYS.CОM
Если звезды сошлись (suid/guid и прочая хуйня), то через vim ты можешь получить интерактивный root shell.
Делается так:
vim -c ':!/bin/sh'
Или так:
vim --cmd ':set shell=/bin/sh|:shell'
На выходе тебе выплюнет доллар ($) ну и там уже бесоёбишь.
Это применимо не только к пентесту, но и к ситуации когда админ порезал оболочку, ограничив тебя белым списком.
И если в этом списке есть vi/vim, то ты ничем не ограничен. Запускаешь полноценный shell через vim и развлекаешься. А порой можно дотянутся и до папки /root и всего остального. Было бы желание
Вектор этот очень распространён, добавил в бэклог. Сниму как-нибудь видос на ютубину, покажу так сказать всю подноготную выхода из клетки средствами vim.
Давай, хороших выходных! Я пожалуй тоже устрою себе внеплановый отпуск на пару дней. Увидимся!
Там еще ребята с какого-то облака пришли. Устроим с ними конкурс в ближайшее время с вкусными призами, обещают подвезти вам облачных плюшек на халяву, а я в свою очередь денежный бонус задоначу, приобретете себе чтонибудь пиздатое, например как Дима тут ))
tags: #linux #security #utils
@ВАSНDАYS | BАSHDАYS.CОM
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Майские праздники равносильны новогодним, уже на третий день начинаешь деградировать и превращаться в обезьяну. После таких затяжных выходных, нужно еще пару недель, чтобы вернуться к нормальной жизни.
Привет. Сегодня расскажу про штуку, которой одно время пользовался на локальной машине и снова к ней вернулся.
✔️ Называется Atuin — Magical shell history.
Если коротко, эта тулза заменяет стандартный поиск в командной строке по ctrl+r на красивенький и достаточно удобный.
Но помимо красивых пейзажей, вся история команд синхронизируется с облачным сервером. Используется база данных sqlite.
По сути у тебя одна общая история на нескольких машинах. Очень удобно если бегаешь между ноутом и стационарным компом.
Ты скажешь — фи, это же не безопасно! Согласен, поэтому есть варик поднять свой сервачок и синхронизировать через него.
Все в лучших традициях selfhosted. Мануал по установке сервера. Через docker-compose за пару минут все расчехляется.
Дополнительно:
- написана на rust + sqlite
- удобный поиск и фильтр
- история команд шифруется
- совместимо с Bash, ZSH, Fish, NuShell
Установка одной командой:
Короче рекомендую потыкать.
Сайт проекта: https://atuin.sh/
Страница на github: https://github.com/atuinsh/atuin
tags: #linux #utils
@ВАSНDАYS | BАSHDАYS.CОM
Привет. Сегодня расскажу про штуку, которой одно время пользовался на локальной машине и снова к ней вернулся.
Если коротко, эта тулза заменяет стандартный поиск в командной строке по ctrl+r на красивенький и достаточно удобный.
Но помимо красивых пейзажей, вся история команд синхронизируется с облачным сервером. Используется база данных sqlite.
По сути у тебя одна общая история на нескольких машинах. Очень удобно если бегаешь между ноутом и стационарным компом.
Ты скажешь — фи, это же не безопасно! Согласен, поэтому есть варик поднять свой сервачок и синхронизировать через него.
Все в лучших традициях selfhosted. Мануал по установке сервера. Через docker-compose за пару минут все расчехляется.
Кстати если нажать стрелочку вверх, сработает триггер и откроется морда atuin с историей, пиздатенько!
Дополнительно:
- написана на rust + sqlite
- удобный поиск и фильтр
- история команд шифруется
- совместимо с Bash, ZSH, Fish, NuShell
Установка одной командой:
/bin/bash -c "$(curl --proto '=https' --tlsv1.2 -sSf https://setup.atuin.sh)"
Короче рекомендую потыкать.
Сайт проекта: https://atuin.sh/
Страница на github: https://github.com/atuinsh/atuin
tags: #linux #utils
@ВАSНDАYS | BАSHDАYS.CОM
Please open Telegram to view this post
VIEW IN TELEGRAM
Здарова! Годнота подъехала!
Если любишь копаться в «кишочках» эта штука тебе обязательно пригодится, называется Binsider.
Короче это хуйня на расте позволяет анализировать «Эльфов» (ELF бинарники).ㅤ
- Статический анализ: изучение структуры бинарного файла, включая секции, сегменты, символы и релокации.
- Динамический анализ: выполнение бинарного файла с отслеживанием системных вызовов и сигналов (strace/ltrace).
- Извлечение строк: поиск полезных строк (например, паролей или URL) внутри бинарного файла.
- Шестнадцатеричный дамп: просмотр содержимого файла в виде шестнадцатеричного кода с удобной визуализацией.
Инструкция по установке тут, есть докеры-хуёкеры и т.п.
Я собрал из исходников, делов 30 секунд:
➡️ Репка на гитхабе
➡️ Заценить на ютубе
Обязательно посмотри, рекомендую!
Ааа, еще всех вас с пятницей, хороших предстоящих выходных. Ну и самое главное — береги себя! Всех обнял🙃
tags: #debug #linux #utils #utilites
—
🔔 @bashdays➡️ @gitgate
Если любишь копаться в «кишочках» эта штука тебе обязательно пригодится, называется Binsider.
Я себе в арсенал ее добавил, штука охуительная, при условии если знаешь зачем оно тебе и как этим пользоваться. Я пока не знаю, но обязательно разберусь.
У хорошего девопса и бычий хуй веревка!
Короче это хуйня на расте позволяет анализировать «Эльфов» (ELF бинарники).ㅤ
- Статический анализ: изучение структуры бинарного файла, включая секции, сегменты, символы и релокации.
- Динамический анализ: выполнение бинарного файла с отслеживанием системных вызовов и сигналов (strace/ltrace).
- Извлечение строк: поиск полезных строк (например, паролей или URL) внутри бинарного файла.
- Шестнадцатеричный дамп: просмотр содержимого файла в виде шестнадцатеричного кода с удобной визуализацией.
Инструкция по установке тут, есть докеры-хуёкеры и т.п.
Я собрал из исходников, делов 30 секунд:
cd /tmp
VERSION="0.1.0"
wget "https://github.com/orhun/binsider/releases/download/v${VERSION}/binsider-${VERSION}-x86_64-unknown-linux-gnu.tar.gz"
tar -xvzf binsider-*.tar.gz
cd "binsider-${VERSION}"
./binsider
Обязательно посмотри, рекомендую!
Ааа, еще всех вас с пятницей, хороших предстоящих выходных. Ну и самое главное — береги себя! Всех обнял
tags: #debug #linux #utils #utilites
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
55 48 12
Есть штука прикольнее, называет — tig.
ㅤ
Это утилита-обёртка для git с консольной мордой лица (ncurses). Охуенно заходит для быстро позырить историю коммитов и прочие непотребства.
- Просмотр истории и логов
- Отображение состояния репозитория
- Работа с изменениями на уровне отдельных блоков
- Поиск по содержимому файлов
Можно конечно и через нативные git командами всё это глянуть, но любителям новогодних ёлок — tig однозначно зайдёт.
Звездочек у проекта достаточно дохуя (12к), поэтому рекомендую забрать в свой рабочий инструментарий. Авось зайдёт на постоянку. Потыкай.
Установка:
apt install tigРепа на гитхабе: https://github.com/jonas/tig
tags: #utils #linux
—
Please open Telegram to view this post
VIEW IN TELEGRAM
8 47 8
This media is not supported in your browser
VIEW IN TELEGRAM
А у нас тут это — ssh_commander
Эта штука позволяет запускать команды по ssh на нескольких серверах одновременно.
Ни циклов тебе, ни ансиблов, для быстрых манипуляций — сгодится. Написан на змеях.
В коробке много еще всяких фишек, посмотри на досуге ради интереса, авось в хозяйстве сгодится.
➡️ Проект на гитхабе
Заявлена поддержка винды, маков, хуяков.
tags: #linux #utils
—
🔔 @bashdays➡️ @gitgate
Эта штука позволяет запускать команды по ssh на нескольких серверах одновременно.
Что прикольно — можно выполнять команды из файлов. Нахуячил инструкций в файл, скормил этой тулзе, запустил. Вуаля!
Ни циклов тебе, ни ансиблов, для быстрых манипуляций — сгодится. Написан на змеях.
В коробке много еще всяких фишек, посмотри на досуге ради интереса, авось в хозяйстве сгодится.
Заявлена поддержка винды, маков, хуяков.
tags: #linux #utils
—
Please open Telegram to view this post
VIEW IN TELEGRAM
1 61