rxd_txd
301 subscribers
505 photos
31 videos
22 files
2.79K links
Download Telegram
🖥 Смотрите какой крутой дашборд нашёл - bashtop называется. Написан на баше (требует версию 5+), умеет показывать общую информацию, детальную инфорацию по каждому процессу, позволяет процессы сортировать по различным параметрам. Очень круто выглядит, и легко конфигурируется. Вобщем, бегом смотреть, если ещё не видели его.

#bash #git #tui
https://mywiki.wooledge.org/BashPitfalls

This page is a compilation of common mistakes made by bash users. Each example is flawed in some way.

#bash
🛠 hiSHtory - занятная утилита для работы с историей команд. Ведёт статистику их выполнения, сохраняет дополнительную информацию о них (например, код завершения, или время выполнения команды), и позволяет всё это дело между машинами синхронизировать.

https://github.com/ddworken/hishtory

#bash #history #будничное
Forwarded from Bash Days | Linux | DevOps (Роман Шубин)
Ты - самый счастливый человек на планете!

Почему? Потому, что сейчас узнаешь про 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/only
3. Ставим 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
Forwarded from Useful Tools | Linux | GitOps | DevOps (Dmitry Malinin)
bunster - скомпилируйте сценарии оболочки bash в статические двоичные файлы.

Вы когда-нибудь хотели, чтобы ваши сценарии оболочки были быстрее, портативнее и безопаснее? Bunster воплощает это в жизнь, преобразуя ваши сценарии оболочки в эффективные автономные двоичные файлы, которые легко распространять и развертывать на разных платформах (на данный момент поддерживается только Unix) .

В отличие от других инструментов, Bunster не просто оборачивает ваши сценарии в двоичный файл - он компилирует их в эффективный машинный код, используя мощную цепочку инструментов Go. Это обеспечивает производительность, портативность и надежность.

Технически говоря, Bunster на самом деле является shell-to-Go транслятором, который генерирует исходный код Go из ваших скриптов. Затем при необходимости используется Go Toolchain для компиляции кода в исполняемую программу.

https://github.com/yassinebenaid/bunster

опубликовано в @gitgate

#bash #go #binary #compiller