File permission — operatsion tizim fayl yoki katalog ustida qaysi foydalanuvchi va guruh qanday amal bajarishi mumkinligini belgilaydigan kirish nazoratidir. Unixga o‘xshash tizimlarda asosiy model owner, group va others uchun read, write hamda execute bitlariga tayangan. Kengaytirilgan ACL va majburiy nazorat mexanizmlari bundan nozikroq siyosat beradi.
Asosiy bitlar
Oddiy faylda read mazmunni o‘qish, write mazmunni o‘zgartirish, execute esa faylni dastur sifatida ishga tushirish huquqidir. Katalogda ma’no boshqacha: read nomlar ro‘yxatini ko‘rish, write yozuv yaratish yoki o‘chirish, execute esa katalog orqali yo‘l yurish va ma’lum nomga murojaat qilish imkonini beradi.
-rwxr-x--- owner group file
Bu misolda owner barcha amallarga, group o‘qish va bajarishga ega, others esa huquqsiz. Raqamli yozuvda read=4, write=2, execute=1 yig‘iladi; 750 shu ruxsatni ifodalaydi.
Egalik va tekshiruv
Har fayl owner UID va group GIDga ega. Jarayonning effective UID/GID hamda qo‘shimcha guruhlari qaysi toifa qoidasini olishni belgilaydi. Root ko‘p tekshiruvni chetlab o‘tishi mumkin, ammo capability va majburiy siyosatlar uning vakolatini ham cheklashi mumkin.
Faylni o‘chirish ko‘pincha faylning write bitiga emas, ota katalogning write va execute huquqiga bog‘liq. Shu sabab read-only fayl yozilmasa ham, katalogga vakolatli foydalanuvchi uni o‘chirishi mumkin. Sticky bit umumiy katalogda foydalanuvchiga faqat o‘z faylini o‘chirishni cheklaydi.
Maxsus bitlar
Setuid bajariladigan faylga ishga tushganda fayl egasining effective UIDini beradi. Setgid faylda guruh vakolatini, katalogda esa yangi obyektlarning katalog guruhini meros olishini ta’minlaydi. Noto‘g‘ri setuid dastur yuqori vakolatli ekspluatatsiyaga sabab bo‘lishi mumkin, shuning uchun soni minimal qilinadi.
Sticky bit /tmp kabi umumiy yoziladigan katalogda boshqa foydalanuvchi faylini o‘chirishni to‘sadi. Maxsus bitlar oddiy rwx ko‘rinishida s yoki t bilan aks etadi. Nusxa olish va arxivlash vositasi ularni saqlashi yoki tushirib qoldirishi mumkin.
Umask va boshlang‘ich ruxsat
Yangi faylning ruxsati dastur so‘ragan mode va jarayon umaski orqali hosil bo‘ladi. Umask ruxsat qo‘shmaydi, qaysi bitlar olib tashlanishini belgilaydi. Server jarayonida xavfsiz umask tasodifan world-writable fayl yaratilishini kamaytiradi.
Ilova keyin chmod bilan mode o‘zgartirishi mumkin. Maxfiy kalit yoki credential fayli faqat xizmat egasiga o‘qiladigan qilinadi. Biroq permission sirni versiya nazorati yoki logga tushishdan himoya qilmaydi.
ACL va majburiy nazorat
POSIX ACL muayyan qo‘shimcha foydalanuvchi va guruhlarga ACE beradi. ACL mask named user va group uchun maksimal effective huquqni cheklaydi; ro‘yxatda permission bor ko‘rinsa ham mask uni olib tashlashi mumkin. getfacl effective natijani ko‘rsatadi.
SELinux yoki AppArmor kabi mexanizm klassik mode bitlaridan keyin qo‘shimcha qaror chiqaradi. Oddiy permission ruxsat bergan bo‘lsa ham, siyosat amalni rad etishi mumkin. Diagnostikada ikkala qatlam tekshiriladi.
Amaliy boshqaruv
Rekursiv chmod fayl va kataloglarga bir xil execute bit berib, keraksiz bajariladigan fayllar yaratishi mumkin. Turiga qarab alohida qoida ishlatiladi. Symlink ruxsatlari ko‘pincha nishon faylga bog‘liq, link orqali path traversal xavfi esa alohida validatsiya talab qiladi.
Backup va restore owner, group, ACL va extended attributelarni saqlashi kerak. Konteyner volumeida xost va konteyner UIDlari mos kelmasa, kutilmagan access denied yoki ortiqcha ruxsat yuz beradi. Minimal privilege va davriy permission audit bu muammolarni kamaytiradi.
Bog‘liq tushunchalar
Access Control List, Access Control Entry, chmod, umask, setuid, File ownership, SELinux