stringtranslate.com

Разрешения файловой системы

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

Широко доступны два типа разрешений: разрешения файловой системы POSIX и списки управления доступом (ACL), которые обеспечивают более конкретный контроль.

Варианты файловой системы

Исходная файловая система Таблицы размещения файлов имеет атрибут «только для чтения» для каждого файла.

NTFS, реализованная в Microsoft Windows NT и ее производных, использует списки ACL [1] для предоставления сложного набора разрешений.

OpenVMS использует схему разрешений, аналогичную схеме Unix. Существует четыре категории (система, владелец, группа и мир) и четыре типа разрешений доступа (Чтение, Запись, Выполнение и Удаление). Категории не являются взаимно непересекающимися: Мир включает в себя Группу, которая, в свою очередь, включает Владельца. В категорию «Система» самостоятельно входят пользователи системы. [2]

HFS и его преемник HFS+ , реализованные в классических операционных системах Mac OS , не поддерживают разрешения.

macOS использует разрешения, соответствующие стандарту POSIX. Начиная с версии 10.4 («Tiger»), в дополнение к разрешениям, совместимым с POSIX, он также поддерживает использование списков управления доступом NFSv4. Руководство по администрированию файловых служб Apple Mac OS X Server версии 10.4+ рекомендует по возможности использовать только традиционные разрешения Unix. macOS также по-прежнему поддерживает атрибут «Защищено» классической Mac OS.

Поддержка ACL Solaris зависит от используемой файловой системы; старая файловая система UFS поддерживает списки ACL POSIX.1e, а ZFS поддерживает только списки ACL NFSv4. [3]

Linux поддерживает ext2 , ext3 , ext4 , Btrfs и другие файловые системы, многие из которых включают списки управления доступом POSIX.1e. Существует экспериментальная поддержка списков ACL NFSv4 для файловых систем ext3 [4] и ext4.

FreeBSD поддерживает списки ACL POSIX.1e в UFS и списки ACL NFSv4 в UFS и ZFS. [5] [6]

IBM z/OS реализует безопасность файлов с помощью RACF (Resource Access Control Facility) [7]

Файловая система AmigaOS, AmigaDOS, поддерживает систему разрешений, относительно продвинутую для однопользовательской ОС. В AmigaOS 1.x файлы имели разрешения/флаги «Архивирование», «Чтение», «Запись», «Выполнение» и «Удаление» (вместе известные как ARWED). В AmigaOS 2.x и выше были добавлены дополнительные разрешения/флаги Hold, Script и Pure.

POSIX-разрешения

Разрешения для Unix-подобных файловых систем определены в стандарте POSIX.1-2017 [8] , который использует три области действия или класса, известные как владелец , группа и другие . При создании файла его разрешения ограничиваются маской процесса , создавшего его.

Классы

Файлы и каталоги принадлежат пользователю. Владелец определяет класс пользователя файла . К владельцу применяются отдельные разрешения.

Файлам и каталогам присваивается группа , которая определяет класс группы файла . К членам группы файла применяются отдельные разрешения. Владелец может быть членом группы файла.

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

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

Разрешения

Unix-подобные системы реализуют три конкретных разрешения, применимых к каждому классу:

Эффект установки разрешений для каталога, а не для файла, является «одной из наиболее часто неправильно понимаемых проблем с разрешениями для файлов». [9]

Если разрешение не установлено, соответствующие права запрещаются. В отличие от систем на основе ACL, разрешения в Unix-подобных системах не наследуются. Файлы, созданные в каталоге, не обязательно имеют те же разрешения, что и этот каталог.

Изменение поведения разрешений с помощью битов setuid, setgid и Sticky.

Unix-подобные системы обычно используют три дополнительных режима. На самом деле это атрибуты, но они называются разрешениями или режимами. Эти специальные режимы предназначены для файла или каталога в целом, а не для класса, хотя в символической записи (см. ниже) бит setuid устанавливается в триаде для пользователя, бит setgid устанавливается в триаде для группы и липкий бит установлен в триаде для остальных.

Эти дополнительные режимы также называются битом setuid , битом setgid и липким битом , поскольку каждый из них занимает только один бит.

Обозначение традиционных разрешений Unix

Символическое обозначение

Разрешения Unix представлены либо в символьной, либо в восьмеричной записи.

Наиболее распространенной формой, используемой командой ls -l, является символическое обозначение .

