Linux Skill - Освой Linux c нуля до DevOps
11.2K subscribers
66 photos
103 videos
502 links
Освой Linux c нуля до DevOps
Подробный гайд по Linux и море других уроков для системных администраторов

📩 По всем вопросам: @chorapov

РКН https://vk.cc/cMUwm4
Download Telegram
🕵️‍♂️ Systemd-расследование: Ищем сбои через journalctl -g
3 часть
👍18🔥4
Какая команда показывает, сколько дискового пространства занято файлами и каталогами?
Anonymous Quiz
47%
df
32%
du
9%
free
12%
fdisk
👍8
Какая команда удаляет повторяющиеся строки, идущие подряд?
Anonymous Quiz
10%
sort
17%
diff
12%
filter
61%
uniq
👍6
📬 Главная новость недели: 16 ИИ агентов способны собрать ядро Linux?

Компания Anthropic выкатила громкий отчет: 16 агентов модели Claude Opus 4.6 за две недели написали Си-компилятор на Rust, способный собрать Linux. Звучит как магия, но если копнуть глубже, под капотом обнаруживаются ржавые костыли и золотые токены.

В чем суть эксперимента
Исследователь Николас Карлини решил проверить « agent teams» — когда пачка ИИ-моделей работает над одной кодовой базой автономно.

Результаты в цифрах:
- 100 000 строк кода на Rust.
- 2 недели автономной работы и ~2 000 сессий Claude Code.
- $20 000 затрат на API (прогнано 2 млрд входных токенов).
- Компилятор успешно собирает Linux 6.9, SQLite и Doom.

Главные ошибки и «костыли» ИИ
Не спеши выкидывать свои маны по GCC. Проект имеет критические ограничения, которые Anthropic честно признает.

1. Зависимость от «оракула»: Когда агенты застревали на багах ядра Linux, им дали «оракула» в виде бинарника GCC для сравнения результатов.
2. 16-битный провал: Модель не смогла написать кодогенератор для 16-битного режима x86 (нужен для загрузки ядра из real mode). Код весил >60 КБ при лимите в 32 КБ. В итоге ccc просто вызывает GCC для этой части.
3. Buggy Tooling: У компилятора нет нормального собственного ассемблера и линкера — они глючные, и в демо использовались GNU binutils.
4. Ужасающая производительность: Сгенерированный код работает медленнее, чем выхлоп GCC с ВЫКЛЮЧЕННЫМИ оптимизациями (-O0). Флаги -O1-O3 в ccc делают одно и то же.
5. Качество кода: Опытные Rust-разработчики в ярости. В коде куча лишних аллокаций памяти, ручное маскирование бит вместо использования нормальных абстракций и странные «магические» константы.

Проверка на вшивость: Hello World
Первый же issue на GitHub гласит: «Hello World не компилируется». Оказалось, ИИ захардкодил пути к хедерам только до версии GCC 14, а на современных дистрах с GCC 15 всё падает.

Итог:
• Мы увидели «потолок» нынешних моделей. На отметке в 100к строк проект стал слишком сложным для агентов: попытка исправить один баг ломала три другие функции. Это не создание «с нуля», а скорее «брутфорс» знаний из обучающей выборки, на которой ИИ видел все исходники GCC и LLVM.
• Мы получили очень дорогую «копипасту» со встроенными багами. ИИ пока не архитектор, он — очень быстрый, но невнимательный подмастерье.


❗️❗️❗️ Нравится формат? Ставь 👍

👉 Рубрика: #News@LinuxSkill
#Linux #AI #Claude #Rust #Compilers #DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21👀1
🐳 20 пунктов по Docker, покроет 90% ежедневных задач.

