На главную
- Инструкции для UNIX-систем
- Обзор
- Подключение к серверу по SSH
- Подключение к серверу по SFTP
- Авторизация по SSH-ключу
- Смена или сброс пароля root
- Смена пароля root для MySQL
- Добавление пользователей
- Управление правами доступа
- Защита SSH от подбора пароля. Fail2ban
- Создание дампа базы и восстановление данных
- Установка LAMP на Ubuntu
- Установка phpMyAdmin на Ubuntu с LAMP
- Установка SSL-сертификата на Nginx
- Установка модулей PHP (CentOS)
- Установка модулей PHP (Debian / Ubuntu)
- Настройка параметров PHP (CentOS)
- Настройка параметров PHP (Debian / Ubuntu)
- Настройка перенаправлений
- Настройка перенаправлений (Nginx)
- Настройка FTP в Ubuntu 20.04
- Оптимизация MySQL с помощью MySQLTuner
- Сканирование с помощью ClamAV
- Управление службами в systemd
- Логирование в systemd
- Аудит системных событий
- Добавление дополнительного IP
- Настройка статического IP
- Добавление и удаление диска
- Изменение размера диска
- Монтирование резервных копий
- Создание swap, изменение его размера
- Установка и удаление программ. Менеджеры пакетов
- Установка графической оболочки XFCE на Ubuntu
- Настройка iptables
- Настройка OpenVPN
- Установка произвольной ОС на сервер
- Удаленный доступ к MySQL
- Установка QEMU-агента
- Установка Zabbix-агента
- Установка и работа с PostgreSQL
- Установка почтового сервера iRedMail
- Настройка почтового сервера iRedMail
- Установка SSL на сервер с Keitaro
- Запуск Wordpress на сервере c Ubuntu
- Запуск бота в фоновом режиме
- Установка сертификатов Минцифры
- Подготовка образа для создания облачного сервера
- Создание и развертывание образа с помощью утилиты dd
- Установка Minecraft на CentOS 7
- Запуск сервера Minecraft
- Запуск сервера с CS 1.6 и EngineGP
- Запуск сервера RageMP
- Настройка Outline VPN
- Диагностика и решение проблем
- Инструкции для Windows
- Панели управления
Управление правами доступа
Рассказываем, как настроить права доступа к файлам на сервере через SSH или с помощью FileZilla.
Общая информация о правах доступа
Система прав доступа в Linux позволяет разграничивать и гибко настраивать доступ пользователей к файлам и каталогам, повышая тем самым безопасность системы.
Полные права ко всему имеет только суперпользователь root (именно поэтому работать от 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).
Примеры наиболее распространенных комбинаций для прав доступа:
Цифры |
Буквы |
Права |
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-клиенте очень просто.
- Подключитесь к серверу с помощью FileZilla.
- Найдите нужный файл или каталог.
- Кликните по нему правой кнопкой мыши и выберите «Права доступа к файлу».
- Задайте нужные права. При редактировании прав на каталог также есть возможность применить настройки к вложенным каталогам.
- Сохраните изменения.
Изменение владельца или группы файла
Чтобы изменить для файла или каталога группу или владельца, используется команда chown
.
Синтаксис команды:
chown владелец:группа имя_файла
Например, чтобы установить user1
владельцем файла test.php
, необходимо выполнить:
chown user1 test.php
Если одновременно надо изменить группу на customers
, используем:
chown user1:customers test.php
Чтобы изменить только группу:
chown :customers test.php