Files
SecondBrain/90 Library/Linux/File Permissions.md
T
2026-05-31 10:18:48 +03:00

72 lines
3.6 KiB
Markdown

---
status: stable
type: concept
tags:
- os
- linux
created: 2025-12-17
updated: 2026-05-07
aliases:
- File Permissions
---
# File Permissions
В системах Linux права и привилегии присваиваются файлам и каталогам в виде разрешений. Эти разрешения указывают, кто может _читать_, _писать_ или _выполнять_ (запустить) их. В Linux существует три типа пользователей: **владельцы**, **группы** и **другие**, которые могут иметь другой набор разрешений.
**Права (permissions)** — указывают, кто и что может делать с файлом или директорией:
- `r` (read) — чтение содержимого файла или просмотр списка файлов в директории.
- `w` (write) — запись/изменение содержимого файла или добавление/удаление файлов в директории.
- `x` (execute) — запуск файла как программы или возможность "войти" в директорию (`cd`).
**Категории пользователей:**
- **owner (u)** — владелец файла.
- **group (g)** — члены группы, связанной с файлом.
- **others (o)** — все остальные пользователи.
`-rwxr--r-- 1 root root 4096 Jan 1 12:00 filename`
- → это обычный файл (d будет означать директорию).
- rwx → владелец может читать, писать, исполнять.
- r-- → группа может только читать.
- r-- → остальные могут только читать.
## Основные Команды
- `chmod` → изменение прав (permissions).
```bash
chmod 600 <path_to_file>
chmod o+r -R <path_to_dir>
```
- `chown` → изменение владельца (owner).
```bash
chown <user> <path>
chown <user>:<group> <path>
```
- `chgrp` → изменение группы.
```bash
chgrp <group> <file>
```
## Особые Биты
Кроме стандартных rwx есть **особые флаги**:
- **SUID (set user ID,** `**s**`**)** — исполняемый файл запускается с правами владельца.
Пример: `/usr/bin/passwd` запускается с правами root, хотя ты обычный пользователь.
- **SGID (set group ID)** — аналогично, но для группы. У директорий — новые файлы наследуют группу.
- **Sticky bit (**`**t**`**)** — на директориях запрещает пользователям удалять чужие файлы. Классический пример: `/tmp`.
## Связанные заметки
- [[Volume - Docker]] — uid/gid и права доступа в Docker Volumes определяются Linux-правами; проблема "root как владелец" решается через userns-remap + chown
- [[Modules - Ansible]] — модуль `user` управляет uid/gid; `file`/`copy` задают владельца и режим файлов через те же chmod/chown
- [[Сегментация сети]] — принцип наименьших привилегий: на уровне ФС — rwx для owner/group/others; на уровне сети — VLAN для Admin/Employee/Guest
## Связанные заметки
- [[Linux - MOC]]