Linux — многопользовательская операционная система. Он может обрабатывать несколько пользователей, обращающихся к системе одновременно. Это одна из основных причин, почему Linux так популярен в мэйнфреймах, серверах, суперкомпьютерах и т. д. Поскольку это многопользовательская система, крайне важно иметь функциональное управление разрешениями пользователей. Это фундамент, определяющий, какой пользователь/группа может получить доступ к какой части системы.
Для доступа к файлам это разрешение пользователя управляется как права доступа к файлу. В этой статье мы подробно рассмотрим права доступа к файлам и папкам в Linux.
Предпосылки
Чтобы понять права доступа к файлам и папкам, важно понимать несколько ключевых понятий. В этом разделе мы кратко опишем каждый из них.
Пользователи и группы пользователей
Linux разрешает доступ к системам отдельным пользователям. Любой действительный пользователь может подключиться к системе локально или удаленно и получить доступ к любому выделенному ресурсу.
Если пользователей сотни, то управлять всеми их разрешениями по отдельности довольно неэффективно. Чтобы решить эту проблему, в Linux введена концепция групп пользователей. Каждая группа может содержать одного или нескольких пользователей. Изменение разрешений для группы пользователей будет автоматически применяться ко всем пользователям в этой группе.
Проверка прав доступа к файлам и папкам
В зависимости от типа пользовательского интерфейса есть два способа проверить права доступа к файлу папки/каталога.
Проверка прав доступа к файлам с помощью графического интерфейса
Если ваш дистрибутив поставляется с окружением рабочего стола, то, скорее всего, в нем также будет установлен файловый менеджер. Все файловые менеджеры могут проверять и показывать права доступа к файлам. Для демонстрации давайте взглянем на Nautilus, файловый менеджер по умолчанию в GNOME.
Щелкните правой кнопкой мыши любой файл/папку и выберите «Свойства».
Чтобы проверить разрешения, перейдите на вкладку «Разрешения».
Проверка прав доступа к файлам с помощью CLI
Это наиболее рекомендуемый (хотя и немного запутанный) метод проверки прав доступа к файлам в Linux. Мы будем использовать инструмент ls, который предустановлен во всех дистрибутивах Linux.
Чтобы проверить права доступа к файлу, выполните следующую команду ls. Ознакомьтесь с этим руководством для более подробного изучения команды ls.
$ ls -l <path_to_file_dir>
Если расположение файла не указано, то ls выведет информацию обо всех файлах в текущем каталоге. Обратите внимание, что ls может не печатать права доступа к файлу и информацию, если это каталог.
Например, при попытке проверить права доступа к каталогу «~/Desktop» ls вообще не выводит никакой информации.
$ ls -l ~/Desktop
В такой ситуации запустите ls в родительском каталоге целевого каталога. В данном случае это «~/».
$ ls -l ~
Объяснение прав доступа к файлам
Как мы видим, права доступа к файлу описываются строкой из нескольких символов ASCII. Это руководство по правам доступа к файлам в Linux объясняет все более подробно. Здесь у нас будет краткий обзор.
Существует 3 типа разрешений.
- read ( r ) — способность пользователя читать содержимое файла.
- write ( w ) — возможность пользователя записывать или изменять файл или содержимое каталога.
- execute ( x ) — возможность пользователя выполнить файл или просмотреть содержимое каталога.
Строка разрешения содержит следующие данные.
- Символ 1: Описывает тип файла (каталог, символическая ссылка, разрешения setuid/setgid или разрешения закрепленного бита).
- Символ 2-4: Описывает права доступа к файлу для владельца.
- Символ 5-7: Описывает групповые разрешения для файла.
- Символ 8-10: Описывает права доступа к файлам для всех остальных в системе.
Для типа файла существует несколько разных значений.
- _: Никаких специальных разрешений.
- d: Каталог
- l: символическая ссылка, также известная как символическая ссылка. Узнайте больше о символических ссылках в Linux.
- s: разрешения setuid/setgid.
- t: Закрепленные битовые разрешения.
Изменение прав доступа к файлам и папкам
Права доступа к файлам являются важными значениями. Однако при наличии соответствующих полномочий пользователь в системе Linux может изменить права доступа к файлу.
Для изменения разрешений в Linux имеется встроенный инструмент под названием chmod. Например, чтобы пометить файл сценария как исполняемый, мы должны запустить следующую команду.
$ chmod +x <script_file>
Если бы вы хотели убрать из файла флаг «исполняемый», то команда выглядела бы так.
$ chmod -x <script_file>
Новичку рекомендуется попрактиковаться в различных командах chmod, например, дать пользователю разрешение на доступ к папке. Следующее руководство углубляется в chmod с пояснениями.
Изменение владельца файла
Владелец файла также влияет на права доступа к файлу. Как правило, это пользователь, который изначально создал файл. Однако владельцами файла или каталога могут быть назначены разные пользователи.
Чтобы изменить владельца файла, в Linux есть инструмент chown.
Последние мысли
Права доступа к файлам — важная концепция в Linux. Проверка прав доступа к файлу для папки — простая задача. Linux поставляется с необходимыми инструментами для управления ими прямо из командной строки. В этой статье успешно демонстрируется проверка и изменение прав доступа к файлам и папкам.