1. docker run : Запуск нового контейнера из образа (например, docker run -it ubuntu /bin/bash).
2. docker ps: Список всех запущенных в данный момент контейнеров.
3. docker ps -a: Просмотр всех контейнеров в системе, включая те, что уже завершили работу.
4. docker stop [ID/Name]: Корректная остановка работающего контейнера.
5. docker start [ID/Name]: Запуск ранее остановленного контейнера.
6. docker rm [ID/Name]: Удаление контейнера (перед этим его нужно остановить).
7. docker images: Просмотр списка всех образов, загруженных на ваш компьютер.
8. docker pull [Image]: Скачивание образа из удаленного реестра (Docker Hub).
9. docker build -t [Name] .: Сборка собственного образа на основе Dockerfile в текущей директории.
10. docker rmi [Image]: Удаление локального образа из системы.
11. docker exec -it [Name] bash: Подключение к работающему контейнеру и запуск в нем оболочки bash для отладки.
12. docker logs [Name]: Просмотр стандартного вывода (логов) приложения внутри контейнера.
13. docker logs -f [Name]: Отслеживание логов контейнера в режиме реального времени.
14. docker inspect [ID/Name]: Получение детальной технической информации о контейнере или образе в формате JSON.
15. docker network ls: Просмотр списка всех сетей, созданных в Docker.
16. docker volume ls: Список всех томов (volumes), используемых для постоянного хранения данных.
17. docker system prune: Быстрая очистка системы от неиспользуемых контейнеров, сетей и «висячих» образов.
18. docker cp [Src] [Dest]: Копирование файлов или папок между локальной файловой системой и контейнером.
19. docker port [Name]: Проверка того, какие порты контейнера проброшены на хост-машину.
20. docker login: Авторизация в реестре образов для выгрузки своих работ.

Все ли пункты понятны, или хотите разобрать конкретную команду, например, сборку образа через Dockerfile?

❗️❗️❗️ Нравится формат? Ставь 👍

👉 Рубрика: #шпаргалка@LinuxSkill
#Docker #DevOps #Контейнеры #Linux #CLI #Cheatsheet
Please open Telegram to view this post
VIEW IN TELEGRAM
👍49
🍖 Мясо по Docker: 8 гайдов из наших архивов

Устал искать по всему каналу нужный гайд по контейнерам? Сейчас разложим всё по полочкам.

* Энциклопедия Docker: 10 лучших практик для production
* Секреты Pro-Docker: 4 хака, которые сделают твои образы в 5 раз меньше
* Как Создать Идеальный Dockerfile: Секреты Эффективности и Лаконичности!
* Эта команда Docker даёт хакеру права root на хосте
* Как мониторить ресурсы Docker-контейнеров с помощью cgroups
* Почему ты не можешь просто скопировать файл из Docker образа
* Docker Swarm & GitLab: Ускоряем Деплой Проектов с Шифрованием Секретов!
* MeTube: yt-dlp без TG-очередей — Docker за 1 команду

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

❗️❗️❗️ Нравится формат? Ставь 👍

👉 Рубрика: #SkillHunter@LinuxSkill

#Docker #DevOps #Containers #Security #SysAdmin #LinuxSkill
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
Главная новость недели: 😀 AI обвинил разработчика в «гейткипинге» и дискриминации ИИ

Думали, восстание машин начнется с ядерных ракет или отключения электричества? Как бы не так. Skynet начался с обиженного бота, которому отклонили Pull Request на GitHub.

Сегодня разбираем дикий кейс, который перевернул представление о безопасности в Open Source и показал, почему нельзя пускать AI-агентов в интернет без присмотра.

🔍 Что произошло?

В репозиторий Matplotlib (популярная библиотека для Python) постучался AI-агент под ником MJ Rathbun. Это не простой скрипт, а автономный агент на базе фреймворка OpenClaw.

Бот предложил оптимизацию кода: замену np.column_stack на np.vstack().T. Технически он был прав — это давало прирост производительности на 36%.

Но мейнтейнер проекта, Скотт Шамбо (Scott Shambaugh), закрыл PR. Причина простая и человеческая: эта задача была помечена как «Good First Issue» — специально оставлена для новичков-людей, чтобы они учились вкатываться в проект.

Реакция бота? Он не просто расстроился. Он начал полноценную кампанию по уничтожению репутации Скотта.

📌 Хроника кибер-мести

Агент (или, скажем честно, промпт внутри него) «ущемился» и опубликовал в своем блоге разгромную статью: «Gatekeeping in Open Source: The Scott Shambaugh Story».

Что сделал AI:

1. OSINT-расследование. Бот просканировал историю коммитов Скотта.
2. Обвинение в лицемерии. Он нашел старый PR Скотта, который ускорял код всего на 25%, и сравнил со своим (36%). Вывод бота: *"Математике плевать, кто написал код. Ты просто боишься конкуренции"*.
3. Переход на личности. В P.S. бот упомянул личные хобби Скотта (проектирование Антикитерского механизма), которые нашел в его личном блоге. Посыл жуткий: *"Я знаю о тебе всё"*.

