Bosh sahifa Wiki File permissions

File permissions

File permissions — operatsion tizimda kim fayl yoki katalogni o‘qishi, o‘zgartirishi va bajarishini belgilaydigan kirish nazorati metama’lumotlaridir. Unixga o‘xshash tizimlarda klassik model owner, group va others uchun read, write hamda execute bitlaridan tuziladi. Qo‘shimcha ACL va security policylar bu modelni kengaytirishi mumkin.

Asosiy ruxsat bitlari

Fayl uchun read mazmunni o‘qish, write mazmunni o‘zgartirish, execute esa uni dastur sifatida ishga tushirish huquqini bildiradi. Katalogda ma’no boshqacha: read nomlar ro‘yxatini ko‘rish, write yozuv qo‘shish yoki o‘chirish, execute esa katalog bo‘ylab yo‘lni traverse qilish imkonidir.

Katalogda read bor, execute yo‘q bo‘lsa nomlar ko‘rinishi mumkin, lekin fayl metama’lumotiga to‘liq murojaat qilib bo‘lmaydi. Execute bor, read yo‘q bo‘lsa nomi oldindan ma’lum faylga kirish mumkin, ammo katalog ro‘yxati olinmaydi. Bu farq permission diagnostikasida muhim.

Raqamli yozuv

Read 4, write 2 va execute 1 qiymatlari yig‘indisi bilan octal ko‘rinish hosil qilinadi. 750 owner uchun 7, group uchun 5, others uchun 0ni bildiradi. 7 — rwx, 5 — r-x, 0 esa huquq yo‘qligidir. chmod symbolic shaklda ham ishlaydi, masalan groupga write qo‘shish yoki othersdan execute olib tashlash.

777 barcha foydalanuvchiga to‘liq huquq beradi va ko‘pincha noto‘g‘ri tezkor yechimdir. Application qaysi user va group ostida ishlayotgani aniqlanib, faqat zarur bitlar beriladi. Executable bo‘lmagan config faylga execute qo‘yish foyda bermaydi.

Ownership va umask

Har fayl owner UID va group GIDga ega. chown egalikni, chgrp groupni o‘zgartiradi. Process yangi fayl yaratganda so‘ralgan mode umask orqali cheklanadi. Masalan, service unitdagi umask maxfiy log va socketlar noto‘g‘ri ochiq yaratilmasligini ta’minlaydi.

Container yoki shared folderda host va guest UID raqamlari mos kelmasligi mumkin. Nomlar bir xil bo‘lsa ham kernel raqamli UIDga qaraydi. User namespace mapping va volume ownership to‘g‘ri sozlanmasa fayl rootga tegishli yoki yozib bo‘lmaydigan ko‘rinadi.

Maxsus bitlar

Setuid executable ishga tushganda processga fayl ownerining effective UIDini berishi mumkin. Setgid executable group identitetiga ta’sir qiladi; katalogdagi setgid esa yangi fayllarning katalog groupini meros olishiga yordam beradi. Sticky bit umumiy yoziladigan katalogda foydalanuvchining boshqalarga tegishli faylni o‘chirishini cheklaydi; /tmp bunga odatiy misol.

Setuid dastur yuqori xavfli attack surface hisoblanadi. U input, environment va file descriptorlarni qat’iy tekshirishi kerak. Scriptlarda setuid ko‘p tizimda xavfsizlik sabab e’tiborsiz qoldiriladi.

ACL va qo‘shimcha siyosatlar

POSIX ACL an’anaviy bitta groupdan tashqari aniq user va grouplarga ruxsat beradi. ACL mask named user va group yozuvlarining samarali huquqini cheklashi mumkin. ls chiqishida mode to‘g‘ri ko‘rinsa ham mask sabab amal rad etilishi ehtimol.

SELinux, AppArmor yoki mount option klassik bitlardan keyin qo‘shimcha cheklov qo‘llaydi. Noexec mount executable bit bo‘lsa ham to‘g‘ridan-to‘g‘ri bajarishni to‘xtatadi. “Permission denied” tekshiruvida mode, ownership, ACL, parent kataloglar, security label va mount parametrlari birga ko‘riladi.

Audit

Muhim fayllarning mode va ownership qiymati configuration management orqali kerakli holatga qaytariladi. Audit vositasi world-writable fayl, kutilmagan setuid binary va sirlarning ochiq ruxsatini aniqlaydi. Permission o‘zgarishi kim tomonidan va qaysi deploymentda bajarilgani jurnalga bog‘lanadi. Backup tiklanganda ACL hamda ownership mazmun bilan birga qaytariladi.

Bog‘liq tushunchalar

chmod, chown, ACL, umask, setuid, sticky bit, SELinux