Первый символ дисплея lsуказывает тип файла и не связан с разрешениями. Остальные девять символов разделены на три набора, каждый из которых представляет класс разрешений в виде трех символов. Первый набор представляет класс пользователя . Второй набор представляет групповой класс. Третий набор представляет другой класс.

Каждый из трех символов представляет разрешения на чтение, запись и выполнение:

Ниже приведены некоторые примеры символьных обозначений:

В некоторых системах разрешений дополнительные символы на ls -lдисплее обозначают дополнительные функции разрешений:

Для представления атрибутов setuid , setgid и Sticky или Text модифицируется исполняемый символ ( xили ). -Хотя эти атрибуты влияют на весь файл, а не только на пользователей в одном классе, атрибут setuid изменяет исполняемый символ в триаде для пользователя, атрибут setgid изменяет исполняемый символ в триаде для группы, а атрибутsticky или text изменяет исполняемый персонаж в триаде для других. Для атрибутов setuid или setgid в первой или второй триаде, xстановятся sи -становятся S. Для атрибута «sticky» или «text» в третьей триаде — « xстановится» tи « -становится» T. Вот пример:

Числовое обозначение

Другой метод представления разрешений Unix — восьмеричная запись (с основанием 8), как показано stat -c %a. Это обозначение состоит как минимум из трех цифр. Каждая из трех крайних правых цифр представляет отдельный компонент разрешений: владельца, группу и другие. (Если присутствует четвертая цифра, самая левая (старшая) цифра соответствует трем дополнительным атрибутам: биту setuid , биту setgid и биту липкости .)

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

Эти значения никогда не создают неоднозначных комбинаций; каждая сумма представляет собой определенный набор разрешений. С технической точки зрения, это восьмеричное представление битового поля — каждый бит ссылается на отдельное разрешение, а группировка по 3 бита за раз в восьмеричном формате соответствует группировке этих разрешений по пользователю, группе и другим.

Это примеры из раздела символических обозначений, представленных в восьмеричной записи:

Частная группа пользователя

Некоторые системы отклоняются от традиционной модели пользователей и групп POSIX, создавая новую группу — «частную группу пользователей» — для каждого пользователя. Предполагая, что каждый пользователь является единственным членом своей частной группы пользователей, эта схема позволяет использовать маску 002, не позволяя другим пользователям записывать вновь созданные файлы в обычных каталогах, поскольку такие файлы назначаются частной группе создающего пользователя. Однако, если совместное использование файлов желательно, администратор может создать группу, содержащую нужных пользователей, создать каталог с возможностью записи для группы, назначенный новой группе, и, что наиболее важно, установить для каталога setgid. Установка setgid приведет к тому, что файлы, созданные в нем, будут отнесены к той же группе, что и каталог, а маска 002 (включаемая с помощью частных групп пользователей) гарантирует, что другие члены группы смогут писать в эти файлы. [10] [11]

Смотрите также

Рекомендации

  1. ^ «Разрешения для файлов и папок». Майкрософт.
  2. ^ «Документация OpenVMS» . Архивировано из оригинала 5 марта 2012 г. Проверено 6 июня 2009 г.
  3. ^ «Руководство по администрированию Oracle Solaris ZFS» (PDF) . Сентябрь 2010 г.
  4. ^ «Встроенные списки управления доступом NFSv4 в Linux». Архивировано из оригинала 12 октября 2008 г. Проверено 4 мая 2010 г.
  5. ^ "NFSv4_ACL - FreeBSD Wiki" .
  6. ^ «Руководство пользователя FreeNAS 9.1.1» (PDF) . 2013.
  7. ^ «Центр знаний IBM».
  8. ^ «Определения, 3,175 бит разрешения файла» . pubs.opengroup.org . 22 июля 2018 г. Проверено 24 июня 2023 г.
  9. ^ Хэтч, Брай. «Замешательство в разрешениях файлов Linux, часть 2», «Hacking Linux Expose», 24 апреля 2003 г., по состоянию на 6 июля 2011 г.
  10. ^ Эпштейн, Брайан. «Как и почему создаются частные группы пользователей в Unix». Security.ias.edu . Институт перспективных исследований сетевой безопасности . Проверено 5 августа 2014 г.
  11. ^ «Руководство системного администратора Red Hat Enterprise Linux 7, 4.3.4 Создание групповых каталогов» . Портал для клиентов Red Hat . Красная Шапка.

Внешние ссылки