CodeGym /Kurslar /Docker SELF /ACL (`setfacl`, `getfacl`) ilə giriş hüquqlarının idarə o...

ACL (`setfacl`, `getfacl`) ilə giriş hüquqlarının idarə olunması

Docker SELF
Səviyyə , Dərs
Mövcuddur

1. ACL ilə Tanışlıq

Təsəvvür et ki, sən bir parti təşkilatçısan (və ya sistem administratorusan). İstəyirsən ki, qonaqlar müəyyən otaqlara sərbəst girə bilsin, digərlərinə isə yalnız sənin icazənlə. Linux-un əsas giriş hüquqları rwx sənə yalnız üç kateqoriya üzrə giriş hüquqlarını idarə etməyə imkan verir: sahib (user), qrup (group) və digərləri (others). Amma əgər sən xüsusi bir dostuna otağa giriş icazəsi vermək istəsən, nə edəcəksən? Əsas hüquq modelinin mühafizəçisi sənə deyər: "Eyy, bu alınmayacaq". Bax elə bu zaman ACL sənə yardım etməyə hazır vəziyyətdə gəlir.

ACL (Access Control Lists) klassik üçsəviyyəli hüquqlar sistemini aşmağa imkan verir və konkret istifadəçilərə və qruplara giriş hüquqlarını təyin etməyə imkan tanıyır.

ACL-in Əsas İmkanları:

  1. Müəyyən istifadəçilər və qruplar üçün fayl və qovluqlara individuell hüquqlar qurmaq.
  2. Qovluq daxilində yeni fayllara hüquqların irsən keçirilməsi.
  3. Ənənəvi chmod yanaşmasına nisbətən daha çevik tənzimləmə imkanı.

2. ACL-lərin aktiv olub-olmadığını necə öyrənək?

ACL-ləri idarə etməyə başlamazdan əvvəl onların sisteminizdə dəstəklənib-dəstəklənmədiyini öyrənək. Bunu aşağıdakı komanda ilə yoxlaya bilərsiniz:

mount | grep acl

Əgər fayl sistemi acl opsiyası ilə mont olunubsa, siz hazırsınız! Əks halda, bölməni acl əlavə edərək təkrar mont etməlisiniz:

sudo mount -o remount,acl /your/mount/point

Əla, artıq siz tam silahlı vəziyyətdəsiniz. İndi isə praktika vaxtıdır.


3. ACL ilə işləmək üçün əsas komandalar

Komanda Açıqlama
getfacl Fayl və ya kataloq üçün mövcud ACL siyahısını almaq.
setfacl Fayl və ya kataloq üçün ACL quraşdırmaq və ya dəyişmək.
setfacl -m Mövcud giriş hüquqlarını dəyişmək (modify).
setfacl -x Təyin olunmuş giriş hüquqlarını silmək (remove).
setfacl -b Fayl və ya kataloq üçün bütün ACL yazılarını silmək.
setfacl -d Kataloqlar üçün standart hüquqlar təyin etmək (varsayılan), bu hüquqlar fayllara miras qalır.

İndi bu komandaları hər birinə misallar üzərindən baxaq!


Mövcud ACL-lərin alınması getfacl

Təsəvvür edək ki, bizim example.txt adlı faylımız var. Mövcud ACL hüquqlarını yoxlamaq istəyirik. Bunun üçün sadəcə bir komanda kifayətdir:

getfacl example.txt

Təxmini çıxış belə görünür:

# fayl: example.txt
# sahibi: user1
# qrup: group1
user::rw-
group::r--
other::---

Bu siyahı standart hüquqları göstərir: sahibi user1 oxuyub-yaza bilər, qrup group1 yalnız oxuya bilər, qalan istifadəçilərin heç bir girişi yoxdur.


Fərdi giriş hüquqlarının təyin edilməsi (setfacl)

Gəlin təsəvvür edək ki, istifadəçiyə user2 example.txt faylında yazma icazəsi lazım olur. Bunu belə edə bilərsiniz:

sudo setfacl -m u:user2:rw example.txt

Komanda nə deməkdir:

  • -m: hüquqların dəyişdirilməsi.
  • u:user2:rw: istifadəçi user2 üçün hüquqlar əlavə et və ya dəyişdir (read-write).

Nəticəni yoxlayaq:

getfacl example.txt

İndi çıxış belə görünəcək:

# fayl: example.txt
# sahibi: user1
# qrup: group1
user::rw-
user:user2:rw  # Əlavə edilmiş qayda!
group::r--
other::---

