Compare commits

...

4 Commits

Author SHA1 Message Date
a92bf6e8d2 ADD linux
All checks were successful
Build MkDocs / build-and-deploy (push) Successful in 18s
2025-03-22 13:31:23 +03:00
e3d5d9e52d ADD nginx 2025-03-20 23:39:48 +03:00
f3bbbfcdb5 ADD linux commands 2025-03-20 23:38:31 +03:00
c29ee0491a ADD git 2025-03-20 23:38:04 +03:00
4 changed files with 102 additions and 0 deletions

View File

@ -8,6 +8,7 @@
### Команды
- `git remote -v` - показывает все удалённые репозитории, которые связаны с локальным репозиторием
- `git init ; git remote add origin <https> or <ssh>` - добавить удалённый репозиторий
- `git remote set-url origin git@github.com:ilyamak04/shortest_flight.git` - установить новый url удалённого репозитория
- `rm -rf /path/to/repo/.git` - git больше не будет отслеживать эту директорию
- `git config --global --list`
- `git config --global user.name "Ваше Имя"`

View File

@ -132,6 +132,92 @@ echo `date`
```
Bash сначала выполнит команду `date` (внутри кавычек), затем передаст её результат команде `echo`.
### ACL
ACL (Access Control Lists) — позволяет более гибко управлять правами доступа к файлам в Linux. ACL позволяет назначать права для конкретных пользователей и групп, не меняя владельца файла или группу.
Для работы с ACL используются две основные команды:
- `setfacl` - устанавливает ACL для файлов и каталогов
- `getfacl` - показывает текущие ACL для файлов и каталогов
**Синтаксис `setfacl`:**
```bash
setfacl [опции] [действие] [пользователь/группа]:[права] файл
```
**Опции:**
- `-m` (modify) — изменить ACL.
- `-x` (remove) — удалить ACL.
- `-b` (remove all) — удалить все ACL.
- `-R` (recursive) — применить рекурсивно ко всем файлам и подкаталогам.
- `-d` (default) — установить ACL по умолчанию для новых файлов в каталоге.
**Действия:**
- `u:пользователь:права` — установить права для пользователя.
- `g:группа:права` — установить права для группы.
- `m::права` — изменить маску (максимальные права для группы и других).
**Права:**
- `r` — чтение.
- `w` — запись.
- `x` — выполнение (для каталогов — доступ).
- `X` — выполнение, только если это каталог или файл уже имеет право на выполнение.
- `-` — отсутствие прав.
**Примеры использования:**
```bash
# Дать пользователю prometheus права на чтение файла
sudo setfacl -m u:prometheus:r /etc/letsencrypt/live/prometheus.mcarov.pro/fullchain.pem
```
```bash
# Дать пользователю prometheus права на чтение и выполнение для каталога
sudo setfacl -m u:prometheus:rX /etc/letsencrypt/live/prometheus.mcarov.pro/
```
```bash
# Удалить ACL для пользователя prometheus
sudo setfacl -x u:prometheus /etc/letsencrypt/live/prometheus.mcarov.pro/fullchain.pem
```
```bash
# Удалить все ACL
sudo setfacl -b /etc/letsencrypt/live/prometheus.mcarov.pro/fullchain.pem
```
```bash
# Просмотр ACL
getfacl <file_name>
# Пример вывода:
# file: file.txt
# owner: user1
# group: group1
user::rw-
user:username:rwx
group::r--
mask::rwx
other::r--
```
**Маска (mask)** — это специальная запись ACL, которая ограничивает максимальные права доступа для всех записей ACL, кроме владельца файла и группы. Права владельца файла (owner) и группы (group), указанные в стандартных правах доступа (например, через chmod), не ограничиваются маской. Маска влияет только на дополнительные записи ACL, созданные для конкретных пользователей или групп.
Например, если маска установлена на r--, то даже если пользователю назначены права rwx, он сможет только читать файл.
```bash
# Задать маску
setfacl -m m::r-- <file_name>
```
sudo setfacl -R -m u:prometheus:rX /etc/letsencrypt/
#### Разное
Маска прав (`umask`) одна и та же для файлов и директорий, но результат применения маски отличается, поскольку начальные права у файлов и директорий разные (666 для файлов, 777 для директорий). То есть `umask` не различает файлы и директории, она применяется одинаково ко всем объектам, но итоговые права различаются из-за исходных прав.

View File

@ -308,6 +308,11 @@
---
- `chmod u+s` - устанавливает бит setuid на файл
- `cat /etc/passwd` - список пользователей
- `cat /etc/group` - список групп
- `id` - список пользователей, групп
- `id <user_name>` - проверить наличие пользователя в системе
- `groups <user_name>` - к каким группам приналежит пользователь
??? info "Set User ID"
setuid (Set User ID) — это специальный бит прав доступа в Unix/Linux, который позволяет исполняемому файлу запускаться с привилегиями владельца файла, а не пользователя, который его запускает

View File

@ -123,6 +123,16 @@ http {
---
- `allow 127.0.0.1` - разрешить доступ только с ip 127.0.0.1
- `deny allow` - запрещает доступ всем ip адресам, кроме `allow`
- `stub_status on`
Включает модуль `ngx_http_stub_status_module`, который предоставляет статистику о работе Nginx. Например:
- Активные соединения.
- Количество принятых запросов.
- Количество обработанных запросов.
- Текущее состояние (чтение, запись, ожидание).
```
# Передаёт backend-серверу доменное имя хоста из запроса клиента