From 7f6b6c05c0642e076fd67400e2593e4c91adc634 Mon Sep 17 00:00:00 2001 From: ilyamak04 Date: Tue, 27 May 2025 10:27:34 +0300 Subject: [PATCH] ADD linux --- docs/linux/Заметки.md | 35 +++++++++++++++++++++++++++++++++++ docs/linux/Команды.md | 26 +++++++++++++++++++++++--- 2 files changed, 58 insertions(+), 3 deletions(-) diff --git a/docs/linux/Заметки.md b/docs/linux/Заметки.md index 2d54a11..beedbc7 100644 --- a/docs/linux/Заметки.md +++ b/docs/linux/Заметки.md @@ -322,3 +322,38 @@ WantedBy=multi-user.target # Указывает, что сервис долже Каталог `.requires` также создается при использовании директивы RequiredBy=, и его используют для критически необходимых зависимостей. +### Linux Capabilities + +Linux Capabilities — это разбиение прав суперпользователя на отдельные флаги, каждый из которых разрешает выполнять определённые действия + +Например: + +- `CAP_NET_RAW` - Создание raw-сокетов, отправка ICMP (ping, traceroute) +- `CAP_NET_BIND_SERVICE` - Привязка к портам <1024 (например, 80, 443) +- `CAP_SYS_TIME` - Изменение системного времени +- `CAP_SYS_BOOT` - Перезагрузка системы +- `CAP_CHOWN` - Изменение владельца файлов +- `CAP_DAC_OVERRIDE` - Игнорирование обычных проверок прав доступа + +- `capsh --pid=PID --print` - Capability у процесса + +- Проверить Capability у `systemd-юнита` +```bash +systemctl show yourservice.service | grep Capability +``` + +- Рарешить Capability в `systemd-юните` +```bash +AmbientCapabilities=CAP_NET_RAW +CapabilityBoundingSet=CAP_NET_RAW +``` + +- Проверить Capability у бинарника +```bash +getcap /usr/local/bin/blackbox_exporter +``` + +- Установить Capability на бинарник (`+ep` — добавить capability с правами effective и permitted.) +```bash +setcap cap_net_raw+ep /usr/local/bin/blackbox_exporter +``` diff --git a/docs/linux/Команды.md b/docs/linux/Команды.md index 5e5f998..0840998 100644 --- a/docs/linux/Команды.md +++ b/docs/linux/Команды.md @@ -67,6 +67,7 @@ - `iptables -L --line-numbers` - `iptables -L -t nat` - позволяет указать конкретную таблицу для просмотра. Например, для просмотра правил NAT - `nc -zv example.com 80` - проверить доступность порта (`-z` - проверка соединения, `-u` - проверка UDP-порта) +- `dstat -lrvn` - статистика ??? tip "`ufw` - удобная надстройка над iptables" Чаще используют в Ubuntu и Debian @@ -253,7 +254,7 @@ - `-p` - время работы системы - `reboot now` - перезагрузка системы - `shutdown now` - выключить компьютер -- `watch "some command"` - переодически запускает команду +- `watch -n 1 x"some command"` - запускает команду каждую секунду - `lscpu` - информация о процессоре - `lspci` - информация об устройствах подключенных к pci шине @@ -286,6 +287,7 @@ - `cd` - вернуться в домашнюю директорию - `touch file{4..13}` - `mkdir dir_{a..f}` +- `cp --parents` - скопировать файл, сохраняя структуру родительских каталогов - `cp -iv file1 dir1/file2` - (`-i`) спрашиваем будем ли перезаписывать - `cp -nv` - не перезаписывать - `cp -a source_file destination_directory/` - Опция `-a` эквивалентна комбинации нескольких опций: `-d` (сохраняет символические ссылки), `-p` (сохраняет права доступа, владельца и временные метки), и `-r` (рекурсивно копирует каталоги). @@ -301,8 +303,16 @@ - Время изменения метаданных (Change): Когда были изменены права или метаданные файла. - Номер inode: Уникальный номер файла в файловой системе. ---- +```bash +$ dirname /etc/blackbox_exporter/config.yml +/etc/blackbox_exporter +``` +```bash +$ basename /etc/blackbox_exporter/config.yml +config.yml +``` +- `ldd <исполняемый_файл_или_библиотека>` - прверить зависимости программы - `kill -l` - список возможных сигналов - `/etc/passwd` - инфо о пользователях в системе - `htop -p ` - процесс на таком-то порту @@ -365,6 +375,9 @@ ``` - `blkid` - выводит информацию о всех блочных устройствах, включая UUID - `mount` - используется для подключения файловых систем (например, жестких дисков, флешек) к определенным точкам монтирования в файловой системе +- `iotop` - информация ввода/вывода +- `vmstat 1` - разная инфа и ввод/вывод swap + ```bash mount [OPTIONS] ``` @@ -382,6 +395,7 @@ mount [OPTIONS] - `cat | grep -A 10 ""` - вывести 10 строк ПОСЛЕ найденного совпадения - `cat | grep -B 10 ""` - вывести 10 строк ПЕРЕД найденным совпадения +- `cat | grep -С 10 ""` - вывести 10 строк ВОКРУГ найденным совпадения - `cat | grep "^"` - начинается с `` - `cat | grep "^.*"` - `.*` любое количество символом между `` и `` @@ -473,4 +487,10 @@ Logrotate - это системная утилита Linux, которая уп } ``` - `logrotate -d /etc/logrotate.d/app` - для проверки конфигурации -- `logrotate -f /etc/logrotate.d/app` - для принудительной ротации логов \ No newline at end of file +- `logrotate -f /etc/logrotate.d/app` - для принудительной ротации логов + +### Анализ производительности + +- `uptime` - время работы системы, пользователя, LA +- `top` +- `free -h` \ No newline at end of file