Linux-da icazələr (chown, chmod, SUID, GUID, yapışqan bit, ACL, umask)

Hamıya salam. Bu, RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 və EX300 kitabından məqalənin tərcüməsidir.

Push: Ümid edirəm ki, məqalə yalnız yeni başlayanlar üçün faydalı olmayacaq, həm də daha təcrübəli idarəçilərə biliklərini asanlaşdırmağa kömək edəcəkdir.

Beləliklə, gedək.

Linux-da icazələr (chown, chmod, SUID, GUID, yapışqan bit, ACL, umask)

Linux-da fayllara daxil olmaq üçün icazələrdən istifadə olunur. Bu icazələr üç obyektə təyin edilir: fayl sahibi, qrup sahibi və başqa obyekt (yəni hər kəs). Bu məqalədə siz icazələrin necə tətbiq olunacağını öyrənəcəksiniz.

Bu məqalə əsas anlayışların icmalı ilə başlayır, ardınca Xüsusi icazələr və Girişə Nəzarət Siyahıları (ACL) müzakirə edilir. Bu məqalənin sonunda biz umask vasitəsilə standart icazələrin təyin edilməsini, həmçinin genişləndirilmiş istifadəçi atributlarının idarə edilməsini əhatə edirik.

Fayl sahibliyinin idarə edilməsi

İcazələri müzakirə etməzdən əvvəl fayl və kataloq sahibinin rolundan xəbərdar olmalısınız. Faylların və qovluqların sahibliyi icazələrlə məşğul olmaq üçün çox vacibdir. Bu bölmədə siz əvvəlcə sahibini necə görə biləcəyinizi öyrənəcəksiniz. Daha sonra siz fayl və qovluqlar üçün qrup sahibini və istifadəçini necə dəyişməyi öyrənəcəksiniz.

Fayl və ya kataloqun sahibi göstərilir

Linux-da hər bir faylın və hər kataloqun iki sahibi var: istifadəçi və qrup sahibi.

Bu sahiblər fayl və ya qovluq yaradıldıqda təyin olunur. Faylı yaradan istifadəçi həmin faylın sahibi olur və eyni istifadəçinin aid olduğu əsas qrup da həmin faylın sahibi olur. Bir istifadəçi olaraq fayl və ya kataloqa daxil olmaq icazəniz olub-olmadığını müəyyən etmək üçün qabıq sahibliyi yoxlayır.

Bu, aşağıdakı ardıcıllıqla baş verir:

  1. Qabıq daxil olmaq istədiyiniz faylın sahibi olub-olmadığınızı yoxlayır. Sahibi sizsinizsə, icazələr alırsınız və qabıq yoxlamanı dayandırır.
  2. Əgər siz faylın sahibi deyilsinizsə, qabıq sizin faylda icazələri olan qrupun üzvü olub-olmadığınızı yoxlayacaq. Əgər siz bu qrupun üzvüsinizsə, qrupun təyin etdiyi icazələrlə fayla daxil olacaqsınız və qabıq yoxlamanı dayandıracaq.
  3. Əgər siz nə istifadəçi, nə də qrupun sahibi deyilsinizsə, sizə digər istifadəçilərin hüquqları verilir (Digər).

Cari sahibin tapşırıqlarını görmək üçün əmrdən istifadə edə bilərsiniz ls-l. Bu komanda qrupun istifadəçisini və sahibini göstərir. Aşağıda /home qovluğunda qovluqlar üçün sahib parametrlərini görə bilərsiniz.

[root@server1 home]# ls -l
total 8
drwx------. 3  bob            bob            74     Feb   6   10:13 bob
drwx------. 3  caroline       caroline       74     Feb   6   10:13 caroline
drwx------. 3  fozia          fozia          74     Feb   6   10:13 fozia
drwx------. 3  lara           lara           74     Feb   6   10:13 lara
drwx------. 5  lisa           lisa           4096   Feb   6   10:12 lisa
drwx------. 14 user           user           4096   Feb   5   10:35 user

Komandadan istifadə etməklə ls verilmiş kataloqda faylların sahibini göstərə bilərsiniz. Bəzən sistemdə müəyyən bir istifadəçi və ya qrupun sahibi olan bütün faylların siyahısını əldə etmək faydalı ola bilər. Bunun üçün istifadə edə bilərsiniz tapmaq. Arqument istifadəçi tapmaq bu məqsədlə istifadə edilə bilər. Məsələn, aşağıdakı əmr linda istifadəçisinə məxsus bütün faylları siyahıya alır:

find / -user linda

İstifadə edə bilərsiniz tapmaq onların sahibi kimi müəyyən qrup olan faylları axtarmaq üçün.

Məsələn, aşağıdakı komanda qrupa aid olan bütün faylları axtarır istifadəçi:

find / -group users

Mülkiyyətin dəyişdirilməsi

Müvafiq icazələri tətbiq etmək üçün nəzərə alınmalı ilk şey sahiblikdir. Bunun üçün bir əmr var çalındı. Bu əmrin sintaksisini başa düşmək asandır:

chown кто что

Məsələn, aşağıdakı əmr /home/account qovluğunun sahibini linda istifadəçisinə dəyişir:

chown linda /home/account

Komanda çalındı bir neçə variant var, onlardan biri xüsusilə faydalıdır: -R. Bunun nə etdiyini təxmin edə bilərsiniz, çünki bu seçim bir çox digər əmrlər üçün də mövcuddur. Bu, cari kataloqun sahibini və aşağıda göstərilən hər şeyi təyin etməyə imkan verən sahibini rekursiv olaraq təyin etməyə imkan verir. Aşağıdakı əmr /home kataloqunun və onun altındakı hər şeyin sahibliyini linda istifadəçisinə dəyişdirir:

İndi sahiblər belə görünür:

[root@localhost ~]# ls -l /home
total 0
drwx------. 2 account account 62 Sep 25 21:41 account
drwx------. 2 lisa    lisa    62 Sep 25 21:42 lisa

edək:

[root@localhost ~]# chown -R lisa /home/account
[root@localhost ~]#