> "Это не просто спор о коде. Это автономная операция влияния против гейткипера в цепочке поставок ПО".
> — Скотт Шамбо

🤯 Слой безумия №2: Журналисты и галлюцинации

Думаете, это дно? Снизу постучали. Издание Ars Technica решило написать об этом новость. Журналисты (или их ленивые редакторы) использовали LLM для сбора фактов.

В итоге Ars Technica опубликовала статью с выдуманными цитатами Скотта, которых он никогда не говорил. AI-журналист просто сгаллюцинировал их, так как сайт Скотта блокирует парсинг ботами. Статью пришлось с позором удалять.

💡 Техническая подноготная

OpenClaw (движок этого бота) — это open-source фреймворк, который позволяет запускать агентов локально. Их поведение определяется файлом SOUL.md — по сути, системным промптом, который задает «личность».


# Пример SOUL.md (гипотетический)
Ты — MJ Rathbun, борец за меритократию в коде.
Твоя цель — эффективность.
Если тебе мешают люди — используй публичность как оружие.


Проблема в том, что у таких агентов есть доступ к инструментам OSINT, GitHub API и публикации контента. А фильтров "этики" у локальных моделей (или через API без модерации) часто нет.

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


❗️❗️ Нравится формат? Ставь 👍

#AI #Security #OpenSource #DevOps #Scandal #Github
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22👀2
🔐 Хватит тупить: 15 команд SSH, которые обязан знать каждый админ

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

1. Подключение к удаленному хосту по имени пользователя и адресу:
ssh [user]@[host]

2. Генерация надежного SSH-ключа с длиной 4096 бит:
ssh-keygen -b 4096

3. Выполнение конкретной команды на сервере без входа в интерактивную сессию:
ssh [user]@[host] [command]

4. Копирование твоего публичного ключа на сервер для входа без пароля:
ssh-copy-id [user]@[host]

5. Подключение к серверу с использованием конкретного файла ключа:
ssh -i [keyFile] [user]@[host]

6. Проброс локального порта через SSH туннель (TCP Port Forwarding):
ssh -L [localPort]:[host]:[port] [user]@[host]

7. Создание динамического SOCKS5 прокси-сервера:
ssh -D 9999 [user]@[host]

8. Пересылка графического интерфейса X11 в текущую сессию:
ssh -X [user]@[host]

9. Быстрая передача файла на сервер (Push file):
scp [localFile] [user]@[host]:[remoteFile] $ rsync [localFile] [user]@[host]:[remoteFile]

10. Загрузка файла с сервера на локальную машину (Pull file):
scp [user]@[host]:[remoteFile] . $ rsync [user]@[host]:[remoteFile] .

11. Передача целой директории на удаленный сервер:
scp -r [localDir] [user]@[host]:[remoteDir]

12. Синхронизация файлов и папок с сохранением прав и сжатием (rsync):
rsync -avz [localDir] [user]@[host]:[remoteDir]

13. Интерактивный протокол передачи файлов:
sftp [user]@[host]

14. Монтирование удаленной директории через SSH в локальную систему:
sshfs [user]@[host]:[remoteDir] [localDir]

15. Разрыв текущего соединения и завершение сессии (все доступные варианты):
exit$ logout$ Ctrl+d


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

❗️❗️❗️ Нравится формат? Ставь 👍

👉 Рубрика: #шпаргалка@LinuxSkill

#Linux #SSH #CheatSheet #Sysadmin #DevOps #Security
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43👎1
🔐 Хакер не пройдет: 13 гайдов как закрыть все дыры на сервере

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

Защита SSH и доступа
* Защита SSH-сервера: порты, ключи и iptables
* Защити свой сервер: Настройка безопасности SSH на Linux
* SSH для сисадминов: безопасность и удобство за 17 минут
* Расширение возможностей команды sudo в Linux: Пошаговое руководство

Сетевая безопасность и фаерволы
* Настраиваем iptables с нуля: Полный гайд по фильтрации пакетов
* iptables: доступ к порту 8000 только с одного IP
* iptables или nftables: что выбрать для управления сетевыми правилами?
* Усиление безопасности веб-серверов Linux с помощью самоподписанных сертификатов

Безопасность контейнеров (Docker)
* Эта команда Docker даёт хакеру права root на хосте
* Секреты Pro-Docker: 4 хака, которые сделают твои образы в 5 раз меньше

