3. Foydalanuvchilar va ruxsatlar — 30 ta masala
Faqat laboratoriya mashinasida
Foydalanuvchi va ruxsatlarni o'zgartiruvchi buyruqlarni ish serverida emas, virtual mashinada (snapshot olingan holda) bajaring.
Fayllar bilan ishlash uchun:
Ruxsatlar
1. rw-r----- ruxsatini sakkizlik (octal) ko'rinishda yozing.
Misol: 640
Yechim
r=4, w=2, x=1. Egasi: rw- = 4+2 = 6. Guruh: r-- = 4. Boshqalar: --- = 0.
2. deploy.sh skriptini egasi bajara oladigan, qolganlar faqat o'qiy oladigan va bajara oladigan qiling (rwxr-xr-x).
Misol: ls -l deploy.sh → -rwxr-xr-x
3. Mavjud ruxsatlarni o'zgartirmasdan faqat egasiga x huquqini qo'shing.
Misol: -rw-r--r-- → -rwxr--r--
Yechim
Simvolli yozuv (u+x, go-w) faqat ko'rsatilgan bitlarni o'zgartiradi, sakkizlik yozuv esa hammasini qayta yozadi.
4. deploy.sh dan guruh va boshqalarning yozish huquqini oling.
Misol: -rwxrwxrwx → -rwxr-xr-x
5. ~/lab/site katalogidagi barcha fayllarni 644, kataloglarni 755 qiling.
Misol: find ~/lab/site -type f -perm 644 — barcha fayllar chiqadi.
Yechim
mkdir -p ~/lab/site/css && touch ~/lab/site/index.html ~/lab/site/css/a.css
find ~/lab/site -type f -exec chmod 644 {} +
find ~/lab/site -type d -exec chmod 755 {} +
chmod -R u=rwX,go=rX ~/lab/site. Katta X — x ni faqat kataloglarga (yoki allaqachon bajariladigan fayllarga) beradi. chmod -R 755 esa oddiy fayllarni ham bajariladigan qilib qo'yadi.
6. f.txt ning egasini root, guruhini adm qiling.
Misol: ls -l f.txt → root adm
Yechim
Faqat guruhni o'zgartirish:sudo chgrp adm f.txt yoki chown :adm f.txt.
7. umask 022 bo'lganda yangi fayl va katalog qanday ruxsat bilan yaratiladi? umask 027 bo'lganda-chi?
Misol: 022 → fayl 644, katalog 755; 027 → fayl 640, katalog 750.
Yechim
Fayl666, katalog 777 dan boshlanadi, umask bitlari ayiriladi. Oddiy fayl hech qachon x bilan yaratilmaydi. Joriy sessiyadan keyin umask 022 bilan qaytaring.
8. Hamma yoza oladigan (others da w) oddiy fayllarni /etc dan toping.
Misol: odatda hech narsa chiqmaydi.
Yechim
-perm -0002 — "kamida shu bit(lar) yoqilgan". Bu yerda hamma yoza oladigan fayl tizim xavfsizligiga tahdid.
9. Fayl ruxsati, egasi va guruhini bitta qatorda 640 student:student f.txt formatida chiqaring.
Misol: 640 student:student f.txt
Maxsus ruxsatlar va kataloglar
10. Tizimdagi barcha SUID fayllarni toping va passwd nega ularning orasida ekanini tushuntiring.
Misol: /usr/bin/passwd, /usr/bin/sudo …
Yechim
-rwsr-xr-x dagi s — SUID: fayl uni ishga tushirgan foydalanuvchi emas, egasi (root) huquqi bilan ishlaydi. Shu sabab oddiy foydalanuvchi /etc/shadow ni yangilay oladi. Notanish SUID fayl — xavfsizlik auditida birinchi tekshiriladigan narsa.
11. /srv/team jamoaviy katalogini yarating: unda yaratilgan fayllar avtomatik developers guruhiga tegishli bo'lsin.
Misol: ls -ld /srv/team → drwxrwsr-x ... developers
Yechim
sudo groupadd developers
sudo mkdir -p /srv/team
sudo chgrp developers /srv/team
sudo chmod 2775 /srv/team
2 — SGID katalogda: ichida yaratilgan yangi fayllar yaratuvchining asosiy guruhini emas, katalogning guruhini oladi.
12. /tmp ning ruxsatini ko'rsating va oxiridagi t nimani anglatishini tushuntiring.
Misol: drwxrwxrwt
Yechim
t — sticky bit: hamma /tmp ga yoza oladi, lekin faylni faqat uning egasi (yoki katalog egasi, root) o'chira oladi. Qo'lda: chmod 1777 dir yoki chmod +t dir.
13. Nima uchun cd secret ishlamay, Permission denied chiqadi? Katalog drw-r--r-- bo'lsa-chi?
Misol: x bit yo'q.
Yechim
Katalogdax — "ichiga kirish/o'tish" huquqi. xsiz cd ishlamaydi, ls secret esa nomlarni ko'rsatsa ham metama'lumotni ololmaydi (cannot access). r — nomlar ro'yxatini o'qish.
14. /home/x/a/b/c.txt ochilmayapti. Yo'lning qaysi qismida ruxsat yetishmasligini toping.
Misol: har bir bo'lakning ruxsati bitta ro'yxatda.
Yechim
namei -l yo'lning har bir qismini egasi va ruxsati bilan ko'rsatadi: yetishmayotgan x darhol ko'rinadi.
15. Faylni o'chirish uchun fayl yoki katalog ruxsati kerakligini tajriba bilan ko'rsating.
Misol: chmod 000 locked.txt bo'lsa ham, katalogda w bor bo'lsa o'chadi.
Yechim
Faylni o'chirish — katalog yozuvini o'zgartirish, shuning uchun katalogdaw va x kerak. Fayl ruxsati bu yerda rol o'ynamaydi.
Foydalanuvchi va guruhlar
16. ali foydalanuvchisini uy katalogi va /bin/bash shell bilan yarating.
Misol: id ali ishlaydi, /home/ali mavjud.
Yechim
-m uy katalogini yaratadi. -msiz katalog yaratilmaydi.
17. ali ga qaysi guruhlar tegishli ekanini ko'rsating.
Misol: uid=1001(ali) gid=1001(ali) groups=1001(ali)
18. ali ni sudo guruhiga (Ubuntu) mavjud guruhlarini yo'qotmasdan qo'shing.
Misol: groups ali da sudo ham bor.
Yechim
Ehtiyot bo'ling
-asiz usermod -G sudo ali foydalanuvchini boshqa barcha qo'shimcha guruhlardan chiqarib, faqat sudo da qoldiradi. RHEL oilasida administrator guruhi wheel.
19. developers guruhini yarating va ali ni unga qo'shing. Guruhga a'zolik yangi sessiyada kuchga kirishini tushuntiring.
Misol: ali qayta kirgach id da developers ko'rinadi.
Yechim
Guruhlar kirish (login) vaqtida o'qiladi. Ochiq sessiya eski ro'yxat bilan ishlayveradi: chiqib qayta kiring yokinewgrp developers.
20. Foydalanuvchining parolini bloklang va holatini tekshiring.
Misol: passwd -S ali → ikkinchi maydon L.
Yechim
Bu faqat parol bilan kirishni to'sadi. SSH kalit bilan kirish davom etishi mumkin; to'liq bloklash uchunsudo usermod -e 1 ali ham qo'shiladi.
21. ali va uning uy katalogini butunlay o'chiring.
Misol: id ali → no such user.
Yechim
-r uy katalogi va pochta fayllarini ham o'chiradi. Foydalanuvchi tizimga kirgan bo'lsa, avval jarayonlarini to'xtating.
22. Parol muddati sozlamalarini ko'ring va parolni har 90 kunda almashtirishni majburlang.
Misol: Maximum number of days between password change : 90
23. /etc/passwd da UID qaysi ustunda? student ning UID sini faqat shu ustun orqali oling.
Misol: 1000
Yechim
Ustunlar:nom:x:UID:GID:izoh:uy:shell. x — parol /etc/shadow da saqlanishini bildiradi.
24. /etc/shadow nega oddiy foydalanuvchi uchun o'qib bo'lmaydi? Ruxsatini ko'rsating.
Misol: -rw-r----- 1 root shadow
Yechim
Unda parol xeshlari bor; o'qiy olgan odam ularni offline taxmin qilishi (brute-force) mumkin./etc/passwd esa tizim ishlashi uchun hamma o'qiy olishi kerak, shuning uchun xeshlar ajratib olingan.
25. Tizim xizmati uchun kirish imkoni bo'lmagan svc-app foydalanuvchisini yarating.
Misol: su - svc-app → This account is currently not available.
Yechim
-r — tizim foydalanuvchisi (UID oralig'i boshqa), nologin — interaktiv shell yo'q. Xizmatlarni root emas, shunday foydalanuvchi ostida ishga tushirish eng kam imtiyoz tamoyilidir.
sudo va ACL
26. Joriy foydalanuvchi sudo bilan qanday buyruqlarni bajara olishini ko'ring.
Misol: (ALL : ALL) ALL
27. ali ga faqat systemctl restart nginx buyrug'ini parolsiz bajarishga ruxsat bering. Sintaksisni saqlashdan oldin tekshiring.
Misol: visudo -cf → parsed OK.
Yechim
echo 'ali ALL=(root) NOPASSWD: /usr/bin/systemctl restart nginx' | sudo tee /etc/sudoers.d/ali
sudo chmod 0440 /etc/sudoers.d/ali
sudo visudo -cf /etc/sudoers.d/ali
Ehtiyot bo'ling
/etc/sudoers ni oddiy muharrir bilan tahrirlamang: sintaksis xatosi sudo ni butunlay buzadi. visudo saqlashdan oldin tekshiradi. Buyruqning to'liq yo'li yoziladi.
28. su va su - farqini ko'rsating.
Misol: su - ali dan keyin pwd → /home/ali.
Yechim
su - (login shell) maqsadli foydalanuvchining to'liq muhitini (uy katalogi, PATH, profil fayllari) yuklaydi. -siz eski muhit qoladi.
29. alice ga ~/lab/report.txt ni o'qish va yozish huquqini egasi/guruhini o'zgartirmasdan bering (ACL).
Misol: getfacl da user:alice:rw-.
Yechim
Standartrwx faqat bitta egasi va bitta guruhni biladi. ACL esa aniq foydalanuvchilarga alohida huquq beradi. ls -l da ruxsat oxirida + belgisi paydo bo'ladi.
30. ACL ni olib tashlang va fayl standart ruxsatga qaytganini tekshiring.
Misol: getfacl da alice qatori yo'q.