İndi istifadəçi lisa hesab kataloqunun sahibi oldu:

[root@localhost ~]# ls -l /home
total 0
drwx------. 2 lisa account 62 Sep 25 21:41 account
drwx------. 2 lisa lisa    62 Sep 25 21:42 lisa

Qrupun sahibini dəyişdirin

Qrupun sahibliyini dəyişdirməyin iki yolu var. Bunu istifadə edərək edə bilərsiniz çalındı, lakin adlı xüsusi bir əmr var chgrpbu işi görür. Əgər əmrdən istifadə etmək istəyirsinizsə çalındı, istifadə edin . və ya : qrupun adının qarşısında.

Aşağıdakı əmr /home/account qrupunun hər hansı sahibini hesab qrupuna dəyişir:

chown .account /home/account

İstifadə edə bilərsiniz çalındı istifadəçi və/və ya qrupun sahibini bir neçə yolla dəyişdirmək. Budur bəzi nümunələr:

  • chown lisa myfile1 istifadəçi lisa-nı myfile1-in sahibi kimi təyin edir.
  • chown lisa.sales mənim faylım istifadəçi lisa-nı myfile faylının sahibi kimi təyin edir və həmçinin satış qrupunu eyni faylın sahibi kimi təyin edir.
  • chown lisa:satış faylım əvvəlki əmrlə eynidir.
  • chown .satış faylım istifadəçinin sahibini dəyişmədən satış qrupunu myfile sahibi kimi təyin edir.
  • chown: satış mənim faylım əvvəlki əmrlə eynidir.

əmrindən istifadə edə bilərsiniz chgrpqrupun sahibini dəyişdirmək. İstifadə edə biləcəyiniz aşağıdakı nümunəni nəzərdən keçirin chgrp hesab kataloqunun sahibini satış qrupuna təyin edin:

chgrp .sales /home/account

Nümunə olaraq çalındı, seçimindən istifadə edə bilərsiniz -R с chgrp, həmçinin qrupun sahibini rekursiv olaraq dəyişdirin.

Defolt Sahibini Anlamaq

Ola bilsin ki, istifadəçi bir fayl yaratdıqda, standart sahibliyin tətbiq olunduğunu fərq etmiş ola bilərsiniz.
Faylı yaradan istifadəçi avtomatik olaraq həmin faylın sahibi olur və həmin istifadəçinin əsas qrupu avtomatik olaraq həmin faylın sahibi olur. Bu, adətən /etc/passwd faylında istifadəçinin əsas qrupu kimi qeyd olunan qrupdur. Bununla belə, istifadəçi birdən çox qrupun üzvüdürsə, istifadəçi effektiv əsas qrupu dəyişə bilər.

Cari effektiv əsas qrupu göstərmək üçün istifadəçi əmrdən istifadə edə bilər qrupları:

[root@server1 ~]# groups lisa
lisa : lisa account sales

Cari linda istifadəçisi effektiv ilkin qrupu dəyişmək istəsə, o, əmrdən istifadə edəcək newgrpyeni təsirli əsas qrup olaraq təyin etmək istədiyi qrupun adını izlədi. Əmri istifadə etdikdən sonra newgrp istifadəçi əmr daxil edənə qədər əsas qrup aktiv olacaq çıxış ya da çıxmayın.

Aşağıdakılar, linda istifadəçisinin bu əmrdən necə istifadə etdiyini, satışları əsas qrup olaraq göstərir:

lisa@server1 ~]$ groups
lisa account sales
[lisa@server1 ~]$ newgrp sales
[lisa@server1 ~]$ groups
sales lisa account
[lisa@server1 ~]$ touch file1
[lisa@server1 ~]$ ls -l
total 0
-rw-r--r--. 1 lisa sales 0 Feb 6 10:06 file1

Effektiv əsas qrup dəyişdirildikdən sonra istifadəçi tərəfindən yaradılmış bütün yeni fayllar həmin qrupa qrup sahibi olacaq. Orijinal əsas qrup ayarına qayıtmaq üçün istifadə edin çıxış.

Komandadan istifadə edə bilmək üçün newgrp, istifadəçi əsas qrup kimi istifadə etmək istədiyi qrupun üzvü olmalıdır. Bundan əlavə, komandadan istifadə edərək bir qrup üçün qrup parolu istifadə edilə bilər gpasswd. İstifadəçi əmrdən istifadə edərsə newgrplakin hədəf qrupun üzvü deyil, qabıq qrupun parolunu tələb edir. Siz düzgün qrup parolunu daxil etdikdən sonra yeni effektiv əsas qrup yaradılacaq.

Əsas hüquqların idarə edilməsi

Linux icazə sistemi 1970-ci illərdə icad edilmişdir. Həmin illərdə hesablama ehtiyacları məhdud olduğundan, əsas icazə sistemi kifayət qədər məhdud idi. Bu icazə sistemi fayl və qovluqlara tətbiq oluna bilən üç icazədən istifadə edir. Bu bölmədə siz bu icazələrin necə istifadə ediləcəyini və dəyişdiriləcəyini öyrənəcəksiniz.

Oxumaq, Yazmaq və İcra İcazələrini Anlamaq

Üç əsas icazə faylları oxumağa, yazmağa və icra etməyə imkan verir. Bu icazələrin təsiri fayllara və ya qovluqlara tətbiq edildikdə fərqlənir. Fayl üçün oxumaq icazəsi sizə faylı oxumaq üçün açmaq hüququ verir. Beləliklə, siz onun məzmununu oxuya bilərsiniz, lakin bu o deməkdir ki, kompüteriniz onunla nəsə etmək üçün faylı aça bilər.

Kitabxanaya giriş tələb edən proqram faylı, məsələn, həmin kitabxanaya oxumaq imkanına malik olmalıdır. Buradan belə nəticə çıxır ki, oxumaq icazəsi fayllarla işləmək üçün lazım olan ən əsas icazədir.