Fərdi hüquqların silinməsi setfacl -x

Əgər qərara alsanız ki, user2 artıq yazma hüququna malik olmamalıdır, hüquqları silə bilərsiniz:

sudo setfacl -x u:user2 example.txt

Yoxlayaq:

getfacl example.txt

Artıq user2 üçün heç bir əlavə qayda yoxdur!


Qruplar üçün hüquqların təyini

ACL vasitəsilə yalnız fərdi istifadəçilərə deyil, həm də qruplara hüquq təyin etmək olar. Məsələn, devteam qrupuna oxuyub-yazma hüququ vermək üçün aşağıdakı əmri icra edin:

sudo setfacl -m g:devteam:rw example.txt

Standart hüquqların təyini setfacl -d

Tez-tez lazım olur ki, müəyyən bir katalogun daxilində olan bütün yeni fayl və kataloqlar üçün hüquqlar avtomatik təyin edilsin. Məsələn, project_dir kataloqundakı bütün fayllar üçün developer istifadəçisinə yazma hüququ vermək istəyirsiniz. Bunun üçün:

sudo setfacl -d -m u:developer:rw project_dir

Hüquqları yoxlamaq üçün:

getfacl project_dir

İndi project_dir daxilindəki bütün yeni fayl və kataloqlara bu qayda standart olaraq tətbiq ediləcək.


Bütün ACL-lərin silinməsi setfacl -b

Əgər bir fayl üçün bütün ACL-ləri tamamilə təmizləmək istəyirsinizsə:

sudo setfacl -b example.txt

İndi fayl user:group:others standart hüquqlara qayıdacaq.


4. ACL-in Praktiki Tətbiqi

Ssenari: Layihədə birgə iş

Deyək ki, sizin /project kataloqunda saxlanılan bir layihəniz var. Layihə üzərində üç nəfər işləyir:

  • Alice tam giriş hüququna malik olmalıdır (oxuma, yazma, icra).
  • Bob yalnız faylları oxuya bilməlidir.
  • Eve kataloqu ümumiyyətlə görməməlidir.

Bunu ACL vasitəsilə belə qururuq:

  1. Alice-ə tam giriş hüququ verək:

    sudo setfacl -m u:alice:rwx /project
    
  2. Bob-a yalnız oxuma hüququ verək:

    sudo setfacl -m u:bob:r-- /project
    
  3. Eve üçün heç bir şey etməyə ehtiyac yoxdur — onun giriş hüququ standart olaraq olmayacaq.

Mövcud ACL siyahısına baxaq:

getfacl /project

Nəticə:

# fayl: /project
# sahib: root
# qrup: root
user::rwx
user:alice:rwx
user:bob:r--
group::---
other::---

İndi Alice heç bir məhdudiyyət olmadan işləyə bilər, Bob yalnız fayllara baxa bilər, Eve isə kənarda qalır.


5. Potensial səhvlər və onların həlli

  1. ACL işləmir, baxmayaraq ki, siz onları qurmusunuz. Ola bilər ki, bölmə acl seçimi ilə montajlanmayıb. mount-dan istifadə edərək bunu yoxlayın və lazım olduqda yenidən montaj edin.

  2. Standart hüquqlar və ACL arasında konflikt. ACL həmişə standart hüquqlardan üstün olur. Məsələn, əgər "others" üçün oxumaq qadağan olunursa, ACL müəyyən bir istifadəçiyə giriş icazəsi verə bilər.

  3. Varislik ACL-lərini unutmaq. Əgər siz -d (default) hüquqları təyin etmisinizsə, yeni fayllara bu qaydaların tətbiq olunub-olunmadığını yoxlayın.

Niyə bu vacibdir?

ACL vasitəsilə hüquqların idarəsi sizə müxtəlif istifadəçilər və qruplar üçün giriş hüquqlarını daha çevik formada tənzimləməyə imkan verir. Bu, xüsusən də iş serverlərində rolların nəzərə alınması ilə hüquqları bölüşdürmək lazım olduğunda faydalıdır. Məsələn, şirkətlərdə ACL yalnız "məlumatlı" olanlara giriş məhdudiyyəti qoymaq üçün istifadə olunur — bu isə təhlükəsizliyin əsas açarlarından biridir.

Əlavə olaraq, ACL-lərin imkanlarını daha yaxşı anlamaq üçün ACL haqqında rəsmi qaydaları öyrənə bilərsiniz.

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION