Помощь

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

Настройка прав доступа к файлам и каталогам на сервере через SSH или с применением FileZilla - тема данного руководства.

Общие сведения о правах доступа

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

Абсолютное управление правами доступа предоставляется лишь суперпользователю root (поэтому работа от его имени может быть опасной). Остальные пользователи изначально имеют доступ только к своим домашним каталогам и не способны внести нежелательные изменения в системные файлы.

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

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

Права

Для файлов

Для каталогов

r, чтение

Просмотр содержимого

Просмотр содержимого, то есть списка объектов в каталоге (например, командами cat, ls)

w, запись

Изменение содержимого

Изменение содержимого каталога, то есть можно добавлять и удалять файлы (даже принадлежащие другим пользователям), переименовывать их

x, исполнение

Запуск файла на исполнение

Вход в каталог (например, командой сd), просмотр атрибутов файлов, находящихся в каталоге

Три разные категории пользователей определяются для каждого файла:

  • Владелец файла - это тот пользователь, который создал файл или в данный момент является его владельцем. По умолчанию владелец имеет полные права на файл.
  • Группа - это группа пользователей, созданная в системе и назначенная файлу с определенными правами. Группа может состоять из одного пользователя (владельца) или из нескольких пользователей. Если группа включает несколько пользователей, все они имеют права, предоставленные группе.
  • Прочие - это все остальные пользователи, которые не являются владельцем файла и не принадлежат к группе, связанной с файлом.

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

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

Цифровая запись

Буквенная запись

Права

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), а всем остальным пользователям также предоставлены права на чтение и выполнение (5 / r-x).

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

Цифры

Буквы

Права

600

rw------

Владелец может просматривать и изменять содержимое, у остальных нет доступа к объекту

644

rw-r--r--

Владелец может просматривать и изменять содержимое, остальные могут только просматривать

700

rwx-- --

Владелец может просматривать, изменять содержимое, запускать исполнение объекта, у остальных нет доступа к объекту

755

rwxr-xr-x

У владельца полный набор прав, остальным доступны просмотр и исполнение

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

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

Чтобы просмотреть назначенные права для файлов в текущем каталоге, используйте команду ls -l.

При выводе результатов, файлы будут помечены флагом -, а директории флагом d в начале строки. Например:

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

Расшифровка параметров:

Права    Владелец  Группа  Размер файла  Последнее изменение  Имя файла
rw-r--r--   username  customers  0             Mar 10 14:39         test.php

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

ls -l test.php
ls -l dir5

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

ls -Rl

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

ls -Rl dir1

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

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

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

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

По SSH

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

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

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

chmod xxx имя_файла

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

chmod 755 test.php

Для установки прав 644 на файле test.php, выполните:

chmod 644 test.php

Установка прав 755 для каталога dir:

chmod 755 dir

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

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

chmod -R 755 *

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

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

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

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

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

Изменения прав доступа предоставляют следующие возможности:

  • + — добавление указанных прав
  • - — удаление указанных прав
  • = — замена прав на указанные

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

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

chmod g+rx test.php

Для удаления права на запись для группы в файле test.php, используйте следующую команду:

chmod g-w test.php

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

chmod o-rw test.php

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

chmod go+rx dir1

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

chmod -R go+r new_directory

По FTP/SFTP (FileZilla)

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

  1. Подключитесь к серверу с использованием FileZilla.
  2. Найдите необходимый файл или каталог.
  3. Щелкните правой кнопкой мыши по нему и выберите "Свойства".
  4. Установите необходимые права. При редактировании прав для каталога также есть возможность применить изменения ко всем вложенным каталогам.
  5. Сохраните внесенные изменения.

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

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

Синтаксис команды следующий:

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

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

chown user1 test.php

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

chown user1:customers test.php

Для изменения только группы выполните:

chown :customers test.php

Остались вопросы - пишите