Access control list
Access Control List або ACL (укр. список контролю доступу) — список прав доступу до об’єкта, який визначає, хто або що може отримувати доступ до нього, і які саме операції дозволено або заборонено цьому суб'єкту проводити над об'єктом.
Списки контролю доступу є основою систем з вибірковим управлінням доступом. У типових ACL кожен запис визначає суб'єкт впливу і операцію: наприклад, запис (Taras, delete) в ACL для файлу XYZ дає можливість користувачеві Taras видалити файл XYZ.
В системі з моделлю безпеки, заснованої на ACL, коли суб'єкт запитує виконання операції над об'єктом, система спочатку перевіряє список дозволених для цього суб'єкта операцій, і тільки після цього дає (або не дає) доступ до запитуваної дії.
При централізованому зберіганні списків контролю доступу можна говорити про матрицю доступу[1], в якій по осях розміщені об'єкти і суб'єкти, а в клітинках — відповідні права. Однак у великій кількості систем списки контролю доступу до об'єктів зберігаються окремо для кожного об'єкта, найчастіше безпосередньо з самим об'єктом.
Традиційні ACL системи призначають права індивідуальним користувачам, і з часом і зростанням числа користувачів в системі списки доступу можуть стати громіздкими. Варіантом вирішення цієї проблеми є призначення прав групам користувачів, а не персонально. Іншим варіантом вирішення цієї проблеми є керування доступом на основі ролей, де функціональні підмножини прав до ряду об'єктів об'єднуються в «ролі», і ці ролі призначаються користувачам. Однак, у першому варіанті групи користувачів також часто називаються ролями.
Файлові системи з ACL
У файлових системах для реалізації ACL використовується ідентифікатор користувача процесу (UID в термінах POSIX).
Список доступу являє собою структуру даних (зазвичай таблицю), що містить записи, які визначають права індивідуального користувача або групи на спеціальні системні об'єкти, такі як програми, процеси або файли. Ці записи також відомі як ACE (англ. Access Control Entries) в операційних системах Microsoft Windows і OpenVMS. В операційній системі Linux і Mac OS X більшість файлових систем мають розширені атрибути, що виконують роль ACL. Кожен об'єкт в системі містить покажчик на свій ACL. Привілеї (або повноваження) визначають спеціальні права доступу, що дозволяють користувачеві читати з (англ. read), писати в (англ. write), або виконувати (англ. execute) об'єкт. У деяких реалізаціях ACE можуть визначати право користувача або групи на зміну ACL об'єкта.
Концепції ACL в різних операційних системах різняться, незважаючи на існуючий «стандарт» POSIX. (Проекти безпеки POSIX, .1 e і .2 c, були відкликані, коли стало ясно що вони зачіпають занадто велику область і робота не може бути завершена, але добре опрацьовані частини, що визначають ACL, були широко реалізовані і відомі як «POSIX ACLs».)
Мережеві ACL
У мережах ACL представляють список правил, що визначають порти служб або імена доменів, доступних на вузлі або іншому пристрої третього рівня OSI, кожен зі списком вузлів та/або мереж, яким дозволений доступ до сервісу. Мережеві ACL можуть бути налаштовані як на звичайному сервері, так і на маршрутизаторі і можуть керувати як вхідним, так і вихідним трафіком, як брандмауер.
Windows
Кожен дескриптор безпеки містить два види ACL — системні (system, SACL) та вибіркові (Discretionary, DACL).[2]