Compare commits
3 Commits
e1a7900624
...
121f806ff0
Author | SHA1 | Date | |
---|---|---|---|
121f806ff0 | |||
7f6b6c05c0 | |||
246b75fe44 |
45
docs/Other/Кетов.md
Normal file
45
docs/Other/Кетов.md
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
## Дмитрий Кетов - "Внутреннее устройство Linux" (рандомные заметки)
|
||||||
|
|
||||||
|
### Главы 1, 2
|
||||||
|
|
||||||
|
В Linux 2 режима работы программных средст - kernel mode (kernel space), user mode (user space). Основное различие в привелегиях доступа к аппартаным средаствам.
|
||||||
|
|
||||||
|
Совокупность работающих в ядерном режиме программ называют ядром
|
||||||
|
|
||||||
|
Ф-ии ОС реализуемые ядерными компонентами, доступны внеядерным посредством системных вызовов
|
||||||
|
|
||||||
|
(стр.23) Кроме всех вышеперечисленных задач, файловая подсистема, подсистема ввода-вывода и подсистема управления процессами в совокупности предоставляют процессам средста межпроцессорного взаимодействия, такие как сигналы, каналы, сокеты и разделяемая память
|
||||||
|
|
||||||
|
|
||||||
|
- `strace` - Системные вызовы (ядро)
|
||||||
|
- `ltrace` - Библиотечные функции (например, libc)
|
||||||
|
|
||||||
|
Сеанс командного интерфейса пользователя продолжается двусторонним попеременным диалогом с командным интерпретатором, где пользователь вводит команды и получает результат их выполнения.
|
||||||
|
|
||||||
|
- `users, who, w` - списко всех терминальных входов пользователей
|
||||||
|
|
||||||
|
`^D` - используется для оповещения драйвера о завершении ввода при работе с интерактивными (ведущими с пользователем двусторонний попеременный диалог) программами
|
||||||
|
|
||||||
|
`^Z` - временно приостанавливает выполняющуюся программу
|
||||||
|
|
||||||
|
`finger <username>` - свойства учётной записи пользователя
|
||||||
|
|
||||||
|
### Глава 3 - Подсистема управления файлами и вводом-выводом
|
||||||
|
|
||||||
|
- В аббревиатуре UNICS, да-да UNICS (UNICS был до UNIX), а не UNIX, центральное место занимает идея решать задачи единым способом
|
||||||
|
|
||||||
|
- Информация есть файл
|
||||||
|
|
||||||
|
- Файл является единицей обеспечения доступа к информации, а не единицей ей хранения, как в других ОС
|
||||||
|
|
||||||
|
- /etc - editable text configuration
|
||||||
|
|
||||||
|
- sbin - superuser's binaries для программ системного администрирования
|
||||||
|
|
||||||
|
- Каналы и сокеты используют для передачи данных от процесса к процессу оперативную память ядра ОС, а не память накопителя, как обычные файлы
|
||||||
|
|
||||||
|
- Канал - однонаправленная передача (симплексная)
|
||||||
|
|
||||||
|
- Сокет двунаправленная (дуплексная). Сокет используют при взаимодействии по схеме клиент-сервер
|
||||||
|
|
||||||
|
- `stat <filename>` - метаданные файла
|
@ -73,7 +73,7 @@
|
|||||||
- `V` - выделение строками (чаще всего использую)
|
- `V` - выделение строками (чаще всего использую)
|
||||||
- `v` - выделение посимвольно
|
- `v` - выделение посимвольно
|
||||||
- `ctrl + v` - выделение блоками (колонками)
|
- `ctrl + v` - выделение блоками (колонками)
|
||||||
|
- `:'<,'>s/^/# /` - закомментировать диапазон строк
|
||||||
---
|
---
|
||||||
|
|
||||||
- `y` - копировать выделенный текст
|
- `y` - копировать выделенный текст
|
||||||
|
@ -322,3 +322,38 @@ WantedBy=multi-user.target # Указывает, что сервис долже
|
|||||||
|
|
||||||
Каталог `.requires` также создается при использовании директивы RequiredBy=, и его используют для критически необходимых зависимостей.
|
Каталог `.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
|
||||||
|
```
|
||||||
|
@ -67,6 +67,7 @@
|
|||||||
- `iptables -L --line-numbers`
|
- `iptables -L --line-numbers`
|
||||||
- `iptables -L -t nat` - позволяет указать конкретную таблицу для просмотра. Например, для просмотра правил NAT
|
- `iptables -L -t nat` - позволяет указать конкретную таблицу для просмотра. Например, для просмотра правил NAT
|
||||||
- `nc -zv example.com 80` - проверить доступность порта (`-z` - проверка соединения, `-u` - проверка UDP-порта)
|
- `nc -zv example.com 80` - проверить доступность порта (`-z` - проверка соединения, `-u` - проверка UDP-порта)
|
||||||
|
- `dstat -lrvn` - статистика
|
||||||
|
|
||||||
??? tip "`ufw` - удобная надстройка над iptables"
|
??? tip "`ufw` - удобная надстройка над iptables"
|
||||||
Чаще используют в Ubuntu и Debian
|
Чаще используют в Ubuntu и Debian
|
||||||
@ -253,7 +254,7 @@
|
|||||||
- `-p` - время работы системы
|
- `-p` - время работы системы
|
||||||
- `reboot now` - перезагрузка системы
|
- `reboot now` - перезагрузка системы
|
||||||
- `shutdown now` - выключить компьютер
|
- `shutdown now` - выключить компьютер
|
||||||
- `watch "some command"` - переодически запускает команду
|
- `watch -n 1 x"some command"` - запускает команду каждую секунду
|
||||||
|
|
||||||
- `lscpu` - информация о процессоре
|
- `lscpu` - информация о процессоре
|
||||||
- `lspci` - информация об устройствах подключенных к pci шине
|
- `lspci` - информация об устройствах подключенных к pci шине
|
||||||
@ -286,6 +287,7 @@
|
|||||||
- `cd` - вернуться в домашнюю директорию
|
- `cd` - вернуться в домашнюю директорию
|
||||||
- `touch file{4..13}`
|
- `touch file{4..13}`
|
||||||
- `mkdir dir_{a..f}`
|
- `mkdir dir_{a..f}`
|
||||||
|
- `cp --parents` - скопировать файл, сохраняя структуру родительских каталогов
|
||||||
- `cp -iv file1 dir1/file2` - (`-i`) спрашиваем будем ли перезаписывать
|
- `cp -iv file1 dir1/file2` - (`-i`) спрашиваем будем ли перезаписывать
|
||||||
- `cp -nv` - не перезаписывать
|
- `cp -nv` - не перезаписывать
|
||||||
- `cp -a source_file destination_directory/` - Опция `-a` эквивалентна комбинации нескольких опций: `-d` (сохраняет символические ссылки), `-p` (сохраняет права доступа, владельца и временные метки), и `-r` (рекурсивно копирует каталоги).
|
- `cp -a source_file destination_directory/` - Опция `-a` эквивалентна комбинации нескольких опций: `-d` (сохраняет символические ссылки), `-p` (сохраняет права доступа, владельца и временные метки), и `-r` (рекурсивно копирует каталоги).
|
||||||
@ -301,8 +303,16 @@
|
|||||||
- Время изменения метаданных (Change): Когда были изменены права или метаданные файла.
|
- Время изменения метаданных (Change): Когда были изменены права или метаданные файла.
|
||||||
- Номер inode: Уникальный номер файла в файловой системе.
|
- Номер inode: Уникальный номер файла в файловой системе.
|
||||||
|
|
||||||
---
|
```bash
|
||||||
|
$ dirname /etc/blackbox_exporter/config.yml
|
||||||
|
/etc/blackbox_exporter
|
||||||
|
```
|
||||||
|
```bash
|
||||||
|
$ basename /etc/blackbox_exporter/config.yml
|
||||||
|
config.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
- `ldd <исполняемый_файл_или_библиотека>` - прверить зависимости программы
|
||||||
- `kill -l` - список возможных сигналов
|
- `kill -l` - список возможных сигналов
|
||||||
- `/etc/passwd` - инфо о пользователях в системе
|
- `/etc/passwd` - инфо о пользователях в системе
|
||||||
- `htop -p ` - процесс на таком-то порту
|
- `htop -p ` - процесс на таком-то порту
|
||||||
@ -365,6 +375,9 @@
|
|||||||
```
|
```
|
||||||
- `blkid` - выводит информацию о всех блочных устройствах, включая UUID
|
- `blkid` - выводит информацию о всех блочных устройствах, включая UUID
|
||||||
- `mount` - используется для подключения файловых систем (например, жестких дисков, флешек) к определенным точкам монтирования в файловой системе
|
- `mount` - используется для подключения файловых систем (например, жестких дисков, флешек) к определенным точкам монтирования в файловой системе
|
||||||
|
- `iotop` - информация ввода/вывода
|
||||||
|
- `vmstat 1` - разная инфа и ввод/вывод swap
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
mount [OPTIONS] <DEVICE> <MOUNTPOINT>
|
mount [OPTIONS] <DEVICE> <MOUNTPOINT>
|
||||||
```
|
```
|
||||||
@ -382,6 +395,7 @@ mount [OPTIONS] <DEVICE> <MOUNTPOINT>
|
|||||||
|
|
||||||
- `cat <filename> | grep -A 10 "<pattern>"` - вывести 10 строк ПОСЛЕ найденного совпадения
|
- `cat <filename> | grep -A 10 "<pattern>"` - вывести 10 строк ПОСЛЕ найденного совпадения
|
||||||
- `cat <filename> | grep -B 10 "<pattern>"` - вывести 10 строк ПЕРЕД найденным совпадения
|
- `cat <filename> | grep -B 10 "<pattern>"` - вывести 10 строк ПЕРЕД найденным совпадения
|
||||||
|
- `cat <filename> | grep -С 10 "<pattern>"` - вывести 10 строк ВОКРУГ найденным совпадения
|
||||||
- `cat <filename> | grep "^<pattern>"` - начинается с `<pattern>`
|
- `cat <filename> | grep "^<pattern>"` - начинается с `<pattern>`
|
||||||
- `cat <filename> | grep "^<pattern1>.*<pattern2>"` - `.*` любое количество символом между `<pattern1>` и `<pattern2>`
|
- `cat <filename> | grep "^<pattern1>.*<pattern2>"` - `.*` любое количество символом между `<pattern1>` и `<pattern2>`
|
||||||
|
|
||||||
@ -473,4 +487,10 @@ Logrotate - это системная утилита Linux, которая уп
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
- `logrotate -d /etc/logrotate.d/app` - для проверки конфигурации
|
- `logrotate -d /etc/logrotate.d/app` - для проверки конфигурации
|
||||||
- `logrotate -f /etc/logrotate.d/app` - для принудительной ротации логов
|
- `logrotate -f /etc/logrotate.d/app` - для принудительной ротации логов
|
||||||
|
|
||||||
|
### Анализ производительности
|
||||||
|
|
||||||
|
- `uptime` - время работы системы, пользователя, LA
|
||||||
|
- `top`
|
||||||
|
- `free -h`
|
Loading…
x
Reference in New Issue
Block a user