В операционных системах Linux четко обозначено, кто может просматривать, менять содержимое или выполнять файл. Для этого необходимо правильно настроить права доступа.
В статье мы расскажем о том, что такое права доступа в Linux и как дать их пользователю.
Что такое права доступа и зачем они нужны
Права доступа пользователей в Linux — это система правил, которая определяет кто и что может делать с файлом или каталогом. Это фундаментальный механизм безопасности, который используется при многопользовательской работе с файловой системой.
Существует три основных права для файлов и папок:
r (read)— чтение. Это право позволяет просматривать содержимое файла или получить список элементов каталога. Какие действия с правом r доступны на практике:- просматривать текст файла в текстовом редакторе,
- копировать содержимое файла,
- выводить содержимое файла на экран,
- отправлять файл по сети и многое другое.
w (write)— запись. Это право позволяет изменять содержимое файла или модифицировать структуру каталога. На практике доступны следующие действия:- редактировать содержимое файла,
- сделать файл пустым,
- сохранять изменения в существующем файле и многое другое.
- Важно: право записи не дает возможности удалить или переименовать файл — эти действия контролируются правами на родительский каталог.
x (execute)— выполнение. Это право позволяет запускать файл как программу или получать доступ к содержимому каталога. Какие действия с файлом доступны на практике:- запускать бинарные исполняемые файлы,
- выполнять скрипты,
- вызвать команду напрямую по имени файла и многое другое.
Помимо самих прав, система требует обозначать эти права для каждой группы пользователей. Их существует три:
u (user/owner)— владелец. Это пользователь, который создал файл или является его текущим владельцем.g (group)— группа. У каждого файла есть группа-владелец. Права для группы применяются ко всем ее участникам, кроме самого владельца.o (others)— все остальные. Все пользователи системы, которые не являются ни владельцами, ни участниками группы-владельца.

Варианты записи прав доступа
Существует два основных формата записи прав доступа:
- Символьный.
- Цифровой.
Разберем их подробнее.
Символьное представление
Символьное представление — это наиболее часто используемый способ отображения прав доступа в Linux. В этом формате права доступа отображаются в виде строки из десяти символов. Символьное представление дает пользователю следующие преимущества:
- наглядность — чтобы прочитать права, достаточно базового знания английского языка. В этом случае обозначения буквами r, w и x будут понятны даже новичкам;
- полнота — помимо основных прав, в строке отображается тип файла и особые права (при наличии);
- удобство — если требуется изменить права, это можно сделать по буквам (добавить или убрать).
Рассмотрим пример:
-rwxr-xr--
Что значит каждый из этих символов:
- Первый символ обозначает тип объекта:
- — обычный файл. Это может быть текстовый документ, картинка, архив и другие файлы;d — каталог;l — символическая ссылка;b — блочное устройство (жесткий диск или флешка);c — символьное устройство (терминал или принтер);p — именованный канал (pipe);s — сокет.
В примере выше на первом месте стоит дефис — это значит, что речь идет о правах на обычный файл.
- Основные права. Они представляют собой девять символов, разбитых на три группы для категорий пользователей. В нашем примере права обозначены так:
rwxr-xr--
Что означает каждая тройка:
- у администратора есть права на чтение, запись и выполнение;
- у групп есть права на чтение и выполнение;
- у остальных пользователей есть права только на чтение
Знак дефиса означает отсутствие того или иного права.
Стандартные права доступа:
- для файлов —
rw-r--r--, - для каталогов —
rwxr-xr-x.
Цифровое представление
Цифровое представление — это компактный числовой способ задания прав доступа, основанный на восьмеричной системе счисления. В случае с этим способом каждому базовому правилу присваивается цифра:
- для r — 4,
- для w — 2,
- для x — 1
В случае отсутствия права присваивается 0. Разберем виды прав для одной группы пользователей на примере:
| Комбинация прав | Расчет | Результат |
|---|---|---|
| --- (нет прав) | 0 + 0 + 0 | 0 |
| --x (только выполнение) | 0 + 0 + 1 | 1 |
| -w- (только запись) | 0 + 2 + 0 | 2 |
| -wx (запись + выполнение) | 0 + 2 + 1 | 3 |
| r-- (только чтение) | 4 + 0 + 0 | 4 |
| r-x (чтение + выполнение) | 4 + 0 + 1 | 5 |
| rw- (чтение + запись) | 4 + 2 + 0 | 6 |
| rwx (все права) | 4 + 2 + 1 | 7 |
Стандартные права доступа:
- для файлов — 644,
- для каталогов — 755.

