Brug af setfacl og getfacl

I det følgende ser vi hvorledes man deler en mappestruktur med en læsegruppe, i eksemplet bestående af rav, alice og bob.

Traditionelt i UNIX filsystemer har enhver fil og mappe en ejer, et gruppenavn og en mode (tilstandsmaske), som angiver, hvilke rettigheder hhv. ejeren, gruppen og andre har til filen. Se også manualsiden chmod(2) for en forklaring af rettighedsmasken.

POSIX access control lists (ACL) er en udvidelse af dette system af rettigheder, så man kan angive læse- og skriverettigheder pr. bruger.

For at det har den ønskede effekt, skal man først sætte tilstandsmasken til 0700, så det kun er ejeren, der som udgangspunkt har adgang.

rav@llama08:~$ mkdir repo
rav@llama08:~$ chmod 0700 repo
rav@llama08:~$ git init --bare repo
rav@llama08:~$ setfacl -R -m alice:rwX repo
rav@llama08:~$ setfacl -d -R -m alice:rwX repo
rav@llama08:~$ setfacl -R -m bob:rwX repo
rav@llama08:~$ setfacl -d -R -m bob:rwX repo
rav@llama08:~$ setfacl -d -R -m rav:rwX repo
rav@llama08:~$ getfacl repo
# file: repo
# owner: rav
# group: users
user::rwx
user:alice:rwx
user:bob:rwx
group::---
mask::rwx
other::---
default:user::rwx
default:user:alice:rwx
default:user:bob:rwx
default:user:rav:rwx
default:group::---
default:mask::rwx
default:other::---

setfacl tager et antal forskellige parametre. De vigtigste er -R (--recursive), som udfører ændringen rekursivt, og -d (--default) som sætter default-rettighederne, dvs. rettigheder for nye filer oprettet i mappen.

-m acl tilføjer den givne rettighed på destinationen. I sin simpleste opbygning er denne brugernavn:adgang, hvor adgang inkluderer r (læse), w (skrive), x (eksekvere) og/eller X (indgang i mapper).

Indhold