Как просматривать и изменять права доступа в Linux

Если вы имеете за плечами хотя бы небольшой опыт работы в Windows, то наверняка вам уже приходилось сталкиваться с такой штукой как права доступа. Последние являются одной из ключевых функций безопасности, отсутствие прав доступа означало бы полную беззащитность системы перед внешними атаками и вирусами, которые с легкостью смогли бы перезаписать любой системный файл. Полагаем, вы уже разобрались, как их задавать, впрочем, иначе не могло и быть, ведь устроены они довольно просто, а самое главное, логично.

Владельцем файла в Windows может быть либо операционная система, либо пользователь, который в свою очередь может иметь права гостя, обычного юзера и администратора, при этом возможности пользователя зависят от его статуса. Например, обычный пользователь не может изменять конкретный файл, тогда как администратор волен делать с файлом всё что ему заблагорассудится. Но когда пользователь Windows пытается применить ту же логику к Linux, то непременно сталкивается с трудностями понимания организации прав доступа.

Удивляться тут особо не приходится, ибо она основательно отличается от того, с чем приходится сталкиваться пользователю в Windows. Так, одним из ключевых отличий распределения прав доступа в Linux является назначение каждому файлу не только хозяина, но и группы. Кроме того, в линукс-системах имеются особые права доступа, позволяющие юзерам запускать приложения от имени суперпользователя без ввода его пароля, но обо всём по порядку.

На базовом уровне в Linux используются три параметра доступа к файлам. К ним относятся:

  • Чтение — этот параметр позволяет просматривать содержимое файлов и директорий, но не вносить в них изменения.
  • Запись — наличие этого параметра позволяет вносить в файл изменения и создавать/удалять файлы и папки в каталогах.
  • Выполнение — особый параметр, предоставляющий разрешение на запуск исполняемых файлов — приложений и скриптов. Без этого ключа файлы приложений не будут идентифицированы как исполняемые.

Кроме того, в Linux имеется три категории пользователей, для которых могут быть изменены права доступа.

Таковыми категориями являются:

  • Владелец — входящие в эту группу пользователи обычно имеют полный набор прав на созданные ими файлы, а также на файлы, для которых пользователь назначен владельцем.
  • Группа — категория пользователей, связанная с файлом. По умолчанию группа создается для каждого юзера, при этом она имеет то же имя и ID, что и пользователь.
  • Все остальные — эту категорию составляют все остальные пользователи, кроме владельца и не привязанных к файлу пользователей групп. Исключением является только суперпользователь (root), который имеет полный доступ ко всем файлам независимо от их атрибутов.

Стоит также упомянуть о специальных правах доступа, так называемых битах, расширяющих полномочия обычных пользователей.

  • SUID — заменяет ID запускающего программу пользователя на ID другого юзера, того же Root.
  • SGID — работает так же, как и SUID, только при этом запускающий файл пользователь будет считаться членом группы, с которой этот файл связан.
  • Sticky-bit — в настоящее время флаг утратил актуальность, раньше он применялся при создании общих папок. Файлы, для которых он установлен, можно читать и исполнять, но нельзя удалять, если только желающий удалить файл не является его владельцем.

Свойства файла - Права

Смотрим права доступа

Но довольно теории, давайте теперь посмотрим, как просматривать и изменять права доступа в Linux. Узнать права доступа для файла или папки можно в свойствах объекта на вкладке «Права», но для получения полной картины лучше использовать терминал.

Откройте его в каталоге с файлами и выполните такую команду:

ls -l

Если нужно просмотреть права конкретного файла, к команде через пробел нужно добавить имя файла, например, ls -l NTUSER.DAT, если речь идет о папке, то указывается ее имя. В результате вы получите в терминале такую картинку.

Ls -l

Обратите внимание на набор из десяти символов в начале каждой строки, это символьное обозначение прав доступа в Линукс.

Символьное обозначение прав доступа

