CodeGym /Kurslar /Docker SELF /Giriş hüquqları: chmod, chown, umask

Giriş hüquqları: chmod, chown, umask

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

1. Giriş hüquqları anlayışı

Siz Linux-da fayllarla və ya direktoryalarla işlədikdə, onlara girişin idarə olunması lazım gəlir. Təsəvvür edin ki, corablarınızı hər kəsin görəcəyi yerdə qoymusunuz və indi evdə hər kəs onlardan istifadə edə bilər! Linux-dakı giriş hüquqları, "icazəsiz corab istifadəsinin" (və ya daha vacib bir şeyin, məsələn, skriptlərinizin) qarşısını almağa imkan verir. Gəlin bunu öyrənməyə başlayaq.

Linux-da hər bir fayl (və ya direktor) oxumaq, yazmaq və icra etmək imkanlarını təyin edən üç giriş hüquqları dəstinə malikdir:

  1. Oxumaq (r): Faylın məzmununu və ya direktoriyadakı fayllar siyahısını baxmağa icazə verir.
  2. Yazmaq (w): Faylın məzmununu dəyişməyə və ya direktoriyaya fayllar əlavə etməyə/silməyə icazə verir.
  3. İcra etmək (x): Faylı proqram kimi işə salmağa (və ya direktoriyaya daxil olmağa) imkan verir.

Üç səviyyəli model

Hər bir hüquq üç istifadəçi qrupuna tətbiq olunur:

  • Sahib (owner): Faylı yaradan şəxs.
  • Qrup (group): Faylı təyin edilmiş qrupa daxil olan istifadəçilər.
  • Digər (others): Sistemdəki bütün digər istifadəçilər.

Fayl üçün giriş hüquqlarına nümunə:

-rwxr-xr--

Şifrələyək:

  • Birinci simvol -, bunun fayl olduğunu bildirir (direktor üçün d olacaq).
  • İlk üç simvol rwx — sahibin hüquqlarıdır (oxumaq, yazmaq, icra etmək).
  • Növbəti üç simvol r-x — qrupun hüquqlarıdır (oxumaq, icra etmək).
  • Son üç simvol r-- — digərlərinin hüquqlarıdır (yalnız oxumaq).

2. chmod əmri: giriş hüquqlarının idarə edilməsi

Simvolik yazı formatı

chmod əmri fayl və kataloqlara giriş hüquqlarını dəyişir. Simvolik yazı formatı belə görünür:

chmod [kim][əməliyyat][hüquqlar] fayl_adı
  • Kim: u (sahib), g (qrup), o (digərləri), a (hamısı).
  • Əməliyyat: + (hüquq əlavə etmək), - (hüquq silmək), = (hüququ dəqiq təyin etmək).
  • Hüquqlar: r (oxuma), w (yazma), x (icra etmə).

Nümunələr:


# Hamı üçün icra hüququ təyin edək
chmod a+x script.sh

# Yalnız qrupa yazma hüququ əlavə edək
chmod g+w file.txt

# Digərlərindən oxuma hüququnu alaq
chmod o-r document.txt

Səkkizlik yazı formatı

Səkkizlik format (və ya rəqəmsal) daha yığcamdır, amma "rəqəm sehrini" anlamaq lazımdır. Bu formatda hər hüquq kombinasiyası bir rəqəmlə təmsil olunur:

  • r = 4
  • w = 2
  • x = 1

Hüquqlar toplanır:

  • rwx = 7 (4 + 2 + 1)
  • rw- = 6 (4 + 2)
  • r-- = 4

Yazı formatı:

chmod [rəqəm][rəqəm][rəqəm] fayl_adı

Nümunə:


# Sahibi üçün rwx, qrupa r-x, digərlərinə r-- hüquqlarını təyin edək
chmod 754 file.sh

3. Fayl sahibini dəyişmək: chown komandası

Əgər sənədi başqa bir istifadəçiyə (və ya qrupa) ötürməyiniz lazımdırsa, chown komandası kömək edəcək.

Format:

chown [istifadəçi]:[qrup] fayl_adı

Nümunələr:


# Sahib hüququnu user1 istifadəçisinə ötürmək
chown user1 myfile.txt

# Sahib və qrupu dəyişmək
chown user1:group1 myfile.txt

# Yalnız qrupu dəyişmək
chown :group2 myfile.txt

4. Varsayılan maska: umask

Yeni fayl yaratdığınız zaman, onun giriş icazələri sistem tərəfindən təyin edilir. Məsələn, icazələr rw-r--r-- ola bilər. Amma bunlar haradan gəlir? Cavab: umask komandasında.

Umask nədir?

umask təyin edir ki, hansı icazələr təyin olunmayacaqdır yeni fayllar üçün.

Məsələn:

  • Fayl üçün baza icazələr: 666 (icra yoxdur).
  • Maska: 022.
  • Nəticə icazələr: 644 (666 - 022).

Komandalar:

  • Cari maskanı baxmaq: umask
  • Yeni maska təyin etmək: umask 0022

Nümunə:


# Yeni faylların rw-rw-r-- olması üçün maska təyin edilir
umask 0002

5. Administrator hüquqları və sudo

Sudo nədir?

sudo ("superuser do" ifadəsinin qısaltmasıdır) — Linux və Unix-bənzəri sistemlərdə istifadəçiyə superuser (root) və ya digər yüksək imtiyazlı istifadəçi adından komandaları icra etməyə imkan verir.

sudo sistemi, root hesabi ilə davamlı işləməyə ehtiyac olmadan müvəqqəti idarəetmə hüquqları təmin edir, bu da sistemə təsadüfi və ya zərərli dəyişikliklərin edilmə riskini azaldır.

Əhəmiyyətli!

Əgər çox sadələşdirsək, sudo, administrator hüquqları ilə icra ediləcək komandanın əvvəlində yazılır.

Sudo necə işləyir?

Komandanın başlanması:

Siz sudo ilə bir komanda daxil etdiyiniz zaman sistem yoxlayır ki, sizin istifadəçi hesabınızın yüksək hüquqlarla komandalar icra etmək hüququ var yoxsa yox.

Məsələn:

sudo apt update

Autentifikasiya:

Hazırkı sessiyada sudo-nun ilk istifadəsində sistem cari istifadəçinin parolunu (root deyil) daxil etməyi tələb edəcək.

Parol uğurla daxil edildikdən sonra sistem, hər bir komanda üçün parol tələb etməmək üçün autentifikasiyanı qısa bir müddət (adətən 5-15 dəqiqə) saxlayır.

Komandanın icrası:

İstifadəçinin sudo konfiqurasiyasında göstərilən hüquqlara malik olması halında komanda superuser hüquqları ilə icra ediləcək.

sudo-nun əsas funksiyaları və komandaları

Komandanın yüksək hüquqlarla başlanması:

sudo <komanda>

Məsələn:

sudo apt install nginx

Digər istifadəçi adından komanda icrası: -u açarından istifadə edin:

sudo -u <istifadəçi_adı> <komanda>

Məsələn:

sudo -u user1 ls /home/user1

İdarəçi terminalının əldə edilməsi: Root hüquqları ilə shell-i işə salın:

sudo -i

ya da:

sudo su

sudo konfiqurasiyasının baxılması:

sudo -l

Hazırkı istifadəçinin icazəli olduğu komandaları göstərir.

sudo konfiqurasiyasının redaktəsi:

sudo visudo

Bu komanda /etc/sudoers konfiqurasiya faylını təhlükəsiz şəkildə redaktə etmək üçün açır.

6. Nümunələr

Biliklərimizi praktikada yoxlayaq.

Tapşırıq 1: chmod ilə hüquqların idarəsi

  1. Fayl yaradın:

    touch myfile.txt
    
  2. Sahib üçün oxuma, yazmaq və işlətdirmək hüquqları təyin edin:

    chmod u+rwx myfile.txt
    
  3. Başqaları üçün yalnız oxuma hüququ əlavə edin:

    chmod o+r myfile.txt
    
  4. Hüquqları yoxlayın:

    ls -l myfile.txt
    

Tapşırıq 2: chown ilə sahibin dəyişdirilməsi

  1. Fayl yaradın:

    touch ownedfile.txt
    
  2. Sahibi user1 istifadəçisinə dəyişin (admin hüquqları lazım olacaq):

    sudo chown user1 ownedfile.txt
    
  3. Dəyişiklikləri yoxlayın:

    ls -l ownedfile.txt
    

Tapşırıq 3: umask ilə eksperimentlər

  1. Cari maskanı yoxlayın:

    umask
    
  2. Maskanı 027 təyin edin:

    umask 027
    
  3. Yeni fayl yaradın:

    touch newfile.txt
    
  4. Yaradılmış faylın hüquqlarını yoxlayın:

    ls -l newfile.txt
    

7. Tipik səhvlər və xüsusiyyətlər

  1. Vahid sahibini dəyişəndə sudo unuduldu: Yalnız administrator faylın sahibini dəyişə bilər. Əgər "Operation not permitted" xətasını alırsınızsa, sudo əlavə etməyə cəhd edin.
  2. chmod əmrində düzgün olmayan sıralama: Lazım olan obyektin icazələrini dəyişməmisiniz. Lazımi fayl və ya kataloqu seçdiyinizdən əmin olun.
  3. umask yalnız yeni fayllara təsir edir: Əgər artıq mövcud olan faylların icazələrini umask ilə dəyişmək istəyirsinizsə, bu işləməyəcək. chmod istifadə edin.

Bilirsinizmi ki, Linux-da giriş icazələri o qədər çevikdir ki, bütün kainatda yalnız bir nəfərin "görə biləcəyi" bir fayl yarada bilərsiniz? Necə deyərlər, böyük icazələrlə böyük məsuliyyət gəlir! İndi chmod, chownumask ilə silahlanaraq, Linux sistemlərinizi yalnız rahat deyil, həm də təhlükəsiz edə bilərsiniz.

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