Despre Linux

  • Facebook
  • Twitter
  • LinkedIn
  • Acasă
  • Linux
    • Comenzi Linux
    • Tutoriale
  • Kubernetes
  • RHCSA
    • Exerciții RHCSA
    • SELinux
    • Permisiuni
  • General
    • Open source
  • Contact

Permisiuni speciale: folosirea Access ACL pe fișiere

13 octombrie 2018 By Bobses Lasă un comentariu

Spuneam în articolul trecut că există două tipuri de POSIX ACLs: access ACLs și default ACLs. Access ACL poate fi folosit pentru a acorda permisiuni atât fișierelor, cât și directoarelor.

Să facem un fișier și să-i vizualizăm informațiile despre ACL. Vom crea acest fișier ca superutilizator root în directorul /tmp:

# touch fisiertest.txt
# ll fisiertest.txt 
-rw-r--r--. 1 root root 0 Oct 13 18:02 fisiertest.txt

Acum să-i vedem informațiile ACL:

# getfacl fisiertest.txt # file: fisiertest.txt # owner: root # group: root user::rw- group::r-- other::r--

După cum se observă, comanda getfacl ne arată informații despre permisiunile standard ale acestui fișier: rwx/ugo. ACL moștenește permisiunile standard ale fișierelor înainte de a construi altceva nou deasupra lor. Acum, să spunem că vrem ca și  utilizatorul bobses să aibă permisiuni de scriere asupra acestui fișier (doar lui bobses și nimănui altcuiva în afară de proprietar). În acest moment, userul bobses nu poate să scrie în fișier:

[bobses@testserver ~]$ echo 'Salutare!' > /tmp/fisiertest.txt
-bash: /root/fisiertest.txt: Permission denied

Pentru a permite utilizatorului bobses să scrie în acest fișier deținut de utilizatorul root, abordarea clasică este crearea unui nou grup, apoi adăugarea userilor bobses și root în acest nou grup, apoi, cu ajutorul comenzii chown, schimbăm grupul default al acestui fișier cu noul grup. Acest mod de procedare este destul de plictisitor și ia mai mult timp decât dacă am folosi comanda setfacl pentru a suprascrie permisiunile fișierului fisiertest.txt și să-i acordăm userului bobses dreptul de scriere:

# setfacl -m user:bobses:rw- /tmp/fisiertest.txt

Am folosit opțiunea -m (modificare) pentru a acorda utilizatorului bobses privilegii de citire și scriere (rw-) în fișierul fisiertest.txt. Acum, dacă folosim comanda ls cu opțiunea -l, observăm semnul + la sfârșitul șirului de caractere care arată permisiunile (acesta este un indicator care spune că a fost folosită comanda setfacl pentru a aplica permisiuni speciale):

# ll fisiertest.txt 
-rw-rw-r--+ 1 root root 0 Oct 13 18:17 fisiertest.txt

Acum, să vedem care sunt aceste permisiuni speciale și cui sunt atribuite; vom utiliza, din nou, comanda getfacl și observăm că o nouă intrare a fost adăugată:

# getfacl fisiertest.txt # file: fisiertest.txt # owner: root # group: root user::rw- user:bobses:rw- group::r-- mask::rw- other::r--

În acest moment, datorită noilor permisiuni speciale acordate, utilizatorul bobses are drepturi de scriere în acest fișier deținut de superutilizatorul root:

$ echo 'Salutare!' > /tmp/fisiertest.txt
[bobses@testserver ~]$ cat /tmp/fisiertest.txt 
Salutare!

Ștergerea permisiunilor ACL

Pentru a șterge permisiunile special ACL, vom folosi tot comanda setfacl; de exemplu, pentru a șterge permisiunile speciale acordate utilizatorului bobses în exemplul de mai sus vom rula comanda setfacl cu opțiunea -x:

# setfacl -x u:bobses /tmp/fisiertest.txt

Dacă, în acest moment, rulăm comanda ls -l, observăm că, la finalul șirului de permisiuni, încă există caracterul +; la rularea comenzii getfacl, vom observa că a rămas și masca asociată fișierului (vom vorbi despre ea în alt articol):

