ACL-rettigheter

ACL-er(i denne konteksten) er en utvidelse til vanlige UNIX-filrettigheter. Selv om UNIX-rettigheter er kraftige, er det noen problemer de ikke løser så bra.

Se for deg at du har en mappe med navn foo. Du vil at gruppen «salg» skal kunne skrive og lese filer i denne mappen. I tillegg vil du at gruppen «konsulenter» skal kunne lese filene, men brukere som ikke er med i noen av disse gruppene ikke skal kunne lese filene i mappen. Dette hadde ikke gått med vanlige UNIX-rettigheter (i hvert fall ikke på en enkel måte).

ACL-er løser dette problemet ved å gi mulighet for å spesifisere rettigheter for flere grupper uavhengig av hverandre. Du kan altså gi gruppen «salg» lese- og skrivetilang, og gruppen «konsulenter» kun lesetilgang.

Under ser du et eksempel hvor filen eid av carlaar:itk også kan leses av uka-httpd, mdb-httpd og erlendps. mdb-httpd kan i tillegg skrive til filen. Dette er til tross for at filen har ikke har noen rettigheter for others.

> getfacl acl.test
# file: acl.test
# owner: carlaar
# group: itk
user::rw-
user:uka-httpd:r-
user:mdb-httpd:rw-
user:erlendps:r--
group:r--
mask::rw-
other::---

Du kan sette og se ACL-er med kommandoene setfacl og getfacl.

En annen fordel med ACL-er er at du enkelt kan sette standardrettigheter, altså at alle filene som lages i en mappe får spesifikke rettigheter.

Utfordringer med ACL-er

ACL-er er kraftigere en vanlige UNIX-rettigheter, men det gjør også at de er mer komplekse, og vanskeligere å fortså, folk flest er også mer kjent med UNIX-rettigheter. Derfor bør man bruke UNIX-rettigheter der det holder. Det er og lurt å dokumentere hvor du bruker ACL-er.

I tillegg er det vanskelig å se om en fil har ACL-er på. ls legger med en liten pluss etter rettighetene hvis den har ACL-er slik(uthevet i rød):

$ls -ld /home/cassarossa/itk/felles/git/theodorc
drwxrws–x+ 3 gitea itk 4096 Sep 23 01:12 /home/cassarossa/itk/felles/git/theodorc

Oppsett av ACL-er på dev-instanser

Her er et forslag til mulig oppsett av ACL-er på dev-instanser:

SSH til cassarossa (det kan også gjøres på cirkus ved bruk av nfs4_acl, men da blir syntaksen helt annerledes):

ssh bruker@cassarossa

Først må du endre eierskap til alle filene så de er eid av deg og din gruppe (merk at -R betyr rekursivt)

chown -R bruker:gruppe mappe

Så må du gi lesetilgang til den brukeren du vil skal kunne lese filene (her gjør stor X at alle mapper får executable)

setfacl -R -m u:uka-httpd:rX mappe

Sett deretter dette som standardrettigheter:

setfacl -d -R -m u:uka-httpd:rX mappe

Så må du ta vekk alle rettigheter fra other:

setfacl -R -m o::0 mappe

Sett også dette som default:

setfacl -R -d -m o::0 mappe

Noen sider trenger også skriverettigheter til visse mapper, eksempelvis static-og uploads-mappene i Django-prosjekter og templates-cachen i Billig, dette kan du sette slik(Her skal du kun ta en mappe av gangen):

setfacl -d -R -m u:uka-httpd:rwX (static|uploads|cache)

setfacl -R -m u:uka-httpd:rwX (static|uploads|cache)

For sider som bruker .htaccess-filer må du gi lesetilgang til www-data:

setfacl -R -m u:www-data:rX mappe

setfacl -R -d -m u:www-data:rX mappe

ACLer over NFSv4

Siden vi kjører NFSv4, støttes ACLer også over NFS. For å sette og bruke kommandoer over NFS kan du bruke kommandoene nfs4_setfacl og nfs4_getfacl, men siden vi kjører NFSv4.2, skal også setfacl og getfacl fungere.

Sider som skal bruke ACL-er

Sider som bruker ACL-er

Lenker: Start, avvikuka hvordan utvikle, innsida, hvordan utvikle, medlemsdb2, hvordan utvikle, ufs, hvordan utvikle, utleggsys

Epost: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: 2022-10-15 15:21 | Revisjon: 16 (historie, blame) | Totalt: 1905 kB | Rediger