Access Control List (ACL) - pääsynhallintaluettelo, joka määrittää, kuka tai mikä voi käyttää objektia (ohjelma, prosessi tai tiedosto) ja mitä toimintoja kohteen (käyttäjä, käyttäjäryhmä) sallii tai ei saa suorittaa.
Kulunvalvontaluettelot ovat selektiivisten kulunvalvontajärjestelmien (DAC) selkäranka .
Esiteltiin ensimmäisen kerran OS Multicsissa vuonna 1965, minkä jälkeen useat toteutukset ovat yleistyneet lähes kaikentyyppisissä ohjelmissa, joissa on hajautettu pääsy.
Tyypillisissä ACL-luetteloissa jokainen merkintä määrittelee aiheen ja toiminnon: esimerkiksi (Vasya, delete) -merkintä tiedoston XYZ ACL:ssä sallii käyttäjän Vasya poistaa tiedoston XYZ .
Järjestelmässä, jossa on ACL-pohjainen suojausmalli, kun kohde pyytää toimintoa objektille, järjestelmä tarkistaa ensin luettelon kyseiselle subjektille sallituista toiminnoista ja vasta sitten myöntää (tai ei myönnä) pääsyn pyydettyyn toimintoon.
ACL-luetteloita käyttävät järjestelmät voidaan jakaa kahteen luokkaan: harkinnanvaraiset ( englanniksi discretionary ) ja pakolliset ( englanniksi pakollinen ). Järjestelmän voidaan sanoa rakennetun harkinnanvaraiseen kulunvalvontaan , jos kohteen luojalla tai omistajalla on täysi määräysvalta objektiin pääsyyn, mukaan lukien luettelo henkilöistä, joilla on oikeus muuttaa kohteen käyttöoikeuksia. Järjestelmällä voidaan sanoa olevan pakollinen pääsynhallinta , jos käyttäjän määrittämät ACL-luettelot ohitetaan järjestelmärajoituksilla.
Kulunvalvontaluetteloiden keskitetyssä tallennuksessa voidaan puhua pääsymatriisista , jossa objektit ja subjektit sijoitetaan akseleita pitkin ja vastaavat oikeudet ovat soluissa. Kuitenkin monissa järjestelmissä objektien pääsynhallintaluettelot tallennetaan erikseen jokaiselle objektille, usein suoraan itse objektin kanssa.
Perinteiset ACL-järjestelmät jakavat oikeudet yksittäisille käyttäjille, ja ajan ja järjestelmän käyttäjien määrän myötä käyttöoikeusluettelot voivat tulla hankalia. Ratkaisu tähän ongelmaan on antaa oikeudet käyttäjäryhmille, ei yksittäin. Toinen ratkaisu tähän ongelmaan on " roolipohjainen pääsynhallinta ", jossa useiden objektien oikeuksien toiminnalliset osajoukot yhdistetään "rooleiksi" ja nämä roolit jaetaan käyttäjille. Ensimmäisessä versiossa käyttäjäryhmiä kutsutaan kuitenkin usein myös rooleiksi .
Tiedostojärjestelmät käyttävät prosessin käyttäjätunnusta ( UID POSIX - termeissä ) ACL:ien toteuttamiseen .
Käyttöoikeusluettelo on tietorakenne (yleensä taulukko), joka sisältää merkintöjä, jotka määrittelevät yksittäisen käyttäjän tai ryhmän oikeudet erityisiin järjestelmäobjekteihin, kuten ohjelmiin , prosesseihin tai tiedostoihin. Nämä merkinnät tunnetaan myös nimellä ACE ( Access Control Entries ) Microsoft Windows - ja OpenVMS - käyttöjärjestelmissä . Linuxissa ja Mac OS X :ssä useimmissa tiedostojärjestelmissä on laajennetut attribuutit, jotka toimivat ACL-luetteloina. Jokainen järjestelmän objekti sisältää osoittimen omaan ACL-luetteloonsa. Oikeudet (tai valtuudet) määrittävät erityisiä käyttöoikeuksia, joiden avulla käyttäjä voi lukea ( eng. read ), kirjoittaa ( eng. write ) tai suorittaa ( eng. execute ) objektista. Joissakin toteutuksissa ACE:t (Access Control Entries) voivat määrittää käyttäjän tai ryhmän oikeuden muuttaa objektin ACL-luetteloa.
ACL-konseptit vaihtelevat käyttöjärjestelmien välillä olemassa olevasta POSIX-standardista huolimatta. (POSIX-turvaluonnokset, .1e ja .2c, poistettiin, kun kävi selväksi, että ne kattoivat liikaa eikä työtä voitu saattaa loppuun, mutta tarkasti määritellyt ACL-luettelot määrittävät osat otettiin laajalti käyttöön ja tunnetaan nimellä "POSIX ACL ".)
Verkoissa ACL - luettelot ovat luettelo säännöistä, jotka määrittelevät isännässä tai muussa OSI-kerroksen 3 laitteessa käytettävissä olevat palveluportit tai toimialuenimet , joista jokaisessa on luettelo isännistä ja/tai verkoista, joilla on oikeus käyttää palvelua. Verkko ACL:t voidaan määrittää sekä tavalliselle palvelimelle että reitittimelle , ja ne voivat hallita sekä saapuvaa että lähtevää liikennettä palomuurina .