Lista de control al accesului (ACL) oferă un mecanism suplimentar de permisiune mai flexibil pentru sistemele de fișiere. Acesta este conceput pentru a ajuta cu permisiuni de fișiere UNIX. ACL vă permite să acordați permisiuni pentru orice utilizator sau grup oricărei resurse de disc.
instalare
pachetul acl este o dependență de systemd, ar trebui să fie deja instalat.
Enable ACL
pentru a activa ACL, sistemul de fișiere trebuie montat cu opțiunea acl
. Puteți utiliza fstab pentru a-l face permanent pe sistemul dvs.,
există posibilitatea ca opțiunea acl
să fie deja activă ca opțiune implicită de montare pe sistemul de fișiere. Btrfs face și Ext2 / 3 / 4 sisteme de fișiere face prea. Utilizați următoarea comandă pentru a verifica ext* partiții formatate pentru opțiunea:
# tune2fs -l /dev/sdXY | grep "Default opțiuni de montare pe:"
Default opțiuni de montare: user_xattr acl
de Asemenea, verificați că implicit opțiunea de montare nu este încălcată, în acest caz, veți vedea noacl
în /proc/mounts
în linia corespunzătoare.,
puteți seta default opțiuni de montare a unui sistem de fișiere folosind tune2fs -o option partition
comandă, de exemplu:
# tune2fs -o acl /dev/sdXY
Utilizarea default opțiuni de montare în loc de o intrare în /etc/fstab
este foarte util pentru drive-uri externe, o astfel de partiție va fi montat cu acl
opțiune, de asemenea, pe alte mașini Linux. Nu este nevoie să editați /etc/fstab
pe fiecare mașină.
-
acl
este specificat ca opțiune de montare implicită la crearea unui sistem de fișiere ext2/3/4., Acest lucru este configurat în/etc/mke2fs.conf
. - opțiunile de montare implicite nu sunt listate în
/proc/mounts
.
utilizare
Set ACL
ACL poate fi modificat folosind comanda setfacl.
--test
.,
pentru A seta permisiunile pentru alții:
# setfacl -m "other:permissions" <file/dir>
Pentru a permite tuturor nou-create fișiere sau directoare a moșteni intrări de la directorul părinte (acest lucru nu va afecta fișierele care vor fi copiate în directorul):
# setfacl -dm "entry" <dir>
Pentru a elimina o intrare specifică:
# setfacl -x "entry" <file/dir>
Pentru a elimina intrările implicite:
# setfacl -k <file/dir>
Pentru a elimina toate intrările (intrări de proprietar, grup și alții sunt reținute):
# setfacl -b <file/dir>
De fapt precizie din acest articol sau secțiune este în litigiu.,
--mask
opțiune (care a fost luată din setfacl(1)) a fost determinată ca fiind incorect, dar noua notă nu pare corect. Consultați pagina de discuții pentru detalii. (Discuta în Discuție:Listele de Control al Accesului#ACL masca de intrare)--mask
intrare a fost dat în mod explicit. Intrarea mască indică permisiunile maxime permise pentru utilizatori (alții decât proprietarul) și pentru grupuri., Cu excepția cazului în care este setat în mod explicit, acest lucru se va potrivi cu permisiunile grupului implicit. Pentru a clarifica ce înseamnă acest lucru, să presupunem că grupul care deține un director are permisiuni r-X. Dacă adăugați un utilizator sau un grup ACL cu permisiuni rwx, permisiunile efective ale acestui utilizator sau grup vor fi r-x. motivul pentru aceasta este astfel încât să nu existe surprize atunci când un fișier dintr-un sistem care nu acceptă ACL-uri este pus la dispoziție pe un sistem care face..-R
.,c
# fișier: abc# proprietar: cineva# grup: someoneuser::rw-utilizator:johnny:r-xgroup::r--masca::r-xother::r--
Elimina toate ACL intrări:
# setfacl -b abc
Verificați permisiunile:
# getfacl abc
# fișier: abc# proprietar: cineva# grup: someoneuser::rw-grup::r--altele::r--
Ieșire de comanda ls
Veți observa că există un ACL pentru un anumit fișier pentru a va expune un +
(semnul plus) după Unix permisiuni în producția de ls -l
.,
$ ls-l /dev/audio
crw-rw----+ 1 rădăcină audio 14, 4 nov. 9 12:49 /dev/audio
$ getfacl /dev/audio
Acordarea de execuție permisiunile pentru fișierele private la un server de web
următoarea tehnică descrie modul în care un proces ca un server web poate fi acordat accesul la fișierele aflate în directorul home al utilizatorului, fără a compromite securitatea, oferindu-toată lumea acces.,
În cele ce urmează vom presupune că serverul web ruleaza ca user http
și să acorde acces la geoffrey
‘s home directory /home/geoffrey
.
primul pas este acordarea de execuție permisiunile pentru utilizator http
:
# setfacl -m "u:http:--x" /home/geoffrey
Deoarece utilizatorul http
este acum capabil de a accesa fișierele în /home/geoffrey
, alții nu mai au nevoie de acces:
# chmod o-rx /home/geoffrey
Utilizare getfacl
pentru a verifica modificări:
$ getfacl /home/geoffrey
Ca mai sus de ieșire arată, other
‘nu mai au nici permisiuni, dar utilizatorul http
este încă în măsură de a accesa fișierele, astfel security ar putea fi considerat a crescut.,
Vezi și
- getfacl(1)
- setfacl(1)
- POSIX Listele de Control al Accesului pe Linux
- Cum să setați implicit, permisiunile de fișiere pentru toate folderele/fișierele într-un director?
Leave a Reply