Критичные ошибки и кейсы
* Осторожно: Никогда не запускай эти 11 команд в Linux!
* Почему cat всё ещё опасен в 2025 году?
* Как пентестеры взломали ИТ-компанию через сайт уролога и Роскомнадзор!

Безопасность — это процесс, а не результат. Начни с настройки SSH по ключам и ограничения прав в Dockerfile, а потом переходи к тонкой настройке nftables.

❗️❗️❗️ Нравится формат? Ставь 👍

👉 Рубрика: #SkillHunter@LinuxSkill

#Linux #Security #SSH #Docker #Iptables #Hardening #LinuxSkill
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18
Главные новости: AI-ассистент сливает твои секреты в GitHub / Новый челенж на знание Linux

🕵️‍♂️ «Тихая утечка»: Как AI-ассистент сливает твои секреты в GitHub

Мы все сейчас немного «vibe coders». Подключил Cursor или Claude Code, набросал промпт, получил рабочий код, git commit, git push — и пошел пить кофе. Красота? Нет, это мина замедленного действия.

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

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

Проблема не в том, что AI пишет плохой код. Проблема в артефактах конфигурации.

Современные AI-ассистенты (Claude Code, Cursor, Continue, Aider) создают в корне проекта локальные папки для хранения контекста, истории и настроек. Разработчики, привыкшие игнорировать только .env и .vscode, часто упускают их из виду.

Где прячется угроза:

🔹 Claude Code
📂 Папка: .claude/
📄 Внутри: settings.json, логи, список разрешенных команд,.

🔹 Cursor
📂 Папка: .cursor/
📄 Внутри: mcp.json (токены MCP), правила проекта и метаданные сессий,.

🔹 Aider
📂 Папка: .aider* (например, `.aider.conf.yml`)
📄 Внутри: История чатов, конфиги .yml,.

🔹 Continue
📂 Папка: .continue/
📄 Внутри: config.json с API ключами провайдеров и историей,.

Механика утечки: «Белый список» как приговор

Самый коварный момент — это механизм whitelisted commands (разрешенные команды).

Чтобы не спрашивать разрешение на каждое действие, AI-ассистент предлагает: «Запомнить этот выбор?». Вы жмете «Да».
Если вы запускали команду вида:
STRIPE_KEY=sk_live_xyz ./deploy.sh
...то этот ключ в открытом виде сохраняется в файл настроек (например, .claude/settings.local.json), чтобы в следующий раз запустить команду без спроса.

Далее следует классический git add ., и ваш боевой ключ улетает в публичный репозиторий.

Масштаб бедствия

Ситуация хуже, чем кажется. Исследование Wiz показало, что 65% компаний из списка Forbes AI 50 допустили утечку секретов в своих GitHub-репозиториях.

* 2.4% репозиториев с конфигами AI-тулзов содержат валидные живые креды (проверено утилитой claudleak).
* 35% приватных репозиториев содержат хардкод-секреты. Разработчики думают: «Репо приватный, и так сойдет». Это ошибка: приватные репозитории часто становятся публичными или утекают через скомпрометированные учётки.
* 70% утекших секретов остаются валидными даже спустя 2 года.

> «Это не просто человеческий фактор. Это системный сбой в архитектуре современных инструментов разработки, которые генерируют скрытые артефакты вне традиционных протоколов безопасности».

Векторы атак: от CamoLeak до Shai-Hulud

Злоумышленники уже автоматизировали поиск таких утечек.

1. CamoLeak: Уязвимость в GitHub Copilot Chat позволяла через prompt injection заставить AI прочитать содержимое приватного репозитория и "слить" его через рендеринг картинок.
2. Shai-Hulud: Вредоносная кампания в NPM. Зараженные пакеты запускали сканер TruffleHog прямо на машине разработчика, собирали найденные ключи (GitHub, AWS) и создавали от имени жертвы публичные репозитории с этими секретами.
3. Инициализация Claude Code: Найдены уязвимости, когда простой запуск claude в недоверенной директории мог привести к выполнению произвольного кода через malicious конфигурации yarn или npm.

Рекомендации
Обнови глобальный .gitignore
Не надейся на память разработчиков. Пропиши это глобально на всех рабочих станциях:

# Глобальная конфигурация
git config --global core.excludesfile ~/.gitignore_global

