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` - выделение посимвольно
|
||||
- `ctrl + v` - выделение блоками (колонками)
|
||||
|
||||
- `:'<,'>s/^/# /` - закомментировать диапазон строк
|
||||
---
|
||||
|
||||
- `y` - копировать выделенный текст
|
||||
|
@ -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
|
||||
```
|
||||
|
@ -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] <DEVICE> <MOUNTPOINT>
|
||||
```
|
||||
@ -382,6 +395,7 @@ mount [OPTIONS] <DEVICE> <MOUNTPOINT>
|
||||
|
||||
- `cat <filename> | grep -A 10 "<pattern>"` - вывести 10 строк ПОСЛЕ найденного совпадения
|
||||
- `cat <filename> | grep -B 10 "<pattern>"` - вывести 10 строк ПЕРЕД найденным совпадения
|
||||
- `cat <filename> | grep -С 10 "<pattern>"` - вывести 10 строк ВОКРУГ найденным совпадения
|
||||
- `cat <filename> | grep "^<pattern>"` - начинается с `<pattern>`
|
||||
- `cat <filename> | grep "^<pattern1>.*<pattern2>"` - `.*` любое количество символом между `<pattern1>` и `<pattern2>`
|
||||
|
||||
@ -473,4 +487,10 @@ Logrotate - это системная утилита Linux, которая уп
|
||||
}
|
||||
```
|
||||
- `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