Основные команды для изменения и просмотра прав
Работать с командами можно на ПК или виртуальной машине, а также на удаленном облачном сервере. Для просмотра и изменения прав доступа для пользователей Linux необходимо использовать Терминал. Его можно открыть с помощью комбинации клавиш Ctrl + Alt + T. При вводе команд стоит учесть, что ОС семейства Linux чувствительны к регистру. Это значит, что флаги -R и -r система посчитает разными.
Важно: при выдаче прав следуйте принципу минимальных привилегий — то есть настраивайте минимальные права, которые необходимы для выполнения задач. Это защитит файлы и папки от нежелательного доступа третьих лиц.
Как посмотреть права пользователя в Linux
Для ответа на вопрос «Как узнать права пользователя в Linux?» необходимо разобрать специальную команду и опции для нее.
Для просмотра прав доступа в Linux используется команда ls в комбинации с опциями. Например, часто используются следующие команды:
ls -l — вывести список файлов с указанием прав доступа.
ls -la — вывести полный список файлов (в том числе скрытых) с указанием прав доступа.
ls -lh — вывести список файлов с указанием прав доступа и человекочитаемых размеров.
ls -ld directory/ — вывести информацию о каталоге (вместо directory/ укажите путь к желаемой папке).
ls -l /directory/file — вывести информацию о конкретном файле (вместо /directory/file укажите путь к желаемому файлу).
Как изменить права пользователя Linux
Для изменения прав доступа к файлу или каталогу используется команда chmod (change mode) в комбинации с опциями. Примеры команд:
chmod u+x script.sh — дать пользователю-владельцу право на выполнение файла Linux (вместо script.sh укажите имя файла, для которого нужно изменить права).
chmod g-w file — удалить право на изменение для группы-владельца (вместо file укажите имя файла, для которого нужно изменить права).
chmod o=r file — выдать право только на чтение какого-либо файла для пользователей Linux (вместо file укажите имя файла, для которого нужно настроить права).
chmod a+x script.sh — добавить всем пользователям Linux право на выполнение (вместо script.sh укажите имя файла, для которого нужно изменить права).
Также команда chmod поддерживает цифровой формат ввода, например:
chmod 755 directory/ — дать права на папку для всех групп пользователей Linux (вместо directory/ укажите путь к желаемой папке).
chmod 644 file — назначить права на файл для всех групп пользователей Linux (вместо file укажите имя файла, для которого нужно настроить права).

Работа с владельцами и группами
Если вам нужно изменить владельца файла или каталога, используйте команду chown (change owner). Разберем практические примеры этой команды:
chown username file — изменить владельца файла. Здесь:
- username — имя пользователя, которого нужно сделать владельцем;
- file — имя файла, для которого нужно изменить владельца.
Группа при этом останется прежней.
chown username:group file — сменить владельца файла и группу. Здесь:
- username — имя пользователя, которого нужно сделать владельцем;
- group — имя новой группы;
- file — имя файла, для которого нужно изменить владельца.
chown :group file — сменить группу. Здесь:
- group — имя новой группы;
- file — имя файла, для которого нужно изменить владельца.
Также с помощью chown можно рекурсивно менять владельцев и групп всех файлов в каталоге. Например:
chown -R username:group directory/ — сменить владельца и группу для всех файлов в каталоге. Здесь:
- username — имя пользователя, которого нужно сделать владельцем;
- group — имя новой группы;
- directory/ — путь к каталогу, в котором нужно изменить владельца всех файлов.
chown -R username directory/ — сменить владельца для всех файлов в каталоге. Здесь:
- username — имя пользователя, которого нужно сделать владельцем;
- group — имя новой группы;
- directory/ — путь к директории, в котором нужно изменить владельца всех файлов.
Настроить права доступа можно не только на ПК, но и на удаленном сервере с Linux. Например, в Рег.облаке можно заказать облачные решения с предустановленным дистрибутивом Linux на выбор.