Despre Linux

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

Exerciții RHCSA - Access Control Lists (ACLs)

29 aprilie 2019 By Bobses Lasă un comentariu

Capitolul despre Access Control Lists (ACLs) a fost aprofundat în alte articole. Reamintesc doar că Access Control Lists (ACLs) realizează un control granular al permisiunilor mult mai fin, spre deosebire de permisiunile normale rwx/ugo. Acum, vom face doar câteva exerciții referitoare la aplicarea extended ACL pe fișiere sau directoare, exerciții care, într-un fel sau altul, pot să apară într-un examen real RHCSA.

1. Creați un user numit Tux cu parola password. Deschideți un al doilea terminal (sau un alt tab) în care vă conectați ca userul Tux (în primul terminal sunteți conectați ca root). Userul Tux va fi folosit pentru a testa permisiunile.

# useradd tux; echo "password" | passwd --stdin tux

2. Navigați în directorul /tmp și creați 2 noi directoare numite dir1 și dir2, precum și 2 noi fișiere numite file1 și file2.

# cd /tmp
# mkdir {dir1,dir2}; touch {file1,file2}

3. Verificați  dacă unul dintre fișierele nou create are extended ACL asociat.

# ls -l
total 0
drwxr-xr-x. 2 root root 6 Apr 29 02:41 dir1
drwxr-xr-x. 2 root root 6 Apr 29 02:41 dir2
-rw-r--r--. 1 root root 0 Apr 29 02:41 file1
-rw-r--r--. 1 root root 0 Apr 29 02:41 file2

Reamintesc că un fișier sau director are extended ACL asociat doar dacă are semnul "+" la sfârșitul listei de permisiuni. În acest caz, niciunul din fișierele și directoarele nou create nu are extended ACL asociat, fiind în proprietatea userului root.

4. Setați ACL pentru userul tux astfel încât acesta să poată citi și scrie fișierul file1.

# setfacl -m u:tux:rw- file1

Se face verificarea:

# getfacl file1
# file: file1
# owner: root
# group: root
user::rw-
user:tux:rw-
group::r--
mask::rw-
other::r--

5. Setați masca ACL pentru fișierul file1 astfel încât acesta să poată fi doar citit (read only), apoi, în al doilea terminal/tab (cel în care sunteți conectat cu userul tux), încercați să executați comanda echo "test" > /tmp/file1. Explicați de ce nu funcționează.

# setfacl -m m::r-- file1

Se face verificarea:

# getfacl file1
# file: file1
# owner: root
# group: root
user::rw-
user:tux:rw- #effective:r--
group::r--
mask::r--
other::r--

În terminalul userului tux:

$ echo "test "> /tmp/file1
-bash: /tmp/file1: Permission denied

Userul tux nu poate scrie fișierul file1 chiar dacă are setat ACL cu rw deoarece este limitat de valoarea măștii ACL (read only) care setează permisiunea maximă la read și maschează permisiunea write. Din acest motiv, în dreptul userul tux, comanda getfacl arată că permisiunea efectivă este doar read, în loc de rw, cât este stabilit.

6. Setați permisiunile default ACL pe directorul dir1 astfel încât userul tux să aibă drepturi de citire, scriere și execuție DOAR pentru directoare și subdirectoare (reamintesc faptul că default ACL este util pe directoare DOAR pentru a permite noilor fișiere sau directoare care vor fi create să moștenească permisiunile ACL ale directorului părinte).

# setfacl -m d:u:tux:rwX dir1

Verificare:

# getfacl dir1
# file: dir1
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:tux:rwx
default:group::r-x
default:mask::rwx
default:other::r-x

7. Folosind comanda setfacl, schimbați permisiunile "other" la zero pe file1:

# setfacl -m o::--- file1

Verificăm:

# ls -l
total 4
drwxr-xr-x+ 2 root root 6 Apr 29 02:41 dir1
drwxr-xr-x. 2 root root 6 Apr 29 02:41 dir2
-rw-rw----+ 1 root root 1 Apr 29 03:01 file1
-rw-r--r--. 1 root root 0 Apr 29 02:41 file2

8. Copiați setările ACL de la fișierul file1 la fișierul file2.

Listăm valorile actuale ale permisiunilor (se observă că file2 nu are asociat extended ACL):

# ll
total 4
drwxr-xr-x+ 2 root root 6 Apr 29 02:41 dir1
drwxr-xr-x. 2 root root 6 Apr 29 02:41 dir2
-rw-rw----+ 1 root root 1 Apr 29 03:01 file1
-rw-r--r--. 1 root root 0 Apr 29 02:41 file2

Copiem asocierea ACL de la file1 la file2:

# getfacl file1 | setfacl --set-file=- file2

Listăm valorile actuale ale permisiunilor (se observă asocierea curentă ACL cu file2):

# ll
total 4
drwxr-xr-x+ 2 root root 6 Apr 29 02:41 dir1
drwxr-xr-x. 2 root root 6 Apr 29 02:41 dir2
-rw-rw----+ 1 root root 1 Apr 29 03:01 file1
-rw-rw----+ 1 root root 0 Apr 29 02:41 file2

Cu comanda getfacl afisăm valorile ACL pentru file1 și file2, pentru a ne convinge că permisiunile au fost copiate:

# getfacl file1
# file: file1
# owner: root
# group: root
user::rw-
user:tux:rw-
group::r--
mask::rw-
other::---

# getfacl file2
# file: file2
# owner: root
# group: root
user::rw-
user:tux:rw-
group::r--
mask::rw-
other::---

9. Copiați setările ACL de la directorul dir1 la directorul dir2.

Se procedează în același mod ca la copierea ACL de la un fișier la altul:

# getfacl dir1 | setfacl --set-file=- dir2

# ll
total 4
drwxr-xr-x+ 2 root root 6 Apr 29 02:41 dir1
drwxr-xr-x+ 2 root root 6 Apr 29 02:41 dir2
-rw-rw----+ 1 root root 1 Apr 29 03:01 file1
-rw-rw----+ 1 root root 0 Apr 29 02:41 file2

# getfacl dir1
# file: dir1
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:tux:rwx
default:group::r-x
default:mask::rwx
default:other::r-x

# getfacl dir2
# file: dir2
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:tux:rwx
default:group::r-x
default:mask::rwx
default:other::r-x

10. Ștergeți permisiunile default ACL de pe dir1.

# setfacl --remove-default dir1

# getfacl dir1
# file: dir1
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

11. Ștergeți toate permisiunile ACL de pe fișierul file1.

# setfacl --remove-all file1

Verificăm și observăm că fișierul file1 nu mai are asociat extended ACL:

# ll
total 4
drwxr-xr-x. 2 root root 6 Apr 29 02:41 dir1
drwxr-xr-x+ 2 root root 6 Apr 29 02:41 dir2
-rw-r-----. 1 root root 1 Apr 29 03:01 file1
-rw-rw----+ 1 root root 0 Apr 29 02:41 file2

# getfacl file1
# file: file1
# owner: root
# group: root
user::rw-
group::r--
other::---

Exersați într-o mașină virtuală cu CentOS 7 - nu aveți nevoie de interfață grafică.

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ă)
  • Dă clic pentru a partaja pe Twitter(Se deschide într-o fereastră nouă)

Similare

Din categoria: Exerciții RHCSA, Permisiuni Etichete: ACL, exercitii RHCSA, RHCSA

Lasă un răspuns Anulează răspunsul

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

Copyright © 2023 · 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 Citește mai multe despre aceste scopuri
Vizualizează preferințele
{title} {title} {title}