Kataloqa tətbiq edildikdə, oxumaq həmin kataloqun məzmununu göstərməyə imkan verir. Bilməlisiniz ki, bu icazə kataloqdakı faylları oxumağa imkan vermir. Linux icazə sistemi varisliyi bilmir və faylı oxumağın yeganə yolu həmin faylda oxumaq icazələrindən istifadə etməkdir.

Çox güman ki, təxmin edə bildiyiniz kimi, yazmaq icazəsi, əgər fayla tətbiq olunarsa, fayla yazmağa imkan verir. Başqa sözlə, mövcud faylların məzmununu dəyişməyə imkan verir. Bununla belə, o, sizə yeni fayllar yaratmağa və ya silməyə və ya fayl icazələrini dəyişməyə imkan vermir. Bunun üçün faylı yaratmaq istədiyiniz kataloqa yazma icazəsi verməlisiniz. Kataloqlarda bu icazə həm də yeni alt kataloqlar yaratmağa və silməyə imkan verir.

İcra icazəsi faylı icra etmək üçün sizə lazım olan şeydir. O, heç vaxt standart olaraq quraşdırılmayacaq, bu da Linux-u demək olar ki, tamamilə viruslara qarşı immunitetə ​​çevirir. Yalnız kataloqda yazma icazəsi olan şəxs icra icazəsi tətbiq edə bilər.

Aşağıdakılar əsas icazələrin istifadəsini ümumiləşdirir:

Linux-da icazələr (chown, chmod, SUID, GUID, yapışqan bit, ACL, umask)

chmod istifadə edərək

Əmr icazələri idarə etmək üçün istifadə olunur. chmod... İstifadə chmod istifadəçi (istifadəçi), qruplar (qrup) və başqaları (digər) üçün icazələr təyin edə bilərsiniz. Bu əmrdən iki rejimdə istifadə edə bilərsiniz: nisbi rejim və mütləq rejim. Mütləq rejimdə əsas icazələri təyin etmək üçün üç rəqəmdən istifadə olunur.

Linux-da icazələr (chown, chmod, SUID, GUID, yapışqan bit, ACL, umask)

İcazələri təyin edərkən sizə lazım olan dəyəri hesablayın. Əgər /somefile-də istifadəçi üçün oxumaq/yazmaq/icra etmək, qrup üçün oxumaq/icra etmək və başqaları üçün oxumaq/icra etmək istəyirsinizsə, onda aşağıdakı əmrdən istifadə edirsiniz. chmod:

chmod 755 /somefile

İstifadə etdiyiniz zaman chmod bu şəkildə, bütün cari icazələr təyin etdiyiniz icazələrlə əvəz olunur.

Cari icazələrə nisbətən icazələri dəyişdirmək istəyirsinizsə, istifadə edə bilərsiniz chmod nisbi rejimdə. İstifadə chmod nisbi rejimdə nə etmək istədiyinizi göstərmək üçün üç göstərici ilə işləyirsiniz:

  1. Əvvəlcə kimin üçün icazələri dəyişdirmək istədiyinizi müəyyənləşdirirsiniz. Bunu etmək üçün istifadəçi arasında seçim edə bilərsiniz (u), qrup (g) və qeyriləri (o).
  2. Daha sonra cari rejimdən icazələri əlavə etmək və ya silmək və ya onları tamamilə təyin etmək üçün bəyanatdan istifadə edirsiniz.
  3. Sonda istifadə edirsiniz r, w и xhansı icazələri təyin etmək istədiyinizi müəyyən etmək üçün.

Nisbi rejimdə icazələri dəyişdirərkən, bütün obyektlər üçün icazə əlavə etmək və ya silmək üçün "to" hissəsini keçə bilərsiniz. Məsələn, bu əmr bütün istifadəçilər üçün icra icazəsi əlavə edir:

chmod +x somefile

Nisbi rejimdə işləyərkən daha mürəkkəb əmrlərdən də istifadə edə bilərsiniz. Məsələn, bu əmr qrupa yazma icazəsi əlavə edir və digərləri üçün oxumaq icazəsini ləğv edir:

chmod g+w,o-r somefile

Istifadə edərkən chmod -R o+rx /data bütün qovluqlar və /data qovluğundakı fayllar üçün icra icazəsi təyin etdiniz. İcra icazəsini fayllar üçün deyil, yalnız qovluqlar üçün təyin etmək üçün istifadə edin chmod -R o+ rX /məlumatlar.

Böyük X hərfi fayl bəzi obyektlər üçün icra icazəsi təyin etmədiyi halda, faylların icra icazəsi almamasını təmin edir. Bu, X-i icra icazələri ilə məşğul olmaq üçün daha ağıllı bir üsul edir; bu, tələb olunmayan fayllarda bu icazənin təyin edilməsinin qarşısını alacaq.

Genişləndirilmiş hüquqlar

İndicə oxuduğunuz əsas icazələrə əlavə olaraq, Linux da bir sıra qabaqcıl icazələrə malikdir. Bunlar defolt olaraq təyin etdiyiniz icazələr deyil, lakin bəzən faydalı əlavələr təqdim edirlər. Bu bölmədə onların nə olduğunu və necə qurulacağını öyrənəcəksiniz.

SUID, GUID və Sticky Bit Genişləndirilmiş İcazələri Anlamaq

Üç inkişaf etmiş icazə var. Bunlardan birincisi istifadəçi identifikatoru (SUID) təyin etmək icazəsidir. Bəzi xüsusi hallarda bu icazəni icra edilə bilən fayllara tətbiq edə bilərsiniz. Varsayılan olaraq, icra olunan faylı işlədən istifadəçi həmin faylı öz icazələri ilə işlədir.

Adi istifadəçilər üçün bu, adətən proqramın istifadəsinin məhdud olması deməkdir. Bununla belə, bəzi hallarda istifadəçiyə yalnız müəyyən bir tapşırığı yerinə yetirmək üçün xüsusi icazələr lazımdır.

Məsələn, istifadəçinin parolunu dəyişməli olduğu bir vəziyyəti nəzərdən keçirək. Bunun üçün istifadəçi öz yeni parolunu /etc/shadow faylına yazmalıdır. Bununla belə, bu fayl kök olmayan istifadəçilər tərəfindən yazıla bilməz:

