72 lines
3.6 KiB
Markdown
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]]
|