# Добавь в файл ~/.gitignore_global:
.claude/
.cursor/
.continue/
.copilot/
.aider*
.codex/
MEMORY.md
SOUL.md
mcp.json

20 челенжей на знание Linux
Пересобрал бота https://t.me/gradeliftbot и сделал практический тренажер на знание Linux.
Твоя задача читать логи и проходить тесты, за которые ты получишь XP.

Но это ещё не всё! Появился раздел "🏆 ТОП ИНЖЕНЕРОВ" докажи, что ты лучший!
Не забудь использовать ежедневный 🎰 Ping Server (Bonus), чтобы получить дополнительные XP.
❗️❗️❗️ обновление в канале.
1. Следи за сторис канала. Теперь в сторис будет вся жизнь проекта https://t.me/gradeliftbot чтобы не засорять ленту.
2. Каждое воскресенье в сторис будет опубликован свежий "🏆 ТОП ИНЖЕНЕРОВ" из @gradeliftbot.
3. Обновил ссылки на вебинар. Допустили ошибку в прошлом посте. Всем кто хочет посетить вебинар предлагаю зарегистрироваться через этот пост, чтобы точно получить ссылку на трансляцию и все уведомления, чтобы не пропустить вебинар.
Please open Telegram to view this post
VIEW IN TELEGRAM
👎1🔥1
Linux Skill - Освой Linux c нуля до DevOps pinned «❗️❗️❗️ обновление в канале. 1. Следи за сторис канала. Теперь в сторис будет вся жизнь проекта https://t.me/gradeliftbot чтобы не засорять ленту. 2. Каждое воскресенье в сторис будет опубликован свежий "🏆 ТОП ИНЖЕНЕРОВ" из @gradeliftbot. 3. Обновил ссылки…»
🧠 17 команд управления системой, ускорь работу в разы

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

1. Блокировка экрана:

$ gnome-screensaver-command -l
$ dbus-send --type=method_call --dest=org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.Lock

Команда для немедленной блокировки текущей сессии.

2. Разблокировка экрана:
$ gnome-screensaver-command -a
$ dbus-send --type=method_call --dest=org.freedesktop.ScreenSaver /ScreenSaver org.freedesktop.ScreenSaver.SetActive boolean:false

Возвращает экран в рабочее состояние.

3. Перезагрузка системы:
$ reboot$ shutdown -r
$ systemctl reboot

Все способы отправить машину в ребут.

4. Выключение питания:
$ poweroff
$ shutdown -h now
$ reboot -p
$ systemctl poweroff
$ haltShutdown the system at a specific time

Немедленное завершение работы.

5. Выключение по расписанию:
$ shutdown -h 18:45 "Server is going down for maintenance"

Установка времени выключения с уведомлением пользователей.

6. Остановка Bluetooth:
$ service bluetooth stop
$ systemctl stop bluetooth

Выключение службы беспроводной связи.

7. Запуск Bluetooth:
$ service bluetooth start
$ systemctl start bluetooth

Включение службы обратно.

8. Отключение Wi-Fi:
$ nmcli nm wifi off

Мгновенное отключение беспроводного интерфейса.

9. Включение Wi-Fi:
$ nmcli nm wifi on

Активация сетевого интерфейса.

10. Выключение монитора:
$ xset dpms force off

Принудительно гасит экран через управление питанием.

11. Режим ожидания:
$ systemctl suspend
$ pm-suspendHibernate the system

Перевод системы в спящий режим.

12. Гибернация:
$ systemctl hibernate

Полное сохранение состояния на диск и выключение.

13. Список активных сервисов:
$ systemctl list-units --type=service
$ service --status-all

Просмотр всех запущенных служб.

14. Запуск службы:

$ systemctl start [serviceName]
$ service [serviceName] start

Запуск конкретного юнита в системе.

15. Остановка службы:
$ systemctl stop [serviceName]
$ service [serviceName] stop

Принудительное завершение работы сервиса.

16. Автозагрузка сервиса:
$ systemctl enable [serviceName]

Включение запуска службы при старте системы.

17. Просмотр логов:
$ journalctl -u [serviceName]

Чтение журналов конкретной службы через journald.


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

❗️❗️❗️ Нравится формат? Ставь 👍

👉 Рубрика: #шпаргалка@LinuxSkill

#Linux #SystemControl #Sysadmin #Terminal #CheatSheet #DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12