Подробное руководство по правам доступа к файлам в Linux.
Видео про права доступа к файлам в Linux
Начнем с примера
Рассмотрим пример. Если выполнить в какой-либо директории с файлами команду ls -l, то вывод будет примерно следующий:
ls -l
-rw-rw-r-- yuriy yuriy 155 июл 25 16:12 myfile.sh
drwxrwxr-x yuriy yuriy 4096 июл 25 17:54 Data
В этом выводе в начале каждой строки для каждого файла перечислены права доступа к данному файлу (-rw-rw-r-- yuriy yuriy).
Или, например, если вы щелкните правой кнопкой по файлу и нажмете Свойства, то в открывшемся окне можно будет просмотреть и изменить права доступа к файлу (внешний вид окна может быть другой):
Из чего состоят права доступа
Каждый файл в операционной системе Linux имеет права доступа. Права доступа определяются тремя атрибутами:
разрешений
(rwxrwxrwx)
пользователь
(user, owner)
группа
(group)
Набор разрешений
Для каждого файла в Linux задается набор разрешений. Разрешения могут быть следующими:
- r — read — возможность открытия и чтения файла. Для директории это возможность просматривать содержимое директории.
- w — write — возможность изменения файла. Для директории это возможность добавлять, удалять или переименовывать файлы в директории.
- x — execute — возможность выполнения файла (запуска файла). Если проводить аналогию с Windows, то это что-то вроде .exe-файлов. Если право доступа на запуск файла отключено, то вы по прежнему можете читать или изменять файл (если включены права на чтение и запись), но не можете запускать файл. Для директории запуск означает возможность войти в директорию и получить доступ к файлам и поддиректориям в ней.
Набор разрешений состоит из 3 блоков rwx:
- Первый блок rwx определяет права доступа для владельца-пользователя.
- Второй блок rwx определяет права доступа для владельца-группы.
- Третий блок rwx определяет права доступа для всех остальных.
Владелец-пользователь
У каждого файла в Linux есть владелец-пользователь (также обозначается как user или owner). По умолчанию, тот, кто создал файл, становится его владельцем.
Первый блок rwx в наборе разрешений файла задет разрешения именно для данного пользователя.
Владелец-группа
У каждого файла в Linux есть владелец-группа (group). Звучит немного странно, но сейчас объясню. Каждая группа в Linux может содержать несколько пользователей. Все пользователи, принадлежащие группе, будут иметь одинаковые права доступа к данному файлу.
Например, у вас есть проект, в котором задействовано несколько работников. Вы можете создать для них группу, например — projectx. Для файлов этого проекта вы устанавливаете группу projectx и запрещаете доступ для всех остальных. Таким образом, только работники проекта (которые входят в группу projectx) смогут иметь доступ к этим файлам, а все остальные нет.
Второй блок rwx в наборе разрешений файла задает разрешения именно для данной группы.
Все остальные
К этой категории относятся все остальные пользователи, имеющие доступ к файлу. Но эти пользователи не относятся к владельцу-пользователю и они не входят в группу, которая владеет файлом (владелец-группа).
Третий блок rwx в наборе разрешений файла задает разрешения для этих пользователей.
Для изменения прав доступа у файлов и директорий служит команда chmod.
Подытожим
Для каждого файла или директории в Linux задаются права доступа. Они задаются тремя атрибутами: набором разрешений, именем владельца, именем группы.
Набор разрешений — это три блока прав доступа: права доступа для владельца файла, права доступа для группы, права доступа для всех остальных.
Разрешения записываются символами r, w, x.
Набор разрешений состоит из трех блоков и записывается в виде трех rwx, записанных друг за другом в виде одного «слова».
Если какая-либо возможность отключена (запрещена), то вместо соответствующего символа в наборе разрешений ставится прочерк (символ минус).
Обозначение прав доступа
Теперь можно еще раз рассмотреть пример вывода команды ls -l. Данная команда выводит список файлов в директории и показывает права доступа к файлам.
Как вы можете видеть, для файла myfile.sh установлены права доступа -rw-rw-r--, владельцем файла является пользователь yuriy и владелец-группа yuriy. Здесь нужно пояснить, что большинство Linux дистрибутивов для каждого пользователя создают группу с таким же названием, как и имя пользователя. В нашем примере как раз такой случай — пользователь yuriy добавлен в группу yuriy.
Первый символ в правах доступа это флаг. В примерах выше, он также использовался. В нашем случае это прочерк (символ минус). Технически он не задает права доступа, но используется, как первый символ в обозначении прав доступа. Для файлов он принимает значение «-», для директорий значение «d», а для ссылок значение «l».
Далее следуют три блока прав доступа.
- Первый блок задает права для пользователя yuriy (он владелец файла). Он может читать и изменять файл, но не может запускать файл.
- Второй блок задает права для группы yuriy. Члены группы yuriy могут читать и изменять файл, но не могут запускать файл.
- Третий блок задает права доступа для всех остальных. Все остальные пользователи (не yuriy и те кто не входит в группу yuriy) могут только читать файл.
Комментарии
20:27