---
title: "Управление правами доступа к файлам на сервере"
description: "Управление правами доступа к файлам в UNIX-подобных ОС. Документация и инструкции по использованию и настройке облачных сервисов Timeweb Cloud."
---

# Управление правами доступа

> Полный индекс документации для ИИ-агентов: [llms.txt](https://timeweb.cloud/llms.txt).

Рассказываем, как настроить права доступа к файлам на сервере через SSH или с помощью FileZilla.

## Общая информация о правах доступа

Система прав доступа в Linux позволяет разграничивать и гибко настраивать доступ пользователей к файлам и каталогам, повышая тем самым безопасность системы. 

Полные права ко всему имеет только суперпользователь root (именно поэтому работать от root может быть небезопасно); остальные пользователи по умолчанию имеют доступ только к своему домашнему каталогу, а значит не могут выполнить каких-либо нежелательных изменений в системных файлах.

Права доступа включают в себя право на **чтение** (**r**), **запись** (**w**) и **исполнение** (**x**).

Права назначаются как файлам, так и каталогам, и дают пользователям с этими правами следующие возможности:

| **Права** | **Для файлов** | **Для каталогов** |
| --- | --- | --- |
| r, чтение | Просмотр содержимого | Просмотр содержимого, то есть списка объектов в каталоге (например, командами cat, ls) |
| w, запись | Изменение содержимого | Изменение содержимого каталога, то есть можно добавлять и удалять файлы (даже принадлежащие другим пользователям), переименовывать их |
| x, исполнение | Запуск файла на исполнение | Вход в каталог (например, командой сd), просмотр атрибутов файлов, находящихся в каталоге |

Существует **три категории пользователей** для каждого файла:

-   **Владелец** файла — пользователь, который создал файл (или который сейчас [указан](https://timeweb.cloud/docs/unix-guides/permissions-management#izmenenie-vladelca-ili-gruppy-fajla) в качестве владельца). По умолчанию владелец имеет полные права.
-   **Группа** — созданная в системе группа пользователей, которой выдан определенный набор прав к файлу. Может состоять из одного пользователя (владельца) или из нескольких. Если группа состоит из нескольких пользователей, то все они имеют права к файлу, выданные группе.
-   **Остальные** — все прочие пользователи, которые не являются владельцем файла и не входят в группу, назначенную для файла.

Для каждой категории может быть установлен свой набор прав к конкретному файлу.

Права могут обозначаться двумя способами: буквами или цифрами:

| **Цифровая запись** | **Буквенная запись** | **Права** |
| --- | --- | --- |
| 0 | \--- | Отсутствие прав |
| 1 | \--x | Исполнение |
| 2 | \-w- | Запись |
| 3 | \-wx | Запись и исполнение |
| 4 | r-- | Чтение |
| 5 | r-x | Чтение и исполнение |
| 6 | rw- | Чтение и запись |
| 7 | rwx | Чтение, запись и исполнение |

Права записываются последовательно: сначала для владельца, затем для группы, затем для остальных пользователей. Например, запись 755 (или rwx r-x r-x) означает, что владельцу даны права на чтение, запись и исполнение (7 / rwx), всем остальным — на чтение и исполнение (5 / r-x).

Примеры наиболее распространенных комбинаций для прав доступа:

| **Цифры** | **Буквы** | **Права** |
| --- | --- | --- |
| 600 | rw------ | Владелец может просматривать и изменять содержимое, у остальных нет доступа к объекту |
| 644 | rw-r--r-- | Владелец может просматривать и изменять содержимое, остальные могут только просматривать |
| 700 | rwx-- -- | Владелец может просматривать, изменять содержимое, запускать исполнение объекта, у остальных нет доступа к объекту |
| 755 | rwxr-xr-x | У владельца полный набор прав, остальным доступны просмотр и исполнение |

Предоставляя доступ к каталогам, необходимо учитывать, что для полноценной работы с ними нужны, как минимум, права на чтение и исполнение (5 / r-x). Право на чтение (4 / r) будет означать только возможность просмотра имен файлов, без их атрибутов (размер, владелец и пр.).

## Просмотр установленных прав

Просмотреть назначенные права для файлов в текущем каталоге можно командой `ls -l`. 

Права для файлов в выводе будут отмечены флагом `-`, для директории — флагом `d` в начале строки, например:

```shell
username@server:~/new_directory$ ls -l
total 4
drwx------ 2 username customers 4096 Mar 10 14:39 dir1
-rw-r--r-- 1 username customers  128 Mar 10 14:39 test.php
```

Параметры в выводе:

```shell
Права    Владелец  Группа  Размер файла  Последнее изменение  Имя файла

rw-r--r--   username  customers  0             Mar 10 14:39         test.php
```

Если нужно просмотреть права только на конкретный файл или каталог в текущей директории, необходимо указать его имя. Например:

```shell
ls -l test.php
ls -l dir5
```

Чтобы просмотреть права на файлы во всех вложенных подкаталогах в текущей директории, можно использовать флаг `-R`:

```shell
ls -Rl
```

Либо можно указать имя директории, права на файлы и подкаталоги в которой нужно просмотреть:

```shell
ls -Rl dir1
```

## Настройка прав доступа

Изменять права доступа для файла может только его владелец или администратор системы (т.е. root или пользователь с привилегиями sudo).

Настройку прав доступа можно выполнять:

-   при SSH-подключении;
-   через FTP-клиент.

### **По SSH**

Настраивать права доступа можно командой `chmod`. Существует два способа ее использования.

**Способ 1**, наиболее простой. При каждом изменении прав указывается весь набор прав для всех категорий пользователей. Права указываются в числовом формате.

Синтаксис команды:

```shell
chmod xxx имя_файла
```

Например, следующей командой можно установить для файла `test.php` права 755, т.е. полные права для владельца, права на чтение и исполнение для всех остальных.

```shell
chmod 755 test.php
```

Чтобы установить права 644 файлу `test.php`, необходимо выполнить:

```shell
chmod 644 test.php
```

Установить права 755 на каталог `dir`:

```shell
chmod 755 dir
```

В отдельных случаях может быть полезна опция `-R`, она позволяет назначать права рекурсивно. Будьте внимательны при ее использовании, так как она изменит права доступа для всех файлов во всех подкаталогах в текущем каталоге.

Указать права 755 всем объектам в текущем каталоге (включая подкаталоги):

```shell
chmod -R 755 *
```

**Способ 2** позволяет указывать только конкретное изменение в правах для конкретной категории пользователей. Используется символьная запись прав.

Синтаксис команды:

```shell
chmod Категория Действие Права имя_файла
```

**Категории пользователей** имеют следующие обозначения:

-   **u** — владелец (от user)
-   **g** — группа (от group)
-   **o** — остальные (от other)
-   **a** — все категории (от all)

**Действия с правами** включают в себя:

-   **+** — добавить указанные права
-   **\-** — удалить указанные права
-   **\=** — заменить права на указанные

**Права** указываются как **r**, **w** и **x**. При указании комбинаций (например, чтение и исполнение) здесь не нужно использовать дефис, т.е. указываем **rx**, а не r-x.

Например, следующей командой можно добавить права на чтение и исполнение для группы. Другие ранее установленные права никак не изменяются.

```shell
chmod g+rx test.php
```

Удалить для группы права на запись в файл `test.php`:

```shell
chmod g-w test.php
```

Удалить права на чтение и запись для остальных пользователей:

```shell
chmod o-rw test.php
```

Дать группе и остальным пользователям доступ к каталогу `dir1` (права на чтение и исполнение):

```shell
chmod go+rx dir1
```

Дать группе и остальным пользователям право на чтение всех файлов и каталогов в директории `new_directory` (используется ключ `-R`):

```shell
chmod -R go+r new_directory
```

### **По FTP/SFTP (FileZilla)**

Задавать и изменять права в FTP-клиенте очень просто.

1.  Подключитесь к серверу с помощью FileZilla.
2.  Найдите нужный файл или каталог.
3.  Кликните по нему правой кнопкой мыши и выберите «Права доступа к файлу».
4.  Задайте нужные права. При редактировании прав на каталог также есть возможность применить настройки к вложенным каталогам.      
    
5.  Сохраните изменения.  
      
    ![Rwxfz2](https://content.timeweb.com/assets/13debfd4-d78c-4df6-ba9b-e7fbf0cd355c?width=345&height=489)

_Настройка атрибутов файла в интерфейсе в [FileZilla](https://filezilla-project.org)_

## Изменение владельца или группы файла

Чтобы изменить для файла или каталога группу или владельца, используется команда `chown`.

Синтаксис команды:

```shell
chown владелец:группа имя_файла
```

Например, чтобы установить `user1` владельцем файла `test.php`, необходимо выполнить:

```shell
chown user1 test.php
```

Если одновременно надо изменить группу на `customers`, используем:

```shell
chown user1:customers test.php
```

Чтобы изменить только группу:

```shell
chown :customers test.php
```
