Содержание
В этой небольшой статье представлена довольно исчерпывающая информация о правах доступа в Unix-подобных операционных системах, описаны варианты их изменения, а также расшифровываются некоторые понятия и определения.
Для начала следует разобраться с основными понятиями такими как: кто такой владелец файла в Linux, каким образом к файлу получают доступ другие пользователи, а не только сам владелец и т.д.
В Unix-подобных системах приложение запускается с правами пользователя, вызвавшего указанное приложение. Это обеспечивает дополнительную безопасность, так как процесс с правами пользователя не сможет получить доступ на запись к важным системным файлам, например /etc/passwd, который принадлежит суперпользователю root. Звучит просто, но существует некоторые особенности, которые нужно обязательно знать и учитывать.
Владелец, Группа и Все остальные
Владелец
Владелец файла или директории в Linux – это пользователь, который их создал. Командой chown можно поменять владельца для файла или директории.
Права на чтение, запись и исполнение устанавливаются с помощью числовых кодов 0400, 0200 и 0100 соответственно. Их можно комбинировать. Например, код 0700 позволяет читать, записывать и изменять файлы владельцем.
Группа
Группа — это несколько пользователей Linux, которые могут использовать (при достаточных правах доступа) файлы и папке на уровне с их владельцем. Изменить группу пользователей ассоциированных с файлом или директорией можно командой chgrp.
Права на чтение, запись и исполнение устанавливаются с помощью числовых кодов 0040, 0020 и 0010 соответственно. Их можно комбинировать. Например, код 0070 позволяет читать, записывать и изменять файлы ассоциированной с файлом группой пользователей.
Все остальные
Это собирательное название для тех, кто не является владельцем файла или не относится к группе пользователей, которая может работать с этим файлом или директорией. Хорошая аналогия – это «весь мир», «каждый» или «любой».
Права на чтение, запись и исполнение устанавливаются с помощью числовых кодов 0004, 0002 и 0001 соответственно. Их можно комбинировать. Например, код 0007 позволяет читать, записывать и изменять файлы любому желающему.
Права на чтение, запись и выполнение
Чтение
Позволяет файлу быть прочитанным определенной группой пользователей.
Определяется как «r» в выводе команды ls
Запись
Позволяет изменять файлы или директории.
Определяется как «w» в выводе команды ls
Выполнение
Позволяет запускать бинарные файлы. Кроме этого, проверяет является ли папка доступной для поиска. Например, если у директории выставлены права 0600, то Вы не сможете воспользоваться командой cd, чтобы войти в эту папку или просмотреть ее содержимое командой ls
Определяется как «x» в выводе команды ls
Ну а теперь можно переходить к практике.
Определение и контроль прав доступа в Linux командой ls
С помощью команды ls можно узнать какие права доступа выставлены на файлы в данной или указанной директории:
gruyere@meltingpot /test_perms $ ls -l
total 0
-rw-r—r— 1 gruyere staff 0 27 Feb 19:43 bar
drwxr-xr-x 2 gruyere staff 68 27 Feb 19:45 baz
-rw-r—r— 1 gruyere staff 0 27 Feb 19:43 foo
Как видно из примера выше, команда ls показывает символьный код прав доступа на файлы и директории. В 3 и 4-ой колонке также указывается, кто является владельцем этих файлов или директорий и к какой группе пользователей они принадлежат.
chmod
chmod (change mode) – это широко используемая команда для изменения прав доступа к файлам и папкам в Linux. Она позволяет устанавливать права на доступ как пользователю, так и