# ll /tmp/fisiertest.txt -rw-r--r--+ 1 root root 10 Oct 13 18:37 /tmp/fisiertest.txt

Pentru a șterge toate permisiunile speciale ACL vom folosi opțiunea --remove-all a comenzii setfacl:

# setfacl --remove-all /tmp/fisiertest.txt

După rularea acestei comenzi cu opțiunea --remove-all, vom observa că a dispărut și semnul + de la sfârșitul listei de permisiuni:

Comanda getfacl are următoarea ieșire (a dispărut și semnul +, dar și masca):

# getfacl /tmp/fisiertest.txt 
# file: tmp/fisiertest.txt
# owner: root
# group: root
user::rw-
group::r--
other::r--

Folosirea comenzii setfacl pentru a stabili permisiuni standard

Pe lângă stabilirea permisiunilor special ACL, comanda setfacl poate fi folosită și pentru a seta permisiuni standard ugo+rwx în locul comenzii chown. Aceasta se realizează prin nespecificarea unui nume de utilizator sau de grup.

De exemplu, comanda de mai jos:

# setfacl -m user::rwx /tmp/fisiertest.txt

este echivalentă cu:

# chmod u=rwx /tmp/fisiertest.txt

Copierea permisiunilor speciale ACL de la un fișier la altul

Un lucru util este copierea permisiunilor speciale ACL ale unui fișier la alt fișier: vom citi permisiunile ACL ale unui fișier cu comanda getfacl și le vom aplica altui fișier cu comanda setfacl:

# getfacl fisier1.txt | setfacl --set-file=- fisier2.txt

Caracterul - al opțiunii --set-file se referă la faptul că este citită lista de fișiere de la intrarea standard.

În acest caz, vechile permisiuni speciale ACL (dacă există) vor fi înlocuite cu cele noi.

Mult mai multe opțiuni ale acestor după comenzi pot fi aflate citind manualul lor:

man getfacl

man setfacl

Partajează asta:

  • Dă clic pentru a partaja pe Facebook(Se deschide într-o fereastră nouă)
  • Dă clic pentru a partaja pe LinkedIn(Se deschide într-o fereastră nouă)
  • Click to share on Twitter(Se deschide într-o fereastră nouă)

Similare

Din categoria: Permisiuni Etichete: ACL, permisiuni, RHCSA

Lasă un răspunsAnulează răspunsul

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.

Copyright © 2025 · Bobses

Administrează consimțămintele pentru cookie-uri
Pentru a oferi cea mai bună experiență, folosim tehnologii, cum ar fi cookie-uri, pentru a stoca și/sau accesa informațiile despre dispozitive. Consimțământul pentru aceste tehnologii ne permite să procesăm date, cum ar fi comportamentul de navigare sau ID-uri unice pe acest site. Dacă nu îți dai consimțământul sau îți retragi consimțământul dat poate avea afecte negative asupra unor anumite funcționalități și funcții.
Funcționale Mereu activ
Stocarea tehnică sau accesul sunt strict necesare în scopul legitim de a permite utilizarea unui anumit serviciu cerut în mod explicit de către un abonat sau un utilizator sau în scopul exclusiv de a executa transmiterea unei comunicări printr-o rețea de comunicații electronice.
Preferințe
Stocarea tehnică sau accesul este necesară în scop legitim pentru stocarea preferințelor care nu sunt cerute de abonat sau utilizator.
Statistici
Stocarea tehnică sau accesul care sunt utilizate exclusiv în scopuri statistice. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
Stocarea tehnică sau accesul sunt necesare pentru a crea profiluri de utilizator pentru a trimite publicitate sau pentru a urmări utilizatorul pe un site web sau pe mai multe site-uri web în scopuri de marketing similare.
Administrează opțiunile Administrează serviciile Administrează vânzătorii {vendor_count} Citește mai multe despre aceste scopuri
Vizualizează preferințele
{title} {title} {title}