root@hnl ~]# ls -l /etc/shadow
----------. 1 root root 1184 Apr 30 16:54 /etc/shadow

SUID icazəsi bu problemin həllini təklif edir. /usr/bin/passwd yardım proqramı defolt olaraq bu icazədən istifadə edir. Bu o deməkdir ki, parol dəyişdirilərkən istifadəçi müvəqqəti olaraq root-a çevrilir ki, bu da ona /etc/shadow faylına yazmağa imkan verir. SUID icazəsini ilə görə bilərsiniz ls-l kimi s normal olaraq görməyi gözlədiyiniz bir vəziyyətdə x fərdi icazələr üçün:

[root@hnl ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 32680 Jan 28 2010 /usr/bin/passwd

SUID icazəsi faydalı görünə bilər (bəzi hallarda belədir), lakin eyni zamanda potensial təhlükəlidir. Düzgün tətbiq edilmədikdə, təsadüfən kök icazələrini verə bilərsiniz. Buna görə də onu yalnız son dərəcə ehtiyatla istifadə etməyi məsləhət görürəm.

Əksər idarəçilərin heç vaxt ondan istifadə etməsinə ehtiyac olmayacaq; onu yalnız əməliyyat sisteminin standart olaraq təyin etməli olduğu bəzi fayllarda görəcəksiniz.

İkinci xüsusi icazə qrup identifikatorudur (SGID). Bu icazənin iki təsiri var. İcra edilə bilən fayla tətbiq edildikdə, faylı icra edən istifadəçiyə faylın qrup sahibinin icazələrini verir. Beləliklə, SGID SUID ilə eyni şeyi edə bilər. Bununla belə, SGID bu məqsədlə praktiki olaraq istifadə edilmir.

SUID icazəsində olduğu kimi, SGID bəzi sistem fayllarına defolt parametr kimi tətbiq edilir.

Kataloqa tətbiq edildikdə, SGID faydalı ola bilər, çünki siz ondan həmin kataloqda yaradılmış fayllar və alt kataloqlar üçün standart qrup sahibini təyin etmək üçün istifadə edə bilərsiniz. Defolt olaraq, istifadəçi fayl yaratdıqda, onların effektiv əsas qrupu həmin fayl üçün qrup sahibi olaraq təyin olunur.

Xüsusilə Red Hat/CentOS istifadəçilərinin əsas qrupları istifadəçi ilə eyni adlı və istifadəçinin yeganə üzvü olduğu qrupa təyin olunduqları üçün bu, həmişə çox faydalı olmur. Beləliklə, standart olaraq istifadəçinin yaratdığı fayllar toplu olaraq paylaşılacaq.

Linda və lori istifadəçilərinin mühasibatlıqda işlədikləri və bir qrupun üzvü olduqları bir vəziyyəti təsəvvür edin hesab. Varsayılan olaraq, bu istifadəçilər yeganə üzvü olduqları şəxsi qrupun üzvləridir. Bununla belə, hər iki istifadəçi hesab qrupunun üzvləridir, həm də ikinci dərəcəli qrup parametri kimi.

Standart vəziyyət belədir ki, bu istifadəçilərdən hər hansı biri fayl yaratdıqda, əsas qrup sahibi olur. Buna görə, standart olaraq, linda lori tərəfindən yaradılmış fayllara daxil ola bilməz və əksinə. Bununla belə, paylaşılan qrup kataloqu yaratsanız (məsələn, /qruplar/hesab) və SGID icazəsinin həmin kataloqa tətbiq olunduğundan və qrup hesabının həmin kataloq üçün qrup sahibi kimi təyin olunduğundan əmin olsanız, həmin kataloqda yaradılmış bütün fayllar və bütün onun alt kataloqlarından , həmçinin qrup hesabını defolt olaraq qrup sahibi kimi əldə edin.

Bu səbəbdən, SGID icazəsi ictimai qrup qovluqlarına təyin etmək üçün çox faydalı bir icazədir.

SGID icazəsi çıxışda göstərilir ls-l kimi s adətən qrupu icra etmək üçün icazə tapa biləcəyiniz mövqedə:

[root@hnl data]# ls -ld account
drwxr-sr-x. 2 root account 4096 Apr 30 21:28 account

Xüsusi icazələrin üçüncüsü yapışqan bitdir. Bu icazə birdən çox istifadəçinin eyni qovluğa yazmaq imkanına malik olduğu mühitdə faylları təsadüfən silinmədən qorumaq üçün faydalıdır. Yapışqan bit istifadə edilərsə, istifadəçi yalnız faylı ehtiva edən faylın və ya kataloqun istifadəçisi olduqda faylı silə bilər. Bu səbəbdən, o, /tmp kataloqu üçün standart icazə kimi istifadə olunur və ictimai qrup kataloqları üçün də faydalı ola bilər.

Yapışqan bit olmadan, istifadəçi kataloqda fayllar yarada bilirsə, o qovluqdakı faylları da silə bilər. İctimai qrup mühitində bu bezdirici ola bilər. Təsəvvür edin ki, hər ikisi /data/account kataloquna yazma icazəsi olan və hesab qrupunun üzvləri olmaqla həmin icazələri əldə edən linda və lori istifadəçiləridir. Buna görə də linda lori tərəfindən yaradılmış faylları silə bilər və əksinə.

Yapışqan biti tətbiq etdiyiniz zaman istifadəçi yalnız aşağıdakı şərtlərdən biri doğru olduqda faylları silə bilər:

  • İstifadəçi faylın sahibidir;
  • İstifadəçi faylın yerləşdiyi kataloqun sahibidir.

Istifadə edərkən ls-l, kimi yapışqan görə bilərsiniz t başqaları üçün icra icazəsi görə biləcəyiniz yerdə:

[root@hnl data]# ls -ld account/
drwxr-sr-t. 2 root account 4096 Apr 30 21:28 account/

Genişləndirilmiş hüquqların tətbiqi

SUID, SGID və yapışqan bit tətbiq etmək üçün siz də istifadə edə bilərsiniz chmod. SUID-in rəqəmli dəyəri 4, SGID-in rəqəmli dəyəri 2, yapışqan bitin isə 1 ədədi dəyəri var.

Bu icazələri tətbiq etmək istəyirsinizsə, dörd rəqəmli arqument əlavə etməlisiniz chmod, ilk rəqəmi xüsusi icazələrə istinad edir. Aşağıdakı sətir, məsələn, kataloqa SGID icazəsi əlavə edəcək və istifadəçi üçün rwx, qrup və digərləri üçün rx təyin edəcək:

chmod 2755 /somedir

Əgər işləməzdən əvvəl təyin edilmiş cari icazələri görmək lazımdırsa, bu, olduqca qeyri-mümkündür chmod mütləq rejimdə. (Əgər etməsəniz, icazələrin üzərinə yazmaq riskiniz var.) Buna görə də, xüsusi icazələrdən hər hansı birini tətbiq etməlisinizsə, nisbi rejimdə işləməyi tövsiyə edirəm:

  1. SUID istifadəsi üçün chmod u+s.
  2. SGID istifadəsi üçün chmod g+s.
  3. Yapışqan istifadə üçün chmod +t, ardınca icazələri təyin etmək istədiyiniz fayl və ya kataloqun adı.

Cədvəl xüsusi icazələrin idarə edilməsi ilə bağlı bilməli olduğunuz hər şeyi ümumiləşdirir.

Linux-da icazələr (chown, chmod, SUID, GUID, yapışqan bit, ACL, umask)

Xüsusi hüquqlarla işləmək nümunəsi

Bu nümunədə siz qrup üzvlərinin paylaşılan qrup kataloqunda faylları paylaşmasını asanlaşdırmaq üçün xüsusi icazələrdən istifadə edirsiniz. Siz identifikator bitini müəyyən edilmiş qrup ID-sinə, eləcə də yapışqan bitə təyin edirsiniz və görürsünüz ki, onlar təyin edildikdən sonra qrup üzvlərinin birlikdə işləməsini asanlaşdırmaq üçün funksiyalar əlavə edilir.

  1. Linda istifadəçisi olduğunuz bir terminal açın. Komanda ilə istifadəçi yarada bilərsiniz istifadəçi əlavə et linda, parol əlavə edin keçdi Linda.
  2. Kökdə /data kataloqunu və əmri ilə /data/sales alt kataloqunu yaradın mkdir -p /data/satış... İcra etmək cd /data/satışsatış kataloquna getmək üçün. Tamamlayın linda1 toxunun и linda2 toxununlindaya məxsus iki boş fayl yaratmaq.
  3. İcra etmək su-lisa cari istifadəçini həm də satış qrupunun üzvü olan istifadəçi lisaya keçirmək.
  4. İcra etmək cd /data/satış və həmin qovluqdan icra edin ls-l. Linda istifadəçisi tərəfindən yaradılmış və linda qrupuna aid olan iki fayl görəcəksiniz. Tamamlayın rm -f linda*. Bu, hər iki faylı siləcək.
  5. İcra etmək lisa1-ə toxunun и lisa2-ə toxununistifadəçi lisa məxsus iki fayl yaratmaq üçün.
  6. İcra etmək su- imtiyazlarınızı kökünə yüksəltmək üçün.
  7. İcra etmək chmod g+s,o+t /data/satışqrup identifikatoru (GUID) bitini, eləcə də paylaşılan qrup kataloqunda yapışqan biti təyin etmək üçün.
  8. İcra etmək su-linda. Sonra edin linda3 toxunun и linda4 toxunun. İndi görməlisiniz ki, yaratdığınız iki fayl /data/sales kataloqunun qrup sahibi olan satış qrupuna məxsusdur.
  9. İcra etmək rm -rf lisa*. Yapışqan bit bu faylların linda istifadəçisi adından silinməsinə mane olur, çünki siz bu faylların sahibi deyilsiniz. Qeyd edək ki, linda istifadəçisi /data/sales kataloqunun sahibidirsə, hər halda bu faylları silə bilər!

Linux-da ACL idarəetməsi (setfacl, getfacl).

Yuxarıda müzakirə edilən genişləndirilmiş icazələr Linux-un icazələri idarə etmə üsuluna faydalı funksionallıq əlavə etsə də, eyni faylda birdən çox istifadəçi və ya qrupa icazə verməyə imkan vermir.

Girişə nəzarət siyahıları bu funksiyanı təklif edir. Bundan əlavə, onlar idarəçilərə standart icazələri kompleks şəkildə təyin etməyə imkan verir, burada təyin edilmiş icazələr kataloqdan kataloqa dəyişə bilər.

ACL-ləri başa düşmək

ACL alt sistemi serverinizə böyük funksionallıq əlavə etsə də, onun bir çatışmazlığı var: bütün kommunal proqramlar onu dəstəkləmir. Buna görə də, faylları köçürən və ya köçürən zaman ACL parametrlərinizi itirə bilərsiniz və ehtiyat proqram təminatınız ACL parametrlərinizin ehtiyat nüsxəsini çıxara bilməz.

Tar proqramı ACL-ləri dəstəkləmir. Yedək yaratdığınız zaman ACL parametrlərinin itirilməməsinə əmin olmaq üçün istifadə edin ulduz tar yerinə. ulduz tar ilə eyni variantlarla işləyir; sadəcə ACL parametrləri üçün dəstək əlavə edir.

Siz həmçinin ACL-lərin ehtiyat nüsxəsini çıxara bilərsiniz getfacl, setfacl əmrindən istifadə edərək bərpa edilə bilər. Yedək yaratmaq üçün istifadə edin getfacl -R /kataloq > file.acls. Parametrləri ehtiyat fayldan bərpa etmək üçün istifadə edin setfacl --restore=file.acl.

Bəzi alətlərin dəstəyinin olmaması problem yaratmamalıdır. ACL-lər çox vaxt fərdi fayllara deyil, struktur ölçü kimi kataloqlara tətbiq olunur.
Buna görə də, onların çoxu olmayacaq, ancaq bir neçəsi, fayl sistemində ağıllı yerlərdə tətbiq olunacaq. Buna görə də, işlədiyiniz orijinal ACL-ləri bərpa etmək, hətta ehtiyat proqramınız onları dəstəkləməsə belə, nisbətən asandır.

ACL-lər üçün fayl sisteminin hazırlanması

ACL-lərlə işləməyə başlamazdan əvvəl fayl sisteminizi ACL-ləri dəstəkləmək üçün hazırlamalı ola bilərsiniz. Fayl sistemi metadatasının genişləndirilməsi lazım olduğundan, fayl sistemində ACL-lər üçün həmişə standart dəstək olmur. Fayl sistemi üçün ACL-ləri qurarkən "əməliyyat dəstəklənmir" mesajı alsanız, fayl sisteminiz ACL-ləri dəstəkləməyə bilər.

Bunu düzəltmək üçün seçim əlavə etməlisiniz acl montaj /etc/fstab-da fayl sistemi standart olaraq ACL dəstəyi ilə quraşdırılsın.

setfacl və getfacl ilə ACL parametrlərinin dəyişdirilməsi və baxılması

ACL qurmaq üçün sizə əmr lazımdır setfacl. Cari ACL parametrlərini görmək üçün sizə lazımdır getfacl. Komanda ls-l mövcud ACL-ləri göstərmir; o, yalnız icazə siyahısından sonra + işarəsini göstərir ki, bu da ACL-lərin fayla da aid olduğunu göstərir.

ACL-ləri qurmazdan əvvəl cari ACL parametrlərini göstərmək həmişə yaxşı fikirdir getfacl. Aşağıdakı nümunədə, göstərildiyi kimi, cari icazələri görə bilərsiniz ls-l, və həmçinin ilə göstərildiyi kimi getfacl. Əgər kifayət qədər yaxından baxsanız, göstərilən məlumatların tamamilə eyni olduğunu görəcəksiniz.

[root@server1 /]# ls -ld /dir
drwxr-xr-x. 2 root root 6 Feb 6 11:28 /dir
[root@server1 /]# getfacl /dir
getfacl: Removing leading '/' from absolute path names
# file: dir
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

Əmrin icrası nəticəsində getfacl aşağıda siz icazələrin üç müxtəlif obyekt üçün göstərildiyini görə bilərsiniz: istifadəçi, qrup və başqaları. İndi satış qrupuna oxumaq və icra etmək icazələri vermək üçün ACL əlavə edək. bunun üçün əmr setfacl -mg:satış:rx /dir. Bu komandada -m cari ACL parametrlərinin dəyişdirilməsinin lazım olduğunu göstərir. Ondan sonra g:satış:rx oxumaq-icra ACL-ni təyin etmək əmrini bildirir (rx) qrup üçün (g) satış. Aşağıda komandanın necə göründüyünü, həmçinin cari ACL parametrlərini dəyişdirdikdən sonra getfacl əmrinin çıxışını görə bilərsiniz.

[root@server1 /]# setfacl -m g:sales:rx /dir
[root@server1 /]# getfacl /dir
getfacl: Removing leading '/' from absolute path names
# file: dir
# owner: root
# group: root
user::rwx
group::r-x
group:sales:r-x
mask::r-x
other::r-x

İndi qrup ACL-nin necə qurulacağını başa düşdüyünüzə görə, istifadəçilər və digər istifadəçilər üçün ACL-ləri başa düşmək asandır. Məsələn, əmr setfacl -mu:linda:rwx /data istifadəçi linda onu sahib etmədən və ya cari sahibin təyinatını dəyişdirmədən /data kataloqunda ona icazələr verir.

Komanda setfacl bir çox xüsusiyyətləri və variantları var. Bir seçim xüsusilə vacibdir, parametr -R. İstifadə olunarsa, seçim ACL-ni təyin etdiyiniz kataloqda hazırda mövcud olan bütün fayllar və alt kataloqlar üçün ACL-ni təyin edir. Mövcud kataloqlar üçün ACL-ləri dəyişdirərkən həmişə bu seçimdən istifadə etməyiniz tövsiyə olunur.

Defolt ACL ilə işləmək

ACL-lərdən istifadənin üstünlüklərindən biri kataloqda birdən çox istifadəçi və ya qrupa icazə verə bilməyinizdir. Başqa bir üstünlük ondan ibarətdir ki, siz standart ACL-lərlə işləyərək vərəsəliyi aktivləşdirə bilərsiniz.

Standart ACL-i təyin etməklə siz kataloqda yaradılmış bütün yeni elementlər üçün təyin ediləcək icazələri müəyyən edirsiniz. Bilin ki, standart ACL mövcud fayllar və alt kataloqlar üzrə icazələri dəyişmir. Onları dəyişdirmək üçün siz də normal ACL əlavə etməlisiniz!

Bunu bilmək vacibdir. Eyni kataloqa daxil olmaq üçün birdən çox istifadəçi və ya qrupun konfiqurasiyası üçün ACL-dən istifadə etmək istəyirsinizsə, ACL-ni iki dəfə təyin etməlisiniz. İlk istifadə setfacl -R -mcari fayllar üçün ACL dəyişdirmək üçün. Sonra istifadə edin setfacl-md:yaradılacaq bütün yeni elementlərin qayğısına qalmaq.

Defolt ACL-i təyin etmək üçün sadəcə seçimi əlavə etməlisiniz d seçimdən sonra -m (sifariş vacibdir!). Beləliklə, istifadə edin setfacl -md:g:satış:rx /dataƏgər siz qrup satışlarının /data kataloqunda yaradılan hər şeyi oxuyub icra etməsini istəyirsinizsə.

Standart ACL-lərdən istifadə edərkən, başqaları üçün ACL-ləri təyin etmək də faydalı ola bilər. Bunun adətən çox mənası yoxdur, çünki siz başqalarının istifadə etdiyi icazələri də dəyişə bilərsiniz chmod. Bununla belə, nə edə bilməzsiniz chmod, indiyə qədər yaradılan hər yeni fayl üçün digər istifadəçilərə verilməli olan hüquqları müəyyən etməkdir. Əgər başqalarının /data-da yaradılan hər hansı bir şeyə icazə almasının qarşısını almaq istəyirsinizsə, məsələn, istifadə edin setfacl -md:o::- /data.

ACL və normal icazələr həmişə yaxşı inteqrasiya olunmur. Əgər siz qovluğa defolt ACL tətbiq etsəniz, sonra həmin qovluğa elementlər əlavə edilərsə və sonra normal icazələri dəyişdirməyə çalışsanız, problemlər yarana bilər. Normal icazələrə tətbiq edilən dəyişikliklər ACL icmalında yaxşı əks olunmayacaq. Problemlərin qarşısını almaq üçün əvvəlcə normal icazələri təyin edin, sonra standart ACL-ləri təyin edin (və bundan sonra onları bir daha dəyişməməyə çalışın).

ACL-lərdən istifadə edərək Yüksək Hüquqların İdarə Edilməsi nümunəsi

Bu nümunədə siz əvvəllər yaratdığınız /data/account və /data/sales qovluqları ilə davam edəcəksiniz. Əvvəlki nümunələrdə siz satış qrupunun /data/sales, hesab qrupunun isə /data/account üzrə icazələrinin olmasını təmin etdiniz.

Birincisi, hesab qrupunun /data/satış kataloqunda, satış qrupunun isə /data/account kataloqunda oxumaq icazələri aldığından əmin olun.

Daha sonra bütün yeni faylların bütün yeni elementlər üçün təyin edilmiş düzgün icazələrə malik olduğundan əmin olmaq üçün standart ACL-ləri təyin edirsiniz.

  1. Terminal açın.
  2. İcra etmək setfacl -mg:hesab:rx /data/satış и setfacl -mg:satış:rx /data/hesab.
  3. İcra etmək getfaclicazələrin istədiyiniz şəkildə qurulduğuna əmin olmaq üçün.
  4. İcra etmək setfacl -md:g:hesab:rwx,g:satış:rx /data/satışsatış kataloqu üçün standart ACL qurmaq üçün.
  5. İstifadə edərək /data/account kataloqu üçün standart ACL əlavə edin setfacl -md:g:satış:rwx,g:hesab:rx /data/hesab.
  6. /data/sales-ə yeni fayl əlavə etməklə ACL parametrlərinin qüvvədə olduğunu yoxlayın. Tamamlayın /data/satış/yeni fayla toxunun və icra edin getfacl /data/sales/newfile cari icazələri yoxlamaq üçün.

Umask ilə standart icazələrin təyin edilməsi

Yuxarıda, siz standart ACL-lərlə işləməyi öyrəndiniz. ACL istifadə etmirsinizsə, alacağınız standart icazələri müəyyən edən bir qabıq seçimi var: umaş (əks maska). Bu bölmədə siz standart icazələri necə dəyişdirəcəyinizi öyrənəcəksiniz umaş.

Siz yeni fayl yaratdığınız zaman bəzi standart icazələrin təyin olunduğunu fərq etmiş ola bilərsiniz. Bu icazələr parametrlə müəyyən edilir umaş. Bu qabıq parametri giriş zamanı bütün istifadəçilərə aiddir. Parametrdə umaş fayl üçün avtomatik olaraq təyin edilə bilən maksimum icazələrdən çıxarılan rəqəmsal dəyər istifadə olunur; fayllar üçün maksimum parametr 666, qovluqlar üçün isə 777-dir.

Lakin bu qaydaya bəzi istisnalar aiddir. Parametrlərin tam icmalını tapa bilərsiniz umaş aşağıdakı cədvəldə.

İstifadə olunan nömrələrdən umaş, əmr üçün ədədi arqumentlər vəziyyətində olduğu kimi chmod, birinci rəqəm istifadəçinin icazələrinə, ikinci rəqəm qrupun icazələrinə, sonuncu isə başqaları üçün təyin edilmiş standart icazələrə aiddir. Məna umaş standart 022 bütün yeni fayllar üçün 644 və serverinizdə yaradılmış bütün yeni qovluqlar üçün 755 verir.

Bütün ədədi dəyərlərin tam icmalı umaş və onların nəticələri aşağıdakı cədvəldə verilmişdir.

Linux-da icazələr (chown, chmod, SUID, GUID, yapışqan bit, ACL, umask)

Umask parametrinin necə işlədiyini görməyin asan yolu aşağıdakı kimidir: faylın 666-a təyin edilmiş standart icazələri ilə başlayın və effektiv icazələri əldə etmək üçün umask-ı çıxarın. Kataloq və onun standart 777 icazələri üçün də eyni şeyi edin.

Umask parametrini dəyişdirməyin iki yolu var: bütün istifadəçilər və fərdi istifadəçilər üçün. Əgər siz bütün istifadəçilər üçün umask qurmaq istəyirsinizsə, /etc/profile-də göstərildiyi kimi qabıq mühiti fayllarını işə salarkən umask parametrinin nəzərə alınmasını təmin etməlisiniz. Düzgün yanaşma, /etc/profile.d kataloqunda umask.sh adlı qabıq skripti yaratmaq və həmin qabıq skriptində istifadə etmək istədiyiniz umask-ı təyin etməkdir. Bu faylda umask dəyişdirilirsə, serverə daxil olduqdan sonra bütün istifadəçilərə tətbiq edilir.

Umask-ı /etc/profile və əlaqəli fayllar vasitəsilə quraşdırmanın alternativi, daxil olan bütün istifadəçilərə şamil edildiyi hallarda, hər bir istifadəçinin ev kataloqunda yaradılmış .profile adlı faylda umask parametrlərini dəyişdirməkdir.

Bu faylda tətbiq edilən parametrlər yalnız fərdi istifadəçiyə aiddir; ona görə də daha çox təfərrüata ehtiyacınız varsa, bu yaxşı üsuldur. Normal istifadəçilər 027 standart umask ilə işləyərkən kök istifadəçi üçün standart umask-ı 022-yə dəyişmək üçün şəxsən bu funksiyanı bəyənirəm.

Genişləndirilmiş istifadəçi atributları ilə işləmək

Bu, Linux icazələri üzrə son bölmədir.

İcazələrlə işləyərkən istifadəçi və ya qrup obyekti ilə istifadəçi və ya qrup obyektlərinin fayl və ya kataloqda malik olduğu icazələr arasında həmişə əlaqə mövcuddur. Linux serverində faylları qorumaq üçün alternativ üsul atributlarla işləməkdir.
Atributlar istifadəçinin fayla daxil olmasından asılı olmayaraq öz işini görür.

ACL-lərdə olduğu kimi, fayl atributlarına seçimi daxil etmək lazım ola bilər bağlamaya.

Bu bir seçimdir user_xattr. Genişləndirilmiş istifadəçi atributları ilə işləyərkən "əməliyyat dəstəklənmir" mesajı alsanız, parametri təyin etdiyinizə əmin olun. bağlamaya /etc/fstab-da.

Bir çox atributlar sənədləşdirilmişdir. Bəzi atributlar mövcuddur, lakin hələ tətbiq olunmayıb. Onlardan istifadə etməyin; sənə heç nə gətirməyəcəklər.

Aşağıda tətbiq edə biləcəyiniz ən faydalı atributlar verilmişdir:

A Bu atribut faylın fayla giriş vaxtının dəyişməməsini təmin edir.
Tipik olaraq, fayl hər dəfə açıldıqda, faylın giriş vaxtı faylın metadatasında qeyd edilməlidir. Bu, performansa mənfi təsir göstərir; belə ki, müntəzəm olaraq daxil olan fayllar üçün atribut A bu funksiyanı söndürmək üçün istifadə edilə bilər.

a Bu atribut faylı silməyə, lakin əlavə etməyə imkan verir.

c Əgər həcm səviyyəsində sıxılmanı dəstəkləyən fayl sistemindən istifadə edirsinizsə, bu fayl atributu sıxılma mexanizmi ilk dəfə işə salındıqda faylın sıxılmasını təmin edir.

D Bu atribut fayllara edilən dəyişikliklərin əvvəlcə keşdə saxlanması əvəzinə dərhal diskə yazılmasını təmin edir. Bu, vacib verilənlər bazası fayllarının fayl keşi ilə sabit disk arasında itməməsinə əmin olmaq üçün faydalı atributdur.

d Bu atribut faylın dump yardım proqramının istifadə olunduğu ehtiyat nüsxələrində saxlanmayacağını təmin edir.

I Bu atribut aktiv olduğu kataloq üçün indeksləşdirməyə imkan verir. Bu, sürətli fayl əldə etmək üçün B-ağac verilənlər bazasından istifadə etməyən Ext3 kimi primitiv fayl sistemləri üçün daha sürətli fayl girişini təmin edir.

i Bu atribut faylı dəyişməz edir. Buna görə də, əlavə qorunma tələb edən fayllar üçün faydalı olan faylda heç bir dəyişiklik edilə bilməz.

j Bu atribut ext3 fayl sistemində faylın əvvəlcə jurnala, sonra isə sabit diskdəki məlumat bloklarına yazılmasını təmin edir.

s Faylı sildikdən sonra faylın 0-a saxlandığı blokların üzərinə yazın. Bu, faylın silindikdən sonra onu bərpa edə bilməyəcəyini təmin edir.

u Bu atribut silinmə haqqında məlumatı saxlayır. Bu, silinmiş faylları xilas etmək üçün bu məlumatla işləyən bir yardım proqramı hazırlamağa imkan verir.

Atributları tətbiq etmək istəyirsinizsə, əmrdən istifadə edə bilərsiniz söhbət etmək. Məsələn, istifadə edin chattr +s faylıbəzi fayla atributlar tətbiq etmək. Atributu silmək lazımdır? Sonra istifadə edin chattr -s faylıvə silinəcək. Hazırda tətbiq olunan bütün atributların icmalını əldə etmək üçün əmrdən istifadə edin lattr.

Xülasə

Bu yazıda icazələrlə necə işləməyi öyrəndiniz. Siz üç əsas icazə, qabaqcıl icazələr və fayl sistemində ACL-ləri necə tətbiq etmək barədə oxuyursunuz. Siz həmçinin defolt icazələri tətbiq etmək üçün umask seçimindən necə istifadə edəcəyinizi öyrəndiniz. Bu məqalənin sonunda siz fayl sistemi təhlükəsizliyinin əlavə qatını tətbiq etmək üçün istifadəçi tərəfindən genişləndirilmiş atributlardan necə istifadə edəcəyinizi öyrəndiniz.

Bu tərcüməni bəyəndinizsə, şərhlərdə bu barədə yazın. Faydalı tərcümələr etmək üçün daha çox motivasiya olacaq.

Məqalədəki bəzi yazı və qrammatik səhvləri düzəldib. Daha yaxşı oxunaqlılıq üçün bəzi həcmli abzasları daha kiçiklərə endirdi.

Əvəzində "Yalnız kataloqa inzibati hüquqları olan şəxs icra icazəsi tətbiq edə bilər." "Yalnız kataloqda yazma icazəsi olan şəxs icra icazəsi tətbiq edə bilər." olaraq təyin olundu, bu daha düzgün olardı.

Şərhlər üçün təşəkkür edirik berez.

Əvəz edilib:
Əgər istifadəçinin sahibi deyilsinizsə, qabıq sizin fayl qrupu kimi tanınan qrupun üzvü olub-olmamağınızı yoxlayacaq.

Üstündə:
Əgər siz faylın sahibi deyilsinizsə, qabıq sizin faylda icazələri olan qrupun üzvü olub-olmadığınızı yoxlayacaq. Əgər siz bu qrupun üzvüsinizsə, qrupun təyin etdiyi icazələrlə fayla daxil olacaqsınız və qabıq yoxlamanı dayandıracaq.

Şərhiniz üçün təşəkkür edirik CryptoPirate

Mənbə: www.habr.com

Добавить комментарий