Access Control List (с англ. список управления доступом) — специальный список, который определяет, кто или что может получать доступ к объекту (программе, процессу или файлу), и какие именно операции разрешено или запрещено выполнять субъекту (пользователю, группе пользователей). ACL (Access Control List) – это ещё и механизм управления доступом в операционных системах, который позволяет более гибко настраивать права доступа к файлам и каталогам.
ACL поддерживается в следующих файловых системах:
1. NTFS (New Technology File System) – используется в операционных системах Windows.
2. ext3, ext4 – используются в операционных системах Linux.
3. ZFS (Zettabyte File System) – файловая система, поддерживаемая в некоторых операционных системах, например, FreeBSD и Illumos.
4. XFS – файловая система, используемая в некоторых дистрибутивах Linux.
5. ReiserFS – стремительно устаревающая файловая система для Linux.
ACL позволяет устанавливать дополнительные права доступа к файлам и каталогам, такие как чтение, запись, выполнение, изменение владельца и т. д. Это дает пользователям более широкие возможности для управления доступом к файловой системе.
Списки контроля доступа являются основой систем с избирательным управлением доступа (DAC).
Впервые введены в ОС Multics в 1965 году, с тех пор получили широкое распространение и множественные реализации практически во всех типах программ с распределяемым доступом.
В файловых системах для реализации 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 представляют список правил, определяющих порты служб или имена доменов, доступных на узле или другом устройстве третьего уровня OSI, каждый со списком узлов и/или сетей, которым разрешен доступ к сервису. Сетевые ACL может поддерживать как сервер, так и маршрутизатор или управляемый коммутатор, и они могут управлять как входящим, так и исходящим трафиком, работая в качестве межсетевого экрана (NAT).