ACL
Access Control List (ACL) — список управления доступом, который определяет, кто или что может получать доступ к объекту (программе, процессу или файлу), и какие именно операции разрешено или запрещено выполнять субъекту (пользователю, группе пользователей).
Списки контроля доступа являются основой систем с избирательным управлением доступа (DAC).
Впервые введены в ОС Multics в 1965 году, с тех пор получили широкое распространение и множественные реализации практически во всех типах программ с распределяемым доступом.
ВведениеПравить
В типичных ACL каждая запись определяет субъект воздействия и операцию: например, запись (Vasya, delete) в ACL для файла XYZ даёт возможность пользователю Vasya удалить файл XYZ.
В системе с моделью безопасности, основанной на ACL, когда субъект запрашивает выполнение операции над объектом, система сначала проверяет список разрешённых для этого субъекта операций, и только после этого даёт (или не даёт) доступ к запрошенному действию.
Использующие ACL системы могут быть разделены на две категории: дискреционные (англ. discretionary) и мандатные (англ. mandatory). Систему можно назвать построенной на дискреционном контроле доступа, если создатель или владелец объекта может полностью управлять доступом к объекту, включая и список тех, кому разрешено изменять права доступа к объекту. Систему можно назвать обладающей мандатным контролем доступа, если заданные пользователем ACL перекрываются системными ограничениями.
При централизованном хранении списков контроля доступа можно говорить о матрице доступа, в которой по осям размещены объекты и субъекты, а в ячейках — соответствующие права. Однако в большом количестве систем списки контроля доступа к объектам хранятся отдельно для каждого объекта, зачастую — непосредственно с самим объектом.
Традиционные ACL системы назначают права индивидуальным пользователям, и со временем и ростом числа пользователей в системе списки доступа могут стать громоздкими. Вариантом решения этой проблемы является назначение прав группам пользователей, а не персонально. Другим вариантом решения этой проблемы является «Управление доступом на основе ролей», где функциональные подмножества прав к ряду объектов объединяются в «роли», и эти роли назначаются пользователям. Однако, в первом варианте группы пользователей также часто называются ролями.
Файловые системы с ACLПравить
В файловых системах для реализации ACL используется идентификатор пользователя процесса (UID в терминах POSIX).
Список доступа представляет собой структуру данных (обычно таблицу), содержащую записи, определяющие права индивидуального пользователя или группы на специальные системные объекты, такие как программы, процессы или файлы. Эти записи также известны как ACE (англ. Access Control Entries) в операционных системах Microsoft Windows и OpenVMS. В операционной системе Linux и Mac OS X большинство файловых систем имеет расширенные атрибуты, выполняющие роль ACL. Каждый объект в системе содержит указатель на свой ACL. Привилегии (или полномочия) определяют специальные права доступа, разрешающие пользователю читать из (англ. read), писать в (англ. write) или исполнять (англ. execute) объект. В некоторых реализациях ACE (Access Control Entries) могут определять право пользователя или группы на изменение ACL объекта.
Концепции ACL в разных операционных системах различаются, несмотря на существующий «стандарт» POSIX. (Проекты безопасности POSIX, .1e и .2c, были отозваны, когда стало ясно, что они затрагивают слишком обширную область и работа не может быть завершена, но хорошо проработанные части, определяющие ACL, были широко реализованы и известны как «POSIX ACLs».)
Сетевые ACLПравить
В сетях ACL представляют список правил, определяющих порты служб или имена доменов, доступных на узле или другом устройстве третьего уровня OSI, каждый со списком узлов и/или сетей, которым разрешен доступ к сервису. Сетевые ACL могут быть настроены как на обычном сервере, так и на маршрутизаторе и могут управлять как входящим, так и исходящим трафиком, в качестве межсетевого экрана.
См. такжеПравить
СсылкиПравить
- RSBAC Access Control Lists on Linux Архивная копия от 5 июня 2007 на Wayback Machine
- Generic Access Control Lists for PHP/Perl Архивная копия от 10 мая 2013 на Wayback Machine
- C2-Wiki Discussion and Relational Implementation Архивная копия от 3 июля 2007 на Wayback Machine
- Information Security Definitions: ACL Архивная копия от 26 апреля 2007 на Wayback Machine
- Easy and detailed ACL howto for linux
- Security Briefs: Access Control List Editing in .NET
- MS Windows .NET ACL Technology Архивная копия от 31 мая 2007 на Wayback Machine
- What could have been IEEE 1003.1e/2c
- Apple Mac OS X Server version 10.4+ File Services Administration Manual (see pages 16-26)
- ACLbit — ACL Backup and Inspect Tool for Linux Архивная копия от 6 мая 2008 на Wayback Machine
- Настройка и описание ACL на маршрутизаторе Cisco