Первый символ обозначает тип данных, например, дефис означает, что вы имеете дело с обычным файлом, смотрите скриншоты ниже.

Типы объектов

В следующих девяти символах «закодированы» права доступа. На самом деле, права указаны в каждой тройке символов, то есть полученную строку rwxrwxrwx можно представить как rwx-rwx-rwx. Первая группа — это права доступа хозяина объекта, вторая группа — это права системной группы, третья тройка символов означает права на файл для всех прочих пользователей.

А вот что означают сами символы:

Права доступа к файлу

Зная обозначения, можно легко разобрать любую комбинацию. Например, rwx означает, что пользователь или группа имеет права на чтение, запись и исполнение, r-x — права на доступ и исполнение, но с запретом на изменение или удаление, rw- станет означать наличие прав на чтение и запись, но не право запускать файл как исполняемый.

Как в Linux определить и заменить пользователя и группу

Как вы уже знаете, права в Linux могут иметь не только пользователи, но и группы, в связи с чем может возникнуть вопрос: а как определить имя владельца и название группы? Элементарно, их выводит та же команда ls -l. В третьей колонке слева указано имя владельца объекта, название же связанной с объектом группы указано в четвертой колонке.

Название группы владельца

При желании вы можете заменить хозяина и группу для файла или папки, воспользовавшись такой командой:

sudo chown u:g file

Изменение владельца файла

chown — это сама команда замены, u — имя пользователя, которому желаем делегировать права, g — название группы, а file — название самого файла. В данном случае мы передаем права суперпользователю — root.

Меняем права в Линукс для объектов ФС

Если за замену пользователя и группы в Линукс отвечает команда chown, то для изменения прав доступа в системе предусмотрена команда chmod.

Она имеет следующий синтаксис:

chmod категория действие права объект

Что такое категории вы уже знаете, это владельцы файлов, группы и все остальные пользователи. Обозначаются категории как u, g и o соответственно. Для сразу всех категорий используется обозначение a. Категории можно группировать, например, ug станет означать, что мы хотим изменить права на объект для владельца и группы.

Действие — это изменение прав. Для присвоения прав используется ключ «=», для добавления указывается флаг «+», чтобы забрать права, нужно использовать ключ «-». С обозначениями прав вы также уже знакомы. Всё, можно формировать команды.

Сделаем для примера файл ntuser.ini недоступным для редактирования и исполнения:

chmod ug-wx ntuser.ini

Chmod

В результате символьное представление прав стало таким: r--r--rwx. Как видите, права на файл были изменены для текущих владельца и группы, но не для категории «Все остальные», если же бы мы вместо ug указали ugo или a, право на чтение и исполнение потеряли бы все категории. Обратите внимание, что в данном случае мы не использовали sudo в начале команды, поскольку и так являемся владельцем. Если же бы изменяли права root или другого пользователя, использование sudo было бы обязательным.

Ну вот, теперь в самых общих чертах вы знаете, чем отличаются организация прав доступа в Линукс от организации прав доступа в Windows, а самое главное, умеете просматривать и изменять права. Уверены, эти знания очень вам пригодятся, позволяя максимально эффективно управлять доступом к пользовательским и системным файлам.

Оцените Статью:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 5,00 из 5)
Загрузка...
Что делать, если при загрузке рабочего стола открываются INI-файлы

Системный сбой может привести и порой приводит к очень странным ошибкам, которые, хотя и не ...

Что делать, если файл thumbs.db не дает удалить сетевую папку

Удаление общих сетевых папок почти ничем не отличается от удаления обычных каталогов, за тем лишь ...

Как найти и удалить осиротевшие файлы в облачном хранилище Google Drive

Каждый создавший учетную запись Google пользователь автоматически получает 15 Гб бесплатного облачного дискового пространства. Это ...

Что делать, если при удалении папки Windows выдает сообщение «Элемент не найден»

Выполнив удаление файла или папки, неожиданно для себя вы можете обнаружить, что удаленный объект по-прежнему ...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *