Из Linux удаляют огромное количество драйверов устройств… потому что разработчики ядра Linux не хотят разбираться с потоком сгенерированных ИИ патчей и "ИИ-багрепортов" по этим драйверам.
Среди удаляемых драйверов Linux – драйверы для мышей, Ethernet-карт, любительского радиооборудования, NFC и других устройств, включая legacy-железо ещё с 2002 года.
Другими словами: ИИ/LLM напрямую приводят к тому, что Linux начинает поддерживать заметно меньше оборудования.
✈️ Linux Ninja
Среди удаляемых драйверов Linux – драйверы для мышей, Ethernet-карт, любительского радиооборудования, NFC и других устройств, включая legacy-железо ещё с 2002 года.
Другими словами: ИИ/LLM напрямую приводят к тому, что Linux начинает поддерживать заметно меньше оборудования.
«Давайте удалим это, раз LLM уже начинают туда лезть».
«Эти старые драйверы — LLM-покалипсис».
«До недавнего времени эти старые драйверы почти не создавали нагрузки по сопровождению. Но теперь новички используют ИИ и фаззеры для поиска проблем, из-за чего у мейнтейнеров становится больше работы».
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Как проиндексировать весь исходный код Linux Kernel (28 млн строк) для AI-агента всего за 3 минуты?
Нужно перестать заставлять агента читать файлы по одному.
Недавно вышел любопытный open-source проект —
Это движок для анализа кода, который заменяет обычный поиск по файлам на высокоскоростной граф знаний, построенный на AST.
Самое интересное здесь — исследование, на котором основан проект.
Согласно результатам из статьи arXiv:2603.27277, где систему тестировали на 31 реальном репозитории, такой подход даёт:
→ снижение расхода токенов на структурные запросы на 99%
→ 83% качества ответов на сложных задачах
→ в 2,1 раза меньше вызовов инструментов
Система строит граф функций, классов, HTTP-маршрутов и связей между сервисами. Когда агенту нужен контекст, он запрашивает данные напрямую из графа, а не перебирает файлы.
Отдельный плюс — всё работает полностью локально.
Без Docker, Ollama и API-ключей.
Скачиваешь бинарник, перезапускаешь агента — и можно работать.
Интересно, насколько сильно такие индексы смогут сократить расходы на AI-разработку в ближайшие годы.
https://github.com/DeusData/codebase-memory-mcp
✈️ Linux Ninja
Нужно перестать заставлять агента читать файлы по одному.
Недавно вышел любопытный open-source проект —
codebase-memory-mcp.Это движок для анализа кода, который заменяет обычный поиск по файлам на высокоскоростной граф знаний, построенный на AST.
Самое интересное здесь — исследование, на котором основан проект.
Согласно результатам из статьи arXiv:2603.27277, где систему тестировали на 31 реальном репозитории, такой подход даёт:
→ снижение расхода токенов на структурные запросы на 99%
→ 83% качества ответов на сложных задачах
→ в 2,1 раза меньше вызовов инструментов
Система строит граф функций, классов, HTTP-маршрутов и связей между сервисами. Когда агенту нужен контекст, он запрашивает данные напрямую из графа, а не перебирает файлы.
Отдельный плюс — всё работает полностью локально.
Без Docker, Ollama и API-ключей.
Скачиваешь бинарник, перезапускаешь агента — и можно работать.
Интересно, насколько сильно такие индексы смогут сократить расходы на AI-разработку в ближайшие годы.
https://github.com/DeusData/codebase-memory-mcp
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
SSH-туннели: локальный и удалённый проброс портов
SSH – технология старой школы, которая до сих пор остаётся невероятно полезной. Всего одной командой
В этом обновлённом туториале разбирается SSH port forwarding с диаграммами, практическими лабораторными заданиями и наглядной шпаргалкой, которая поможет понять разные типы SSH-туннелей и запомнить нужные флаги:
https://labs.iximiuz.com/tutorials/ssh-tunnels🍆
✈️ Linux Ninja
SSH – технология старой школы, которая до сих пор остаётся невероятно полезной. Всего одной командой
ssh можно:- Получить доступ к приватным сервисам внутри VPC через bastion host
- Открыть в браузере порт localhost на удалённой машине
- Пробросить сервис из homelab наружу через публичный сервер
- Превратить SSH-соединение в SOCKS-прокси для всей приватной сети
В этом обновлённом туториале разбирается SSH port forwarding с диаграммами, практическими лабораторными заданиями и наглядной шпаргалкой, которая поможет понять разные типы SSH-туннелей и запомнить нужные флаги:
https://labs.iximiuz.com/tutorials/ssh-tunnels
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤🔥2
Реверс-инжиниринг и извлечение прошивки из смарт-часов — Damien Cauquil
https://blog.quarkslab.com/modern-tale-blinkenlights.html
✈️ Linux Ninja
https://blog.quarkslab.com/modern-tale-blinkenlights.html
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
nsntrace — инструмент для захвата трафика нужного приложения в Linux.
С помощью создания виртуальных интерфейсов и отдельного сетевого пространства имён, nsntrace запускает нужное нам приложение, и выполняет трассировку трафика только для него используя libpcap. Результат работы может быть либо перенаправлен в другое приложение, либо в файл, который можно будет прочитать любой стандартной утилитой, умеющей работать с pcap.
1. Ставим nsntrace из репозитория:
2. Пробуем выполнить захват трафика для обычного wget, который обращается к сайту. По-умолчанию, дамп будет иметь имя nsntrace.pcap:
Аналогично для PHP скрипта, например:
3. Работаем с дампом привычной утилитой, в данном случае tcpick:
Собрать nsntrace из исходников, при необходимости можно так:
Github проекта: https://github.com/nsntrace/nsntrace
✈️ Linux Ninja
С помощью создания виртуальных интерфейсов и отдельного сетевого пространства имён, nsntrace запускает нужное нам приложение, и выполняет трассировку трафика только для него используя libpcap. Результат работы может быть либо перенаправлен в другое приложение, либо в файл, который можно будет прочитать любой стандартной утилитой, умеющей работать с pcap.
1. Ставим nsntrace из репозитория:
# apt install nsntrace
# dnf install nsntrace
2. Пробуем выполнить захват трафика для обычного wget, который обращается к сайту. По-умолчанию, дамп будет иметь имя nsntrace.pcap:
# nsntrace --use-public-dns wget -q -O /dev/null https://sysadmin.pm/
Starting network trace of 'wget' on interface enp1s0.
Your IP address in this trace is 172.19.28.255.
Use ctrl-c to end at any time.
Finished capturing 131 packets.
Аналогично для PHP скрипта, например:
# nsntrace php -f index.php
Starting network trace of 'php' on interface enp1s0.
Your IP address in this trace is 172.19.213.255.
Use ctrl-c to end at any time.
Finished capturing 52 packets.
3. Работаем с дампом привычной утилитой, в данном случае tcpick:
# tcpick -r nsntrace.pcap
Starting tcpick 0.2.1 at 2023-04-28 12:28 MSK
Timeout for connections is 600
tcpick: reading from nsntrace.pcap
1 SYN-SENT 172.19.28.255:40638 > 104.244.78.134:https
1 SYN-RECEIVED 172.19.28.255:40638 > 104.244.78.134:https
1 ESTABLISHED 172.19.28.255:40638 > 104.244.78.134:https
1 FIN-WAIT-1 172.19.28.255:40638 > 104.244.78.134:https
1 FIN-WAIT-2 172.19.28.255:40638 > 104.244.78.134:https
1 RESET 172.19.28.255:40638 > 104.244.78.134:https
tcpick: done reading from nsntrace.pcap
131 packets captured
1 tcp sessions detected
Собрать nsntrace из исходников, при необходимости можно так:
# apt install automake docbook-xml docbook-xsl iptables libnl-route-3-dev libpcap-dev pkg-config xsltproc git make gcc
# git clone https://github.com/nsntrace/nsntrace
# cd nsntrace/
# ./autogen.sh
# ./configure
# make
Github проекта: https://github.com/nsntrace/nsntrace
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7
Попался сегодня пост про traceroute, и вспомнил, как часто эта штука реально спасает, когда сеть ведёт себя как-то странно.
Traceroute по сути делает простую вещь: отправляет пакеты с разным TTL и смотрит, где они умирают. Каждый роутер, на котором TTL падает в ноль, шлёт ответ типа "я тут, пакет сдох" — и так собирается маршрут до цели.
Когда пакет наконец добирается до сервера — прилетает другой ICMP-ответ, и на этом всё заканчивается.
Утилита умеет работать по-разному в зависимости от системы:
Linux/macOS: обычно гоняет UDP
Windows: использует ICMP, почти как ping, но smarter
TCP: отдельная версия, которая пробивается туда, где ICMP/UDP заблокированы фаерволами — например, на порты 80/443
Команды:
Linux:
Windows:
Зачем вообще это запускать?
- понять, на каком этапе всё разваливается
- увидеть, где растёт задержка
- проверить маршрут до сервисов, клаудов, VPN или CDN
✈️ Linux Ninja
Traceroute по сути делает простую вещь: отправляет пакеты с разным TTL и смотрит, где они умирают. Каждый роутер, на котором TTL падает в ноль, шлёт ответ типа "я тут, пакет сдох" — и так собирается маршрут до цели.
Когда пакет наконец добирается до сервера — прилетает другой ICMP-ответ, и на этом всё заканчивается.
Утилита умеет работать по-разному в зависимости от системы:
Linux/macOS: обычно гоняет UDP
Windows: использует ICMP, почти как ping, но smarter
TCP: отдельная версия, которая пробивается туда, где ICMP/UDP заблокированы фаерволами — например, на порты 80/443
Команды:
Linux:
traceroute google.com
Windows:
tracert google.com
Зачем вообще это запускать?
- понять, на каком этапе всё разваливается
- увидеть, где растёт задержка
- проверить маршрут до сервисов, клаудов, VPN или CDN
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2🔥2
Хватит качать четырёхгигабайтные ISO, чтобы создать Linux-ВМ. 🔨
Тебе не нужен инсталлятор, GUI или мастер в стиле Next > Next > Finish. Нужна просто директория с файлами.
Вот как я собираю кастомные, немного колхозные, но загрузочные Debian-ВМ примерно за минуту с помощью debootstrap.
По сути, любая дистрибуция это ядро плюс набор юзерспейс-бинарей. Если разложить эти файлы в нужные места на диске, ядро спокойно с этим заработает.
Инструмент, о котором почти никто не думает
Обычно мы воспринимаем VM-образы (.qcow2) как чёрный ящик. Но qemu-nbd позволяет примонтировать виртуальный диск как реальное устройство — например, /dev/nbd0. После этого можно форматировать и монтировать его как обычную флешку.
"Установка"
Когда диск смонтирован, ты ничего не устанавливаешь. Ты просто распаковываешь систему:
Команда скачивает минимальный набор бинарей, нужных для Debian, и кладёт их в эту директорию. Никаких мастеров.
Загрузка
Я запускаю VM через QEMU, подкидывая ядро напрямую, полностью обходя загрузчик:
На последнем скриншоте виден Kernel panic —
Такой подход удобен для CI/CD или быстрого прототипирования. Он показывает простую мысль:
✈️ Linux Ninja
Тебе не нужен инсталлятор, GUI или мастер в стиле Next > Next > Finish. Нужна просто директория с файлами.
Вот как я собираю кастомные, немного колхозные, но загрузочные Debian-ВМ примерно за минуту с помощью debootstrap.
По сути, любая дистрибуция это ядро плюс набор юзерспейс-бинарей. Если разложить эти файлы в нужные места на диске, ядро спокойно с этим заработает.
Инструмент, о котором почти никто не думает
Обычно мы воспринимаем VM-образы (.qcow2) как чёрный ящик. Но qemu-nbd позволяет примонтировать виртуальный диск как реальное устройство — например, /dev/nbd0. После этого можно форматировать и монтировать его как обычную флешку.
"Установка"
Когда диск смонтирован, ты ничего не устанавливаешь. Ты просто распаковываешь систему:
sudo debootstrap stable /mnt/disk
Команда скачивает минимальный набор бинарей, нужных для Debian, и кладёт их в эту директорию. Никаких мастеров.
Загрузка
Я запускаю VM через QEMU, подкидывая ядро напрямую, полностью обходя загрузчик:
qemu-system-x86_64 -kernel ... -append "init=/bin/bash ..."
На последнем скриншоте виден Kernel panic —
Attempted to kill init! И это нормально. Я сказал ядру выполнить простой скрипт. Скрипт завершился. init вышел. У ядра не осталось задач, поэтому оно упало. Миссия выполнена, просто странным способом.Такой подход удобен для CI/CD или быстрого прототипирования. Он показывает простую мысль:
если ты понимаешь файловую структуру — система принадлежит тебе.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2
Когда я впервые открыл Wireshark, я просто завис.
Пакеты повсюду. IP-адреса. Порты. Протоколы.
Мне казалось, что нужно понимать вообще всё.
А потом я понял главное:
Не пытайтесь анализировать каждый пакет.
Сначала сформулируйте вопрос.
Что именно я ищу?
→ необычный адрес назначения?
→ повторяющиеся соединения?
→ подозрительный протокол?
→ трафик, который выглядит ненормально?
Вот тогда Wireshark наконец начал становиться для меня понятным.
Анализ пакетов снова вернул меня к основам сетей.
TCP. UDP. DNS. Порты. IP-адреса.
Чем лучше я понимал, как выглядит нормальное поведение сети, тем проще становилось замечать аномалии.
Инструмент не заменяет фундаментальные знания.
Наоборот, именно фундамент помогает понять, как правильно пользоваться инструментом.
Поэтому я всё меньше пытаюсь запоминать отдельные функции Wireshark и всё больше учусь самому процессу анализа сетевого трафика.
✈️ Linux Ninja
Пакеты повсюду. IP-адреса. Порты. Протоколы.
Мне казалось, что нужно понимать вообще всё.
А потом я понял главное:
Не пытайтесь анализировать каждый пакет.
Сначала сформулируйте вопрос.
Что именно я ищу?
→ необычный адрес назначения?
→ повторяющиеся соединения?
→ подозрительный протокол?
→ трафик, который выглядит ненормально?
Вот тогда Wireshark наконец начал становиться для меня понятным.
Анализ пакетов снова вернул меня к основам сетей.
TCP. UDP. DNS. Порты. IP-адреса.
Чем лучше я понимал, как выглядит нормальное поведение сети, тем проще становилось замечать аномалии.
Инструмент не заменяет фундаментальные знания.
Наоборот, именно фундамент помогает понять, как правильно пользоваться инструментом.
Поэтому я всё меньше пытаюсь запоминать отдельные функции Wireshark и всё больше учусь самому процессу анализа сетевого трафика.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍2
Готовитесь к CKS в 2026 году?
Не пытайтесь одинаково глубоко изучать каждый инструмент безопасности Kubernetes.
Больше всего отдачи даст практика в этих направлениях:
• NetworkPolicy + CiliumNetworkPolicy
Default-deny, выборочный ingress/egress и политики Cilium. Cilium прямо входит в текущую программу.
• Pod Security Admission
PSP больше нет. Нужно уверенно работать с метками namespace вроде:
pod-security.kubernetes.io/enforce: restricted
• AppArmor + seccomp
Применять профили, понимать режимы enforcement и уметь написать точечный seccomp-профиль, который блокирует конкретный syscall.
• CIS hardening
Использовать отчёты kube-bench, чтобы находить и исправлять проблемы на control plane и worker-нодах.
• RBAC + Secrets
Доступ по принципу минимальных привилегий, риски service account, шифрование данных на диске и расследование того, кто получал доступ к Secret.
• Безопасность цепочки поставки
Минимальные базовые образы, SBOM, сканирование образов, разрешённые реестры, подпись и проверка образов, ревью Dockerfile.
Помимо Trivy стоит практиковаться с Kubesec и KubeLinter.
• Runtime security
Поведенческое обнаружение в стиле Falco, неизменяемые контейнеры, audit logs и расследование инцидентов.
• Изоляция + шифрование
RuntimeClass и изолированные контейнеры, а также шифрование трафика между Pod через Cilium или Istio mTLS.
• TLS + доступ к API
Безопасный Ingress, ограничение доступа к API, защита metadata и endpoint-ов нод, а также проверка бинарников платформы.
Главное преимущество на CKS — скорость.
Для каждой темы нужен повторяемый рабочий процесс, быстрая навигация по документации и столько практики, чтобы типовые исправления выполнялись почти механически.
Если бы у меня было только две недели, большую часть времени я бы потратил так:
NetworkPolicies → PSA → RBAC/Secrets → CIS → runtime detection
K16S — бесплатная лаборатория для подготовки к CKA/CKS, где можно реально ломать kubelet, systemd, containerd, static pods, etcd и сертификаты.
Не kind.
#cks #kubernetes #cloudnative #containersecurity #devsecops
✈️ Linux Ninja
Не пытайтесь одинаково глубоко изучать каждый инструмент безопасности Kubernetes.
Больше всего отдачи даст практика в этих направлениях:
• NetworkPolicy + CiliumNetworkPolicy
Default-deny, выборочный ingress/egress и политики Cilium. Cilium прямо входит в текущую программу.
• Pod Security Admission
PSP больше нет. Нужно уверенно работать с метками namespace вроде:
pod-security.kubernetes.io/enforce: restricted
• AppArmor + seccomp
Применять профили, понимать режимы enforcement и уметь написать точечный seccomp-профиль, который блокирует конкретный syscall.
• CIS hardening
Использовать отчёты kube-bench, чтобы находить и исправлять проблемы на control plane и worker-нодах.
• RBAC + Secrets
Доступ по принципу минимальных привилегий, риски service account, шифрование данных на диске и расследование того, кто получал доступ к Secret.
• Безопасность цепочки поставки
Минимальные базовые образы, SBOM, сканирование образов, разрешённые реестры, подпись и проверка образов, ревью Dockerfile.
Помимо Trivy стоит практиковаться с Kubesec и KubeLinter.
• Runtime security
Поведенческое обнаружение в стиле Falco, неизменяемые контейнеры, audit logs и расследование инцидентов.
• Изоляция + шифрование
RuntimeClass и изолированные контейнеры, а также шифрование трафика между Pod через Cilium или Istio mTLS.
• TLS + доступ к API
Безопасный Ingress, ограничение доступа к API, защита metadata и endpoint-ов нод, а также проверка бинарников платформы.
Главное преимущество на CKS — скорость.
Для каждой темы нужен повторяемый рабочий процесс, быстрая навигация по документации и столько практики, чтобы типовые исправления выполнялись почти механически.
Если бы у меня было только две недели, большую часть времени я бы потратил так:
NetworkPolicies → PSA → RBAC/Secrets → CIS → runtime detection
K16S — бесплатная лаборатория для подготовки к CKA/CKS, где можно реально ломать kubelet, systemd, containerd, static pods, etcd и сертификаты.
Не kind.
#cks #kubernetes #cloudnative #containersecurity #devsecops
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Линус Торвальдс говорит, что крупные обновления ядра Linux становятся "новой нормой", отчасти из-за AI-инструментов.
Предстоящий релиз Linux 7.2 получился необычно большим, и Торвальдс признаёт, что не особо рад тому, насколько сильно он разросся
По его словам, AI-инструменты всё активнее используются в процессе разработки и при код-ревью, что в том числе приводит к росту количества изменений, попадающих в ядро.
Несмотря на масштаб обновления, Торвальдс не видит в нём ничего особенно тревожного и ожидает, что Linux 7.2 будет двигаться к релизу по плану
👀
✈️ Linux Ninja
Предстоящий релиз Linux 7.2 получился необычно большим, и Торвальдс признаёт, что не особо рад тому, насколько сильно он разросся
По его словам, AI-инструменты всё активнее используются в процессе разработки и при код-ревью, что в том числе приводит к росту количества изменений, попадающих в ядро.
Несмотря на масштаб обновления, Торвальдс не видит в нём ничего особенно тревожного и ожидает, что Linux 7.2 будет двигаться к релизу по плану
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Самой большой ошибкой Elastic была не смена лицензии. А отказ от идеи, которая впоследствии стала Grafana.
В 2013 году Торкель Эдегор был никому не известным разработчиком в Orbitz. Ему нужны были нормальные дашборды для временных рядов и метрик.
Он предложил команде Kibana отвязать её от Elasticsearch, чтобы она могла работать и с другими источниками данных.
Ему отказали.
Тогда он сам сделал форк.
В январе 2014 года он выложил проект в открытый доступ. Без финансирования. Без компании. Просто разработчик, который сделал то, что ему сказали, что он получить не сможет.
К концу 2014 года он стал сооснователем Grafana Labs. В 2021 году компания привлекла $220 млн всего за один раунд.
Сегодня Grafana работает на рынке объёмом примерно $20 млрд. А среди DevOps-инженеров, которые каждый день работают с дашбордами, Grafana, пожалуй, даже более узнаваемое имя, чем Elastic.
Затем в 2021 году уже сами основатели Grafana перевели свои основные проекты с Apache 2.0 на AGPL, чтобы облачные гиганты не могли бесплатно перепродавать их работу.
MongoDB и Elastic к тому моменту уже прошли через ту же проблему и получили серьёзную критику за то, как они с ней справились.
Grafana — нет. Сообщество открытого исходного кода назвало их подход справедливым, прозрачным и уважительным.
Один отклонённый запрос на новую функцию в 2013 году в итоге привёл к созданию компании, которая смогла учесть ошибки всей индустрии.
Возможно, это самое дорогое «нет» в истории открытого исходного кода.
✈️ Linux Ninja
В 2013 году Торкель Эдегор был никому не известным разработчиком в Orbitz. Ему нужны были нормальные дашборды для временных рядов и метрик.
Он предложил команде Kibana отвязать её от Elasticsearch, чтобы она могла работать и с другими источниками данных.
Ему отказали.
Тогда он сам сделал форк.
В январе 2014 года он выложил проект в открытый доступ. Без финансирования. Без компании. Просто разработчик, который сделал то, что ему сказали, что он получить не сможет.
К концу 2014 года он стал сооснователем Grafana Labs. В 2021 году компания привлекла $220 млн всего за один раунд.
Сегодня Grafana работает на рынке объёмом примерно $20 млрд. А среди DevOps-инженеров, которые каждый день работают с дашбордами, Grafana, пожалуй, даже более узнаваемое имя, чем Elastic.
Затем в 2021 году уже сами основатели Grafana перевели свои основные проекты с Apache 2.0 на AGPL, чтобы облачные гиганты не могли бесплатно перепродавать их работу.
MongoDB и Elastic к тому моменту уже прошли через ту же проблему и получили серьёзную критику за то, как они с ней справились.
Grafana — нет. Сообщество открытого исходного кода назвало их подход справедливым, прозрачным и уважительным.
Один отклонённый запрос на новую функцию в 2013 году в итоге привёл к созданию компании, которая смогла учесть ошибки всей индустрии.
Возможно, это самое дорогое «нет» в истории открытого исходного кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Awesome List собирает большую подборку статей, технических разборов и научных работ по кибербезопасности, посвящённых исследованию и эксплуатации уязвимостей.
https://github.com/0xor0ne/awesome-list
✈️ Linux Ninja
https://github.com/0xor0ne/awesome-list
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Быстрый совет по Linux
Хотите проверить неудачные попытки входа на сервер?
Запустите:
Команда читает
🟠 Почти всегда это боты, подбирающие пароли к SSH. Такие атаки могут стать фатальными, если включён вход по паролю и используется слабый или распространённый пароль
🟠 Решение: отключите вход по паролю и используйте только SSH-ключи
🟠 Рекомендуется отключить парольную аутентификацию и использовать только SSH-ключи
✈️ Linux Ninja
Хотите проверить неудачные попытки входа на сервер?
Запустите:
lastb
Команда читает
/var/log/btmp и выводит список всех неуспешных авторизацийPlease open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2
Совет по Linux
Vim умеет откатывать изменения по времени, а не только по шагам.
Вместо того чтобы жать u много раз, можно использовать:
Это откатит буфер к состоянию, в котором он был 2 минуты назад. Очень удобно после массовых правок.
Нужно вернуть часть изменений? Можно переместиться вперёд по времени:
Эта команда повторно применит правки, сделанные за последние 30 секунд. Можно представить дерево undo в Vim как временную шкалу, по которой можно перемещаться вперёд и назад.
Указывать время необязательно. Если его нет, Vim воспринимает число как количество шагов undo.
Например, чтобы откатить последние 3 изменения:
А затем вернуть одно изменение:
Если хочешь превратить свою сессию Vim в машину времени, включи:
Это сохранит историю undo на диск, и ты сможешь откатывать изменения даже после закрытия и повторного открытия файла
✈️ Linux Ninja
Vim умеет откатывать изменения по времени, а не только по шагам.
Вместо того чтобы жать u много раз, можно использовать:
:earlier 2m
Это откатит буфер к состоянию, в котором он был 2 минуты назад. Очень удобно после массовых правок.
Нужно вернуть часть изменений? Можно переместиться вперёд по времени:
:later 30s
Эта команда повторно применит правки, сделанные за последние 30 секунд. Можно представить дерево undo в Vim как временную шкалу, по которой можно перемещаться вперёд и назад.
Указывать время необязательно. Если его нет, Vim воспринимает число как количество шагов undo.
Например, чтобы откатить последние 3 изменения:
:earlier 3
А затем вернуть одно изменение:
:later 1
Если хочешь превратить свою сессию Vim в машину времени, включи:
:set undofile
Это сохранит историю undo на диск, и ты сможешь откатывать изменения даже после закрытия и повторного открытия файла
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥3