Mavzu
Dars xulosasi
- Linux — ko'p foydalanuvchili tizim bo'lib, har bir fayl va katalog qat'iy uchta toifaga bo'linadi: User (egasi), Group (guruh) va Others (begonalar).
- Ruxsat turlari uch xil bo'ladi:
r(read — o'qish, 4),w(write — yozish/o'chirish, 2),x(execute — bajarish/katalogga kirish, 1). - Ruxsatlarni belgilashda oktal (raqamli) usul keng qo'llaniladi: 755 (skriptlar uchun), 644 (oddiy fayllar uchun), 600 (maxfiy kalitlar uchun).
- DevOps amaliyotida «Least Privilege» (eng kam imtiyoz) tamoyili qo'llaniladi — hech qachon ishlab chiqarish fayllariga keraksiz
chmod 777berilmaydi. chmodbuyrug'i ruxsatlarni,chownbuyrug'i fayl egasi va guruhini,chgrpesa faqat guruhni o'zgartiradi.- Serverlarda GUI bo'lmagani sababli konfiguratsiyalarni tahrirlash uchun terminal muharrirlari —
nano(sodda) vavim(modal, professional) ishlatiladi. - Vim uchta asosiy rejimda ishlaydi: Normal (harakat va buyruqlar), Insert (matn yozish) va Command-line (saqlash va chiqish).
Qo'shimcha ma'lumot
1. Ruxsatlarni hisoblashning ikkilik (Binary) mantig'i
Nega aynan 4, 2, 1 raqamlari tanlangan? Chunki bu kompyuter arxitekturasidagi ikkilik (binary) sanoq tizimidir:
- Read (
r) — 1-bit (100ikkilikda = 4 o'nlikda) - Write (
w) — 2-bit (010ikkilikda = 2 o'nlikda) - Execute (
x) — 3-bit (001ikkilikda = 1 o'nlikda) Bularning kombinatsiyasi har doim yagona va takrorlanmas raqamni beradi: r + w = 4 + 2 = 6(110)r + x = 4 + 1 = 5(101)r + w + x = 4 + 2 + 1 = 7(111)
2. Kataloglar uchun x (bajarish) ruxsatining nozikligi
Ko'pchilik yangi o'rganuvchilar kataloglarni «dastur emas-ku, nega ularga execute beriladi?» deb o'ylashadi.
- Agar katalogda
r(o'qish) bo'lsa, siz uning ichidagi fayllar ro'yxatini (ls) ko'ra olasiz. - Lekin agar katalogda
x(execute) bo'lmasa, sizcdbuyrug'i bilan uning ichiga kira olmaysiz va ichidagi biror faylni o'qiy olmaysiz! Shuning uchun kataloglar uchun minimal standart ruxsat doimo755yoki750bo'ladi.
3. Ramziy (Symbolic) usul: qachon qulay?
Raqamlar butun triadaga birvarakayiga ta'sir qilsa, ramziy usul faqat bitta huquqni aniq qo'shish yoki olib tashlashda qulay:
chmod +x deploy.sh— barcha toifalarga (u, g, o) tezda bajarish huquqini qo'shadi.chmod g-w config.yml— guruh a'zolaridan faqat yozish huquqini olib tashlaydi, qolgan huquqlarga tegmaydi.chmod u=rwx,go=rx test.sh— egasiga to'liq, qolganlarga faqat o'qish va bajarish huquqini belgilaydi.
4. Vim dunyosida omon qolish qoidalari
Vim dastlab chalkash tuyulishi mumkin, lekin uning falsafasini tushunsangiz, klaviaturadan qo'lni uzmay sekundiga tahrir qilasiz:
vim fayl.txtbilan ochganingizda, siz Normal rejimdasiz. Shoshilib klaviaturani bosmang!itugmasini bosing — ekranning chap pastida-- INSERT --paydo bo'ladi. Endi matn yoza olasiz.- Yozib bo'lgach, har doim
Escni bosing (yana Normal rejimga qaytasiz). - Normal rejimda
:tugmasini bosing vawq(write and quit) deb yozib Enter bosing. - Agar biror narsani buzib qo'ysangiz va saqlamay chiqmoqchi bo'lsangiz:
Esc→:q!→ Enter.
Atamalar lug'ati
| Atama | Ma'nosi |
|---|---|
| Chmod (Change Mode) | Fayl yoki katalogning kirish ruxsatlari rejimini o'zgartiruvchi buyruq. |
| Chown (Change Owner) | Fayl yoki katalog egasi va unga biriktirilgan guruhni o'zgartiruvchi buyruq. |
| User (u) | Faylni yaratgan yoki uning mulkdori hisoblangan foydalanuvchi hisob qaydnomasi. |
| Group (g) | Bir xil loyiha yoki resurs ustida ishlaydigan foydalanuvchilar to'plami. |
| Others (o) | Tizimda mavjud bo'lgan, lekin fayl egasi ham, belgilangan guruh a'zosi ham bo'lmagan foydalanuvchilar. |
| Least Privilege | Axborot xavfsizligida subyektga faqat o'z vazifasini bajarishi uchun zarur bo'lgan minimal huquqlarni berish qoidasi. |
| Normal Mode | Vim muharririda ochilish rejim bo'lib, unda matn terilmaydi, harakat va matn bloklari ustida amallar bajariladi. |
| Insert Mode | Vim muharririda bevosita yangi matn kiritish va tahrirlash imkonini beruvchi rejim. |
Bilasizmi?
- Stack Overflow so'rovnomalariga ko'ra, har yili millionlab dasturchilar «How to exit Vim?» (Vim'dan qanday chiqiladi?) savolini qidiradi.
- Linuxda
rootfoydalanuvchisi har qanday faylning ruxsati000qilib qulflangan bo'lsa ham uni bemalol o'qiy oladi va o'zgartira oladi. - Vim dasturi 1991-yilda Bram Moolenaar tomonidan Commodore Amiga kompyuterlari uchun yaratilgan va u to'liq xayriya loyihasi sifatida rivojlantirilgan.
chmod 777buyrug'i DevOps olamida eng katta xavfsizlik antipatterni hisoblanadi va «devops gunohlari» ro'yxatida birinchi o'rinda turadi.
Topshiriqlar
1. Fayl ruxsatlarini tahlil qilish oson
Terminalda touch test_perm.txt buyrug'i bilan fayl yarating va ls -l test_perm.txt orqali uning egasi, guruhi va dastlabki ruxsatlarini aniqlang. Kutiladigan natija: -rw-r--r-- ko'rinishidagi 9 ta ruxsat biti va foydalanuvchi nomi ko'rinadi.
2. Ramziy usulda bajarish huquqini berish oson
chmod +x test_perm.txt buyrug'i orqali faylga bajarish huquqini qo'shing va ls -l bilan ruxsatning o'zgarganini tasdiqlang. Kutiladigan natija: Ruxsatlar qatorida x harflari paydo bo'ladi (-rwxr-xr-x).
3. Nano muharririda oddiy fayl yozish oson
nano welcome.txt orqali yangi fayl oching, ichiga «DevOps kursiga xush kelibsiz!» deb yozing, Ctrl+O bilan saqlab, Ctrl+X bilan chiqing. Kutiladigan natija: cat welcome.txt bajarilganda yozilgan matn ekranga chiqadi.
4. Boshqalardan o'qish huquqini olib tashlash oson
chmod o-r test_perm.txt buyrug'ini bajarib, «Others» (begonalar) toifasidan o'qish ruxsatini bekor qiling. Kutiladigan natija: Oxirgi uchta belgi --- ga aylanadi.
5. Oktal usulda 755 ruxsatini berish o'rta
deploy_app.sh nomli yangi skript fayli yarating va unga raqamli oktal notation orqali aynan 755 ruxsatini biriktiring. Kutiladigan natija: Fayl ruxsatlari aniq -rwxr-xr-x ko'rinishiga keladi.
6. Maxfiy fayl uchun 600 ruxsatini sozlash o'rta
private_key.pem nomli fayl yarating va unga faqat fayl egasi o'qiy oladigan va yoza oladigan (600) qilib cheklov o'rnating. Kutiladigan natija: ls -l ko'rsatganda -rw------- ruxsati aks etadi.
7. Vim'da birinchi konfiguratsiya fayli o'rta
vim server.conf orqali fayl oching. i ni bosib Insert rejimga o'ting va PORT=8080 qatorini yozing. So'ng Esc bosib, :wq orqali saqlab chiqing. Kutiladigan natija: Fayl muvaffaqiyatli saqlanadi va cat server.conf orqali o'qiladi.
8. Rekursiv ruxsatlarni o'zgartirish o'rta
app_data papkasini yarating va ichiga bir nechta fayl joylang. chmod -R 750 app_data buyrug'i bilan butun papka va uning ichidagilariga birvarakayiga ruxsat bering. Kutiladigan natija: ls -la app_data papkaning barcha elementlari rwxr-x--- bo'lganini ko'rsatadi.
9. Vim'da qatorlarni boshqarish amaliyoti qiyin
vim practice.txt faylini oching, unga 5 ta ixtiyoriy qator yozing. So'ng Normal rejimda dd orqali 3-qatorni o'chiring, yy bilan 1-qator nusxasini oling va p orqali pastga qo'ying. Kutiladigan natija: Normal rejimning tahrirlash buyruqlari amalda sinab ko'riladi.
10. Foydalanuvchi va guruhni o'zgartirish qiyin
sudo chown buyrug'idan foydalanib, test_perm.txt faylining guruhini mavjud boshqa guruhga o'zgartiring (masalan, nogroup yoki adm). Kutiladigan natija: ls -l ro'yxatida guruh ustuni yangilanganini ko'rasiz.
11. Murakkab ruxsatlar kombinatsiyasi testi bonus
Bitta katalog yarating, unga chmod 644 (ya'ni x ruxsatisiz) bering va uning ichiga cd bilan kirishga urinib ko'ring. Terminal nima xatolik berishini tahlil qiling va uni bartaraf eting. Kutiladigan natija: «Permission denied» xatosi yuzaga keladi, so'ngra chmod +x orqali katalogga kirish imkoniyati tiklanadi.
O'zingizni tekshiring
chmod 755bilanchmod 644ning qanday amaliy farqlari bor va qaysi biri qachon ishlatiladi?- Nima uchun kataloglar uchun
x(execute) huquqi berilmasa, uning ichigacdqilib kirib bo'lmaydi? - Ramziy usulda
u,g,o,aharflari kimlarni anglatadi? - Vim muharririda Normal, Insert va Command-line rejimlariga qanday o'tiladi?
sudo chown user:group filenamebuyrug'i tizimda aynan qanday o'zgarish yasaydi?
Uyga vazifa
Linux terminalingizda scripts nomli katalog yarating. Uning ichida backup.sh va clean.sh nomli ikkita fayl oching. nano yoki vim yordamida har bir fayl ichiga echo "Ishga tushdi" satrini yozing. Skriptlarga faqat egasi va guruhiga bajarish ruxsatini bering (750). So'ngra ./backup.sh buyrug'i orqali skriptni ishga tushirib ko'ring. Barcha qadamlarni daftaringizga qayd eting (taxminiy vaqt: 